diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e746060..e268518 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -8,6 +8,9 @@ RUN apt-get update -y && apt-get upgrade -y RUN apt-get install rsync wget git zip curl ninja-build -y --fix-missing -RUN pip3 install pillow requests six semantic_version pyyml +RUN curl -fsSL https://get.docker.com -o get-docker.sh +RUN sh ./get-docker.sh +RUN pip3 install pillow requests six semantic_version pyyml +ENV DOCKER_HOST=unix:///var/run/user/1000/docker.sock diff --git a/.gitignore b/.gitignore index cb9a4b7..3eb8126 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ *.o *.d *.map -*.lst *.lnp *.dep *._cc @@ -20,3 +19,11 @@ tensorflow-test-ng/gen/ *.pack 3rdparty-build/PackName.txt *.raw +/tensorflow-examples/gen +/out +/tensorflow-examples/out +/tensorflow-test/HelloWorld/tmp +/3rdparty-build/flatbuffers/build +/3rdparty-build/gemmlowp/build +/3rdparty-build/kissfft/build +/3rdparty-build/ruy/build diff --git a/tensorflow-test/HelloWorld/HelloWorld.cproject.yml b/tensorflow-test/HelloWorld/HelloWorld.cproject.yml index 4e7d47d..410e2aa 100644 --- a/tensorflow-test/HelloWorld/HelloWorld.cproject.yml +++ b/tensorflow-test/HelloWorld/HelloWorld.cproject.yml @@ -3,17 +3,16 @@ project: debug: on packs: - - pack: ARM::CMSIS - - pack: ARM::CMSIS-DSP - - pack: ARM::CMSIS-NN - # path: ../ - - pack: ARM::Cortex_DFP - # path: ../ - - pack: tensorflow::tensorflow-lite-micro - - pack: tensorflow::flatbuffers - - pack: tensorflow::gemmlowp - - pack: tensorflow::kissfft - - pack: tensorflow::ruy + - pack: ARM::CMSIS@6.0.0 + - pack: ARM::CMSIS-DSP@1.15.0 + - pack: ARM::CMSIS-NN@4.1.0 + - pack: ARM::Cortex_DFP@1.1.0 + - pack: tensorflow::tensorflow-lite-micro@1.24.5 + - pack: tensorflow::flatbuffers@1.24.5 + - pack: tensorflow::gemmlowp@1.24.5 + - pack: tensorflow::kissfft@1.24.5 + - pack: tensorflow::ruy@1.24.5 + - pack: ARM::CMSIS-NN@6.0.0 add-path: - ./hello_world @@ -23,16 +22,17 @@ project: components: - component: ARM::CMSIS:DSP&Source - - component: ARM::CMSIS:NN Lib - - component: tensorflow::Data Exchange:Serialization:flatbuffers - - component: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow + - component: ARM::CMSIS:NN Lib@6.0.0 + - component: ARM::CMSIS:CORE@6.0.0 + - component: ARM::Device:Startup&C Startup + - component: tensorflow::Machine Learning:TensorFlow:Kernel&CMSIS-NN + - component: tensorflow::Machine Learning:TensorFlow:Kernel&Reference + - component: tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow - component: tensorflow::Data Processing:Math:kissfft&tensorflow + - component: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow - component: tensorflow::Data Processing:Math:ruy&tensorflow - - component: tensorflow::Machine Learning:TensorFlow:Kernel&Reference - component: tensorflow::Machine Learning:TensorFlow:Kernel Utils - - component: tensorflow::Machine Learning:TensorFlow:Testing - - component: ARM::CMSIS:CORE@6.0.0 - - component: ARM::Device:Startup&C Startup + #- component: tensorflow::Machine Learning:TensorFlow:Signal Library&Reference groups: - group: TFL_main diff --git a/tensorflow-test/HelloWorld/HelloWorld.csolution.yml b/tensorflow-test/HelloWorld/HelloWorld.csolution.yml index cdc33fb..0133ae4 100644 --- a/tensorflow-test/HelloWorld/HelloWorld.csolution.yml +++ b/tensorflow-test/HelloWorld/HelloWorld.csolution.yml @@ -1,5 +1,5 @@ solution: - created-for: cmsis-toobox@2.0.0 + created-for: cmsis-toobox@2.4.0 cdefault: misc: @@ -17,7 +17,7 @@ solution: - -Wl,--gc-sections packs: - - pack: ARM::Cortex_DFP + - pack: ARM::Cortex_DFP@1.1.0 target-types: - type: CM0 diff --git a/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cbuild.yml b/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cbuild.yml index 5d7cdbd..532e209 100644 --- a/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cbuild.yml +++ b/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cbuild.yml @@ -11,22 +11,22 @@ build: packs: - pack: ARM::CMSIS-DSP@1.15.0 path: ${CMSIS_PACK_ROOT}/ARM/CMSIS-DSP/1.15.0 - - pack: ARM::CMSIS-NN@4.1.0 - path: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0 + - pack: ARM::CMSIS-NN@6.0.0 + path: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0 - pack: ARM::CMSIS@6.0.0 path: ${CMSIS_PACK_ROOT}/ARM/CMSIS/6.0.0 - - pack: ARM::Cortex_DFP@1.0.0 - path: ${CMSIS_PACK_ROOT}/ARM/Cortex_DFP/1.0.0 - - pack: tensorflow::flatbuffers@1.24.2 - path: ${CMSIS_PACK_ROOT}/tensorflow/flatbuffers/1.24.2 - - pack: tensorflow::gemmlowp@1.24.2 - path: ${CMSIS_PACK_ROOT}/tensorflow/gemmlowp/1.24.2 - - pack: tensorflow::kissfft@1.24.2 - path: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.2 - - pack: tensorflow::ruy@1.24.2 - path: ${CMSIS_PACK_ROOT}/tensorflow/ruy/1.24.2 - - pack: tensorflow::tensorflow-lite-micro@1.24.2 - path: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2 + - pack: ARM::Cortex_DFP@1.1.0 + path: ${CMSIS_PACK_ROOT}/ARM/Cortex_DFP/1.1.0 + - pack: tensorflow::flatbuffers@1.24.5 + path: ${CMSIS_PACK_ROOT}/tensorflow/flatbuffers/1.24.5 + - pack: tensorflow::gemmlowp@1.24.5 + path: ${CMSIS_PACK_ROOT}/tensorflow/gemmlowp/1.24.5 + - pack: tensorflow::kissfft@1.24.5 + path: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.5 + - pack: tensorflow::ruy@1.24.5 + path: ${CMSIS_PACK_ROOT}/tensorflow/ruy/1.24.5 + - pack: tensorflow::tensorflow-lite-micro@1.24.5 + path: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5 optimize: size debug: on misc: @@ -60,33 +60,32 @@ build: - RTE/_size_CM55 - ${CMSIS_PACK_ROOT}/ARM/CMSIS-DSP/1.15.0/Include - ${CMSIS_PACK_ROOT}/ARM/CMSIS-DSP/1.15.0/PrivateInclude - - ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Include + - ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Include - ${CMSIS_PACK_ROOT}/ARM/CMSIS/6.0.0/CMSIS/Core/Include - - ${CMSIS_PACK_ROOT}/ARM/Cortex_DFP/1.0.0/Device/ARMCM55/Include - - ${CMSIS_PACK_ROOT}/tensorflow/flatbuffers/1.24.2/src/include - - ${CMSIS_PACK_ROOT}/tensorflow/gemmlowp/1.24.2/src - - ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.2/src - - ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.2/src/tools - - ${CMSIS_PACK_ROOT}/tensorflow/ruy/1.24.2/src - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2 - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/c - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core/api - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core/c - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/optimized - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/reference - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/reference/integer_ops - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/arena_allocator - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/cortex_m_generic - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/memory_planner - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/testing - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/tflite_bridge - - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/schema + - ${CMSIS_PACK_ROOT}/ARM/Cortex_DFP/1.1.0/Device/ARMCM55/Include + - ${CMSIS_PACK_ROOT}/tensorflow/flatbuffers/1.24.5/src/include + - ${CMSIS_PACK_ROOT}/tensorflow/gemmlowp/1.24.5/src + - ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.5/src + - ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.5/src/tools + - ${CMSIS_PACK_ROOT}/tensorflow/ruy/1.24.5/src + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5 + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/c + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core/api + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core/c + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/optimized + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/reference + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/reference/integer_ops + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/arena_allocator + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/cortex_m_generic + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/memory_planner + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/tflite_bridge + - ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/schema output-dirs: intdir: tmp/HelloWorld/CM55/size outdir: out/HelloWorld/CM55/size @@ -160,156 +159,212 @@ build: category: source - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-DSP/1.15.0/Source/TransformFunctions/TransformFunctionsF16.c category: source - - component: ARM::CMSIS:NN Lib@4.1.0 + - component: ARM::CMSIS:NN Lib@6.0.0 condition: CMSIS-NN - from-pack: ARM::CMSIS-NN@4.1.0 - selected-by: ARM::CMSIS:NN Lib + from-pack: ARM::CMSIS-NN@6.0.0 + selected-by: ARM::CMSIS:NN Lib@6.0.0 files: - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ActivationFunctions/arm_nn_activation_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ActivationFunctions/arm_nn_activation_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ActivationFunctions/arm_relu6_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ActivationFunctions/arm_relu6_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ActivationFunctions/arm_relu_q15.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ActivationFunctions/arm_relu_q15.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ActivationFunctions/arm_relu_q7.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ActivationFunctions/arm_relu_q7.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/BasicMathFunctions/arm_elementwise_add_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_add_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/BasicMathFunctions/arm_elementwise_add_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_add_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/BasicMathFunctions/arm_elementwise_mul_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_mul_acc_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/BasicMathFunctions/arm_elementwise_mul_s16_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_mul_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/BasicMathFunctions/arm_elementwise_mul_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_mul_s16_batch_offset.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConcatenationFunctions/arm_concatenation_s8_w.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_mul_s16_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConcatenationFunctions/arm_concatenation_s8_x.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/BasicMathFunctions/arm_elementwise_mul_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConcatenationFunctions/arm_concatenation_s8_y.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConcatenationFunctions/arm_concatenation_s8_w.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConcatenationFunctions/arm_concatenation_s8_z.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConcatenationFunctions/arm_concatenation_s8_x.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_1_x_n_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConcatenationFunctions/arm_concatenation_s8_y.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_1x1_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConcatenationFunctions/arm_concatenation_s8_z.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_1x1_s8_fast.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_1_x_n_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_fast_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_1_x_n_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_get_buffer_sizes_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_1x1_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_get_buffer_sizes_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_1x1_s4_fast.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_1x1_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_1x1_s8_fast.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_wrapper_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_get_buffer_sizes_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_convolve_wrapper_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_get_buffer_sizes_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_3x3_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_get_buffer_sizes_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_fast_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_get_buffer_sizes_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_get_buffer_sizes_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_wrapper_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_wrapper_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_s8_opt.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_convolve_wrapper_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_3x3_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_fast_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_nn_depthwise_conv_s8_core.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_get_buffer_sizes_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_s8_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_get_buffer_sizes_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ConvolutionFunctions/arm_nn_mat_mult_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_get_buffer_sizes_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/FullyConnectedFunctions/arm_fully_connected_get_buffer_sizes_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/FullyConnectedFunctions/arm_fully_connected_get_buffer_sizes_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/FullyConnectedFunctions/arm_fully_connected_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_s4_opt.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/FullyConnectedFunctions/arm_fully_connected_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/LSTMFunctions/arm_lstm_unidirectional_s8_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_s8_opt.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_padded_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_lstm_calculate_gate_s8_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_nn_depthwise_conv_s8_core.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_lstm_step_s8_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_row_offset_s8_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_lstm_update_cell_state_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_lstm_update_output_s8_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_s4_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_mat_mul_core_1x_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_s8_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_mat_mul_core_4x_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_nn_mat_mult_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_mat_mul_kernel_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_transpose_conv_get_buffer_sizes_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ConvolutionFunctions/arm_transpose_conv_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_vec_mat_mul_result_acc_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_fully_connected_get_buffer_sizes_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_fully_connected_get_buffer_sizes_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_fully_connected_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_svdf_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_fully_connected_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_nntables.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_fully_connected_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/NNSupportFunctions/arm_q7_to_q15_with_offset.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_vector_sum_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/PoolingFunctions/arm_avgpool_get_buffer_sizes_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/FullyConnectedFunctions/arm_vector_sum_s8_s64.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/PoolingFunctions/arm_avgpool_get_buffer_sizes_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/LSTMFunctions/arm_lstm_unidirectional_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/PoolingFunctions/arm_avgpool_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/LSTMFunctions/arm_lstm_unidirectional_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/PoolingFunctions/arm_avgpool_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_padded_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/PoolingFunctions/arm_max_pool_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/PoolingFunctions/arm_max_pool_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/ReshapeFunctions/arm_reshape_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SVDFunctions/arm_svdf_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_lstm_calculate_gate_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SVDFunctions/arm_svdf_state_s16_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_lstm_calculate_gate_s8_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SoftmaxFunctions/arm_nn_softmax_common_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_lstm_step_s16.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SoftmaxFunctions/arm_softmax_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_lstm_step_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SoftmaxFunctions/arm_softmax_s8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mul_core_1x_s4.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SoftmaxFunctions/arm_softmax_s8_s16.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mul_core_1x_s8.c category: source - - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/4.1.0/Source/SoftmaxFunctions/arm_softmax_u8.c + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mul_core_4x_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s4.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s8_s32.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_vec_mat_mul_result_acc_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_vec_mat_mul_result_acc_s8_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s4.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_svdf_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_nntables.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_q7_to_q15_with_offset.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/NNSupportFunctions/arm_s8_to_s16_unordered_with_offset.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/PoolingFunctions/arm_avgpool_get_buffer_sizes_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/PoolingFunctions/arm_avgpool_get_buffer_sizes_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/PoolingFunctions/arm_avgpool_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/PoolingFunctions/arm_avgpool_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/PoolingFunctions/arm_max_pool_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/PoolingFunctions/arm_max_pool_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/ReshapeFunctions/arm_reshape_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SVDFunctions/arm_svdf_get_buffer_sizes_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SVDFunctions/arm_svdf_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SVDFunctions/arm_svdf_state_s16_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SoftmaxFunctions/arm_nn_softmax_common_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SoftmaxFunctions/arm_softmax_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SoftmaxFunctions/arm_softmax_s8.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SoftmaxFunctions/arm_softmax_s8_s16.c + category: source + - file: ${CMSIS_PACK_ROOT}/ARM/CMSIS-NN/6.0.0/Source/SoftmaxFunctions/arm_softmax_u8.c category: source - component: ARM::Device:Startup&C Startup@2.2.0 condition: ARMCM55 CMSIS - from-pack: ARM::Cortex_DFP@1.0.0 + from-pack: ARM::Cortex_DFP@1.1.0 selected-by: ARM::Device:Startup&C Startup files: - file: RTE/Device/ARMCM55/ARMCM55_ac6.sct @@ -324,337 +379,340 @@ build: category: sourceC attr: config version: 1.1.0 - - component: tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.2 - from-pack: tensorflow::flatbuffers@1.24.2 - selected-by: tensorflow::Data Exchange:Serialization:flatbuffers - - component: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.2 - from-pack: tensorflow::gemmlowp@1.24.2 + - component: tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.5 + from-pack: tensorflow::flatbuffers@1.24.5 + selected-by: tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow + - component: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.5 + from-pack: tensorflow::gemmlowp@1.24.5 selected-by: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow - - component: tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.2 - from-pack: tensorflow::kissfft@1.24.2 + - component: tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.5 + from-pack: tensorflow::kissfft@1.24.5 selected-by: tensorflow::Data Processing:Math:kissfft&tensorflow files: - - file: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.2/src/kiss_fft.c + - file: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.5/src/kiss_fft.c category: sourceC - - file: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.2/src/tools/kiss_fftr.c + - file: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.5/src/tools/kiss_fftr.c category: sourceC - - component: tensorflow::Data Processing:Math:ruy&tensorflow@1.24.2 - from-pack: tensorflow::ruy@1.24.2 + - component: tensorflow::Data Processing:Math:ruy&tensorflow@1.24.5 + from-pack: tensorflow::ruy@1.24.5 selected-by: tensorflow::Data Processing:Math:ruy&tensorflow - - component: tensorflow::Machine Learning:TensorFlow:Kernel Utils@1.24.2 - from-pack: tensorflow::tensorflow-lite-micro@1.24.2 + - component: tensorflow::Machine Learning:TensorFlow:Kernel Utils@1.24.5 + from-pack: tensorflow::tensorflow-lite-micro@1.24.5 selected-by: tensorflow::Machine Learning:TensorFlow:Kernel Utils files: - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/kernel_util.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/kernel_util.cpp category: sourceCpp - file: RTE/Machine_Learning/debug_log.cpp category: sourceCpp attr: config - version: 1.24.2 + version: 1.24.5 - file: RTE/Machine_Learning/micro_time.cpp category: sourceCpp attr: config - version: 1.24.2 + version: 1.24.5 - file: RTE/Machine_Learning/system_setup.cpp category: sourceCpp attr: config - version: 1.24.2 - - component: tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.2 + version: 1.24.5 + - component: tensorflow::Machine Learning:TensorFlow:Kernel&CMSIS-NN@1.24.5 + condition: CMSIS-NN + from-pack: tensorflow::tensorflow-lite-micro@1.24.5 + selected-by: tensorflow::Machine Learning:TensorFlow:Kernel&CMSIS-NN + - component: tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.5 condition: Reference - from-pack: tensorflow::tensorflow-lite-micro@1.24.2 + from-pack: tensorflow::tensorflow-lite-micro@1.24.5 selected-by: tensorflow::Machine Learning:TensorFlow:Kernel&Reference files: - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core/api/error_reporter.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core/api/error_reporter.cpp + category: sourceCpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core/api/flatbuffer_conversions.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core/api/flatbuffer_conversions.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core/api/tensor_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core/api/tensor_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/core/c/common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/core/c/common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/portable_tensor_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/portable_tensor_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/quantization_util.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/quantization_util.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/reference/comparisons.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/reference/comparisons.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/runtime_shape.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/tensor_ctypes.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/tensor_ctypes.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/kernels/internal/tensor_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/kernels/internal/tensor_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/arena_allocator/non_persistent_arena_buffer_allocator.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/arena_allocator/non_persistent_arena_buffer_allocator.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/arena_allocator/persistent_arena_buffer_allocator.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/arena_allocator/persistent_arena_buffer_allocator.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/arena_allocator/recording_single_arena_buffer_allocator.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/arena_allocator/recording_single_arena_buffer_allocator.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/arena_allocator/single_arena_buffer_allocator.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/arena_allocator/single_arena_buffer_allocator.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/fake_micro_context.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/fake_micro_context.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/flatbuffer_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/flatbuffer_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/activations.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/activations.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/activations_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/activations_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/add.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/add.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/add_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/add_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/add_n.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/add_n.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/arg_min_max.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/arg_min_max.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/assign_variable.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/assign_variable.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/batch_matmul.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/batch_matmul.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/batch_to_space_nd.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/batch_to_space_nd.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/broadcast_args.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/broadcast_args.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/broadcast_to.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/broadcast_to.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/call_once.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/call_once.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/cast.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/cast.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/ceil.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/ceil.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/circular_buffer.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/circular_buffer.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/circular_buffer_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/circular_buffer_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/comparisons.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/comparisons.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/concatenation.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/concatenation.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/conv.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/conv.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/conv_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/conv_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/cumsum.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/cumsum.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/depth_to_space.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/depth_to_space.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/depthwise_conv.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/depthwise_conv.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/depthwise_conv_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/depthwise_conv_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/dequantize.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/dequantize.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/dequantize_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/dequantize_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/detection_postprocess.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/detection_postprocess.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/div.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/div.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/elementwise.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/elementwise.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/elu.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/elu.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/embedding_lookup.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/embedding_lookup.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/ethosu.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/ethosu.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/exp.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/exp.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/expand_dims.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/expand_dims.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/fill.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/fill.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/floor.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/floor.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/floor_div.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/floor_div.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/floor_mod.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/floor_mod.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/fully_connected.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/fully_connected.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/fully_connected_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/fully_connected_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/gather.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/gather.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/gather_nd.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/gather_nd.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/hard_swish.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/hard_swish.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/hard_swish_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/hard_swish_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/if.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/if.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/kernel_runner.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/kernel_runner.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/kernel_util.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/kernel_util.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/l2_pool_2d.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/l2_pool_2d.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/l2norm.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/l2norm.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/leaky_relu.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/leaky_relu.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/leaky_relu_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/leaky_relu_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/log_softmax.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/log_softmax.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/logical.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/logical.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/logical_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/logical_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/logistic.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/logistic.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/logistic_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/logistic_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/lstm_eval.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/lstm_eval.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/lstm_eval_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/lstm_eval_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/maximum_minimum.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/maximum_minimum.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/micro_tensor_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/micro_tensor_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/mirror_pad.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/mirror_pad.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/mul.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/mul.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/mul_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/mul_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/neg.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/neg.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/pack.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/pack.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/pad.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/pad.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/pooling.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/pooling.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/pooling_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/pooling_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/prelu.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/prelu.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/prelu_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/prelu_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/quantize.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/quantize.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/quantize_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/quantize_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/read_variable.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/read_variable.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/reduce.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/reduce.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/reduce_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/reduce_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/reshape.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/reshape.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/reshape_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/reshape_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/resize_bilinear.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/resize_bilinear.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/round.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/round.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/select.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/select.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/shape.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/shape.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/slice.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/slice.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/softmax.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/softmax.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/softmax_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/softmax_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/space_to_batch_nd.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/space_to_batch_nd.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/space_to_depth.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/space_to_depth.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/split.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/split.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/split_v.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/split_v.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/squared_difference.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/squared_difference.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/squeeze.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/squeeze.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/strided_slice.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/strided_slice.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/strided_slice_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/strided_slice_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/sub.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/sub.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/sub_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/sub_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/svdf.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/svdf.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/svdf_common.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/svdf_common.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/tanh.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/tanh.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/transpose.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/transpose.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/transpose_conv.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/transpose_conv.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/unpack.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/unpack.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/var_handle.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/var_handle.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/while.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/while.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/kernels/zeros_like.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/kernels/zeros_like.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/memory_helpers.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/memory_helpers.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/memory_planner/greedy_memory_planner.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/memory_planner/greedy_memory_planner.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/memory_planner/linear_memory_planner.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/memory_planner/linear_memory_planner.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/memory_planner/non_persistent_buffer_planner_shim.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/memory_planner/non_persistent_buffer_planner_shim.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_allocation_info.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_allocation_info.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_allocator.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_allocator.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_context.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_context.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_interpreter.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_interpreter.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_interpreter_context.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_interpreter_context.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_interpreter_graph.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_interpreter_graph.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_log.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_log.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_op_resolver.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_op_resolver.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_profiler.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_profiler.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_resource_variable.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_resource_variable.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/micro_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/micro_utils.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/mock_micro_graph.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/mock_micro_graph.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/recording_micro_allocator.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/recording_micro_allocator.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/test_helper_custom_ops.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/test_helper_custom_ops.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/test_helpers.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/test_helpers.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/tflite_bridge/flatbuffer_conversions_bridge.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/tflite_bridge/flatbuffer_conversions_bridge.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/micro/tflite_bridge/micro_error_reporter.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/micro/tflite_bridge/micro_error_reporter.cpp category: sourceCpp - - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/tensorflow/lite/schema/schema_utils.cpp + - file: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/tensorflow/lite/schema/schema_utils.cpp category: sourceCpp - - component: tensorflow::Machine Learning:TensorFlow:Testing@1.24.2 - from-pack: tensorflow::tensorflow-lite-micro@1.24.2 - selected-by: tensorflow::Machine Learning:TensorFlow:Testing linker: script: ${CMSIS_COMPILER_ROOT}/ac6_linker_script.sct regions: ../Target/CM55/RTE/Device/ARMCM55/regions_ARMCM55.h @@ -685,11 +743,6 @@ build: - pack: ARM::CMSIS-DSP@1.15.0 components: - component: ARM::CMSIS:DSP&Source@1.15.0 - - license: - packs: - - pack: ARM::CMSIS-NN@4.1.0 - components: - - component: ARM::CMSIS:NN Lib@4.1.0 - license: license-agreement: ${CMSIS_PACK_ROOT}/ARM/CMSIS/6.0.0/LICENSE packs: @@ -697,40 +750,40 @@ build: components: - component: ARM::CMSIS:CORE@6.0.0 - license: - license-agreement: ${CMSIS_PACK_ROOT}/ARM/Cortex_DFP/1.0.0/LICENSE + license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/flatbuffers/1.24.5/LICENSE.txt packs: - - pack: ARM::Cortex_DFP@1.0.0 + - pack: tensorflow::flatbuffers@1.24.5 components: - - component: ARM::Device:Startup&C Startup@2.2.0 + - component: tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.5 - license: - license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/flatbuffers/1.24.2/LICENSE.txt + license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/gemmlowp/1.24.5/LICENSE.txt packs: - - pack: tensorflow::flatbuffers@1.24.2 + - pack: tensorflow::gemmlowp@1.24.5 components: - - component: tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.2 + - component: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.5 - license: - license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/gemmlowp/1.24.2/LICENSE.txt + license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.5/LICENSE.txt packs: - - pack: tensorflow::gemmlowp@1.24.2 + - pack: tensorflow::kissfft@1.24.5 components: - - component: tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.2 + - component: tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.5 - license: - license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/kissfft/1.24.2/LICENSE.txt + license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/ruy/1.24.5/LICENSE.txt packs: - - pack: tensorflow::kissfft@1.24.2 + - pack: tensorflow::ruy@1.24.5 components: - - component: tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.2 + - component: tensorflow::Data Processing:Math:ruy&tensorflow@1.24.5 - license: - license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/ruy/1.24.2/LICENSE.txt + license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.5/LICENSE packs: - - pack: tensorflow::ruy@1.24.2 + - pack: tensorflow::tensorflow-lite-micro@1.24.5 components: - - component: tensorflow::Data Processing:Math:ruy&tensorflow@1.24.2 - - license: - license-agreement: ${CMSIS_PACK_ROOT}/tensorflow/tensorflow-lite-micro/1.24.2/LICENSE + - component: tensorflow::Machine Learning:TensorFlow:Kernel Utils@1.24.5 + - component: tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.5 + - license: Apache-2.0 packs: - - pack: tensorflow::tensorflow-lite-micro@1.24.2 + - pack: ARM::CMSIS-NN@6.0.0 + - pack: ARM::Cortex_DFP@1.1.0 components: - - component: tensorflow::Machine Learning:TensorFlow:Kernel Utils@1.24.2 - - component: tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.2 - - component: tensorflow::Machine Learning:TensorFlow:Testing@1.24.2 + - component: ARM::CMSIS:NN Lib@6.0.0 + - component: ARM::Device:Startup&C Startup@2.2.0 diff --git a/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cprj b/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cprj index 647167c..ab946ae 100644 --- a/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cprj +++ b/tensorflow-test/HelloWorld/HelloWorld.size+CM55.cprj @@ -1,6 +1,6 @@ - + Automatically generated project @@ -8,14 +8,14 @@ - + - - - - - - + + + + + + @@ -36,23 +36,23 @@ - + - - - - - - - - + + + + + + + + - - + + diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/ARMCM0_gcc.ld b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/ARMCM0_gcc.ld new file mode 100644 index 0000000..93ed813 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/ARMCM0_gcc.ld @@ -0,0 +1,263 @@ +/* + *-------- <<< Use Configuration Wizard in Context Menu >>> ------------------- + */ + +/*---------------------- Flash Configuration ---------------------------------- + Flash Configuration + Flash Base Address <0x0-0xFFFFFFFF:8> + Flash Size (in Bytes) <0x0-0xFFFFFFFF:8> + + -----------------------------------------------------------------------------*/ +__ROM_BASE = 0x00000000; +__ROM_SIZE = 0x00040000; + +/*--------------------- Embedded RAM Configuration ---------------------------- + RAM Configuration + RAM Base Address <0x0-0xFFFFFFFF:8> + RAM Size (in Bytes) <0x0-0xFFFFFFFF:8> + + -----------------------------------------------------------------------------*/ +__RAM_BASE = 0x20000000; +__RAM_SIZE = 0x00020000; + +/*--------------------- Stack / Heap Configuration ---------------------------- + Stack / Heap Configuration + Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> + Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> + + -----------------------------------------------------------------------------*/ +__STACK_SIZE = 0x00000400; +__HEAP_SIZE = 0x00000C00; + +/* + *-------------------- <<< end of configuration section >>> ------------------- + */ + +MEMORY +{ + FLASH (rx) : ORIGIN = __ROM_BASE, LENGTH = __ROM_SIZE + RAM (rwx) : ORIGIN = __RAM_BASE, LENGTH = __RAM_SIZE +} + +/* Linker script to place sections and symbol values. Should be used together + * with other linker script that defines memory regions FLASH and RAM. + * It references following symbols, which must be defined in code: + * Reset_Handler : Entry of reset handler + * + * It defines following symbols, which code can use without definition: + * __exidx_start + * __exidx_end + * __copy_table_start__ + * __copy_table_end__ + * __zero_table_start__ + * __zero_table_end__ + * __etext (deprecated) + * __data_start__ + * __preinit_array_start + * __preinit_array_end + * __init_array_start + * __init_array_end + * __fini_array_start + * __fini_array_end + * __data_end__ + * __bss_start__ + * __bss_end__ + * __end__ + * end + * __HeapLimit + * __StackLimit + * __StackTop + * __stack + */ +ENTRY(Reset_Handler) + +SECTIONS +{ + .text : + { + KEEP(*(.vectors)) + *(.text*) + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + *(.rodata*) + + KEEP(*(.eh_frame*)) + } > FLASH + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > FLASH + + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH + __exidx_end = .; + + .copy.table : + { + . = ALIGN(4); + __copy_table_start__ = .; + + LONG (LOADADDR(.data)) + LONG (ADDR(.data)) + LONG (SIZEOF(.data) / 4) + + /* Add each additional data section here */ +/* + LONG (LOADADDR(.data2)) + LONG (ADDR(.data2)) + LONG (SIZEOF(.data2) / 4) +*/ + __copy_table_end__ = .; + } > FLASH + + .zero.table : + { + . = ALIGN(4); + __zero_table_start__ = .; + +/* .bss initialization to zero is already done during C Run-Time Startup. + LONG (ADDR(.bss)) + LONG (SIZEOF(.bss) / 4) +*/ + + /* Add each additional bss section here */ +/* + LONG (ADDR(.bss2)) + LONG (SIZEOF(.bss2) / 4) +*/ + __zero_table_end__ = .; + } > FLASH + + /* + * This __etext variable is kept for backward compatibility with older, + * ASM based startup files. + */ + PROVIDE(__etext = LOADADDR(.data)); + + .data : ALIGN(4) + { + __data_start__ = .; + *(vtable) + *(.data) + *(.data.*) + + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + KEEP(*(.jcr*)) + . = ALIGN(4); + /* All data end */ + __data_end__ = .; + + } > RAM AT > FLASH + + /* + * Secondary data section, optional + * + * Remember to add each additional data section + * to the .copy.table above to assure proper + * initialization during startup. + */ +/* + .data2 : ALIGN(4) + { + . = ALIGN(4); + __data2_start__ = .; + *(.data2) + *(.data2.*) + . = ALIGN(4); + __data2_end__ = .; + + } > RAM2 AT > FLASH +*/ + + .bss : + { + . = ALIGN(4); + __bss_start__ = .; + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + } > RAM AT > RAM + + /* + * Secondary bss section, optional + * + * Remember to add each additional bss section + * to the .zero.table above to assure proper + * initialization during startup. + */ +/* + .bss2 : + { + . = ALIGN(4); + __bss2_start__ = .; + *(.bss2) + *(.bss2.*) + . = ALIGN(4); + __bss2_end__ = .; + } > RAM2 AT > RAM2 +*/ + + .heap (NOLOAD) : + { + . = ALIGN(8); + __end__ = .; + PROVIDE(end = .); + . = . + __HEAP_SIZE; + . = ALIGN(8); + __HeapLimit = .; + } > RAM + + .stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (NOLOAD) : + { + . = ALIGN(8); + __StackLimit = .; + . = . + __STACK_SIZE; + . = ALIGN(8); + __StackTop = .; + } > RAM + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack") +} diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/ARMCM0_gcc.ld.base@2.2.0 b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/ARMCM0_gcc.ld.base@2.2.0 new file mode 100644 index 0000000..93ed813 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/ARMCM0_gcc.ld.base@2.2.0 @@ -0,0 +1,263 @@ +/* + *-------- <<< Use Configuration Wizard in Context Menu >>> ------------------- + */ + +/*---------------------- Flash Configuration ---------------------------------- + Flash Configuration + Flash Base Address <0x0-0xFFFFFFFF:8> + Flash Size (in Bytes) <0x0-0xFFFFFFFF:8> + + -----------------------------------------------------------------------------*/ +__ROM_BASE = 0x00000000; +__ROM_SIZE = 0x00040000; + +/*--------------------- Embedded RAM Configuration ---------------------------- + RAM Configuration + RAM Base Address <0x0-0xFFFFFFFF:8> + RAM Size (in Bytes) <0x0-0xFFFFFFFF:8> + + -----------------------------------------------------------------------------*/ +__RAM_BASE = 0x20000000; +__RAM_SIZE = 0x00020000; + +/*--------------------- Stack / Heap Configuration ---------------------------- + Stack / Heap Configuration + Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> + Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> + + -----------------------------------------------------------------------------*/ +__STACK_SIZE = 0x00000400; +__HEAP_SIZE = 0x00000C00; + +/* + *-------------------- <<< end of configuration section >>> ------------------- + */ + +MEMORY +{ + FLASH (rx) : ORIGIN = __ROM_BASE, LENGTH = __ROM_SIZE + RAM (rwx) : ORIGIN = __RAM_BASE, LENGTH = __RAM_SIZE +} + +/* Linker script to place sections and symbol values. Should be used together + * with other linker script that defines memory regions FLASH and RAM. + * It references following symbols, which must be defined in code: + * Reset_Handler : Entry of reset handler + * + * It defines following symbols, which code can use without definition: + * __exidx_start + * __exidx_end + * __copy_table_start__ + * __copy_table_end__ + * __zero_table_start__ + * __zero_table_end__ + * __etext (deprecated) + * __data_start__ + * __preinit_array_start + * __preinit_array_end + * __init_array_start + * __init_array_end + * __fini_array_start + * __fini_array_end + * __data_end__ + * __bss_start__ + * __bss_end__ + * __end__ + * end + * __HeapLimit + * __StackLimit + * __StackTop + * __stack + */ +ENTRY(Reset_Handler) + +SECTIONS +{ + .text : + { + KEEP(*(.vectors)) + *(.text*) + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + *(.rodata*) + + KEEP(*(.eh_frame*)) + } > FLASH + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > FLASH + + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH + __exidx_end = .; + + .copy.table : + { + . = ALIGN(4); + __copy_table_start__ = .; + + LONG (LOADADDR(.data)) + LONG (ADDR(.data)) + LONG (SIZEOF(.data) / 4) + + /* Add each additional data section here */ +/* + LONG (LOADADDR(.data2)) + LONG (ADDR(.data2)) + LONG (SIZEOF(.data2) / 4) +*/ + __copy_table_end__ = .; + } > FLASH + + .zero.table : + { + . = ALIGN(4); + __zero_table_start__ = .; + +/* .bss initialization to zero is already done during C Run-Time Startup. + LONG (ADDR(.bss)) + LONG (SIZEOF(.bss) / 4) +*/ + + /* Add each additional bss section here */ +/* + LONG (ADDR(.bss2)) + LONG (SIZEOF(.bss2) / 4) +*/ + __zero_table_end__ = .; + } > FLASH + + /* + * This __etext variable is kept for backward compatibility with older, + * ASM based startup files. + */ + PROVIDE(__etext = LOADADDR(.data)); + + .data : ALIGN(4) + { + __data_start__ = .; + *(vtable) + *(.data) + *(.data.*) + + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + KEEP(*(.jcr*)) + . = ALIGN(4); + /* All data end */ + __data_end__ = .; + + } > RAM AT > FLASH + + /* + * Secondary data section, optional + * + * Remember to add each additional data section + * to the .copy.table above to assure proper + * initialization during startup. + */ +/* + .data2 : ALIGN(4) + { + . = ALIGN(4); + __data2_start__ = .; + *(.data2) + *(.data2.*) + . = ALIGN(4); + __data2_end__ = .; + + } > RAM2 AT > FLASH +*/ + + .bss : + { + . = ALIGN(4); + __bss_start__ = .; + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + } > RAM AT > RAM + + /* + * Secondary bss section, optional + * + * Remember to add each additional bss section + * to the .zero.table above to assure proper + * initialization during startup. + */ +/* + .bss2 : + { + . = ALIGN(4); + __bss2_start__ = .; + *(.bss2) + *(.bss2.*) + . = ALIGN(4); + __bss2_end__ = .; + } > RAM2 AT > RAM2 +*/ + + .heap (NOLOAD) : + { + . = ALIGN(8); + __end__ = .; + PROVIDE(end = .); + . = . + __HEAP_SIZE; + . = ALIGN(8); + __HeapLimit = .; + } > RAM + + .stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (NOLOAD) : + { + . = ALIGN(8); + __StackLimit = .; + . = . + __STACK_SIZE; + . = ALIGN(8); + __StackTop = .; + } > RAM + PROVIDE(__stack = __StackTop); + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack") +} diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/gcc_linker_script.ld.src b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/gcc_linker_script.ld.src new file mode 100644 index 0000000..7cd986d --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/gcc_linker_script.ld.src @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2023 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* ---------------------------------------------------------------------------- + Stack seal size definition + *----------------------------------------------------------------------------*/ +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +#define __STACKSEAL_SIZE ( 8 ) +#else +#define __STACKSEAL_SIZE ( 0 ) +#endif + +/* ---------------------------------------------------------------------------- + Memory definition + *----------------------------------------------------------------------------*/ +MEMORY +{ + ROM0 (rx) : ORIGIN = __ROM0_BASE, LENGTH = __ROM0_SIZE +#if __ROM1_SIZE > 0 + ROM1 (rx) : ORIGIN = __ROM1_BASE, LENGTH = __ROM1_SIZE +#endif +#if __ROM2_SIZE > 0 + ROM2 (rx) : ORIGIN = __ROM2_BASE, LENGTH = __ROM2_SIZE +#endif +#if __ROM3_SIZE > 0 + ROM3 (rx) : ORIGIN = __ROM3_BASE, LENGTH = __ROM3_SIZE +#endif + + RAM0 (rwx) : ORIGIN = __RAM0_BASE, LENGTH = __RAM0_SIZE +#if __RAM1_SIZE > 0 + RAM1 (rwx) : ORIGIN = __RAM1_BASE, LENGTH = __RAM1_SIZE +#endif +#if __RAM2_SIZE > 0 + RAM2 (rwx) : ORIGIN = __RAM2_BASE, LENGTH = __RAM2_SIZE +#endif +#if __RAM3_SIZE > 0 + RAM3 (rwx) : ORIGIN = __RAM3_BASE, LENGTH = __RAM3_SIZE +#endif +} + +/* Linker script to place sections and symbol values. Should be used together + * with other linker script that defines memory regions FLASH and RAM. + * It references following symbols, which must be defined in code: + * Reset_Handler : Entry of reset handler + * + * It defines following symbols, which code can use without definition: + * __exidx_start + * __exidx_end + * __copy_table_start__ + * __copy_table_end__ + * __zero_table_start__ + * __zero_table_end__ + * __etext (deprecated) + * __data_start__ + * __preinit_array_start + * __preinit_array_end + * __init_array_start + * __init_array_end + * __fini_array_start + * __fini_array_end + * __data_end__ + * __bss_start__ + * __bss_end__ + * __noinit_start + * __noinit_end + * __end__ + * end + * __HeapLimit + * __StackLimit + * __StackTop + * __stack + */ +ENTRY(Reset_Handler) + +SECTIONS +{ + .text : + { + KEEP(*(.vectors)) + *(.text*) + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + *(.rodata*) + + KEEP(*(.eh_frame*)) + } > ROM0 + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + .gnu.sgstubs : + { + . = ALIGN(32); + } > ROM0 +#endif + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > ROM0 + + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > ROM0 + __exidx_end = .; + + .copy.table : + { + . = ALIGN(4); + __copy_table_start__ = .; + + LONG (LOADADDR(.data)) + LONG (ADDR(.data)) + LONG (SIZEOF(.data) / 4) + + /* Add each additional data section here */ +/* + LONG (LOADADDR(.data2)) + LONG (ADDR(.data2)) + LONG (SIZEOF(.data2) / 4) +*/ + __copy_table_end__ = .; + } > ROM0 + + .zero.table : + { + . = ALIGN(4); + __zero_table_start__ = .; + +/* .bss initialization to zero is already done during C Run-Time Startup. + LONG (ADDR(.bss)) + LONG (SIZEOF(.bss) / 4) +*/ + + /* Add each additional bss section here */ +/* + LONG (ADDR(.bss2)) + LONG (SIZEOF(.bss2) / 4) +*/ + __zero_table_end__ = .; + } > ROM0 + + /* + * This __etext variable is kept for backward compatibility with older, + * ASM based startup files. + */ + PROVIDE(__etext = LOADADDR(.data)); + + .data : ALIGN(4) + { + __data_start__ = .; + *(vtable) + *(.data) + *(.data.*) + + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + KEEP(*(.jcr*)) + . = ALIGN(4); + /* All data end */ + __data_end__ = .; + + } > RAM0 AT > ROM0 + + /* + * Secondary data section, optional + * + * Remember to add each additional data section + * to the .copy.table above to assure proper + * initialization during startup. + */ +/* + .data2 : ALIGN(4) + { + . = ALIGN(4); + __data2_start__ = .; + *(.data2) + *(.data2.*) + . = ALIGN(4); + __data2_end__ = .; + + } > RAM1 AT > ROM0 +*/ + + .bss : + { + . = ALIGN(4); + __bss_start__ = .; + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + } > RAM0 AT > RAM0 + + /* + * Secondary bss section, optional + * + * Remember to add each additional bss section + * to the .zero.table above to assure proper + * initialization during startup. + */ +/* + .bss2 : + { + . = ALIGN(4); + __bss2_start__ = .; + *(.bss2) + *(.bss2.*) + . = ALIGN(4); + __bss2_end__ = .; + } > RAM1 AT > RAM1 +*/ + + /* This section contains data that is not initialized during load, + or during the application's initialization sequence. */ + .noinit (NOLOAD) : + { + . = ALIGN(4); + __noinit_start = .; + *(.noinit) + *(.noinit.*) + . = ALIGN(4); + __noinit_end = .; + } > RAM0 + + .heap (NOLOAD) : + { + . = ALIGN(8); + __end__ = .; + PROVIDE(end = .); + . = . + __HEAP_SIZE; + . = ALIGN(8); + __HeapLimit = .; + } > RAM0 + + .stack (ORIGIN(RAM0) + LENGTH(RAM0) - __STACK_SIZE - __STACKSEAL_SIZE) (NOLOAD) : + { + . = ALIGN(8); + __StackLimit = .; + . = . + __STACK_SIZE; + . = ALIGN(8); + __StackTop = .; + } > RAM0 + PROVIDE(__stack = __StackTop); + +#if __STACKSEAL_SIZE > 0 + .stackseal (ORIGIN(RAM0) + LENGTH(RAM0) - __STACKSEAL_SIZE) (NOLOAD) : + { + . = ALIGN(8); + __StackSeal = .; + . = . + 8; + . = ALIGN(8); + } > RAM0 +#endif + + /* Check if data + heap + stack exceeds RAM limit */ + ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack") +} diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/startup_ARMCM0.c b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/startup_ARMCM0.c new file mode 100644 index 0000000..fb32110 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/startup_ARMCM0.c @@ -0,0 +1,146 @@ +/****************************************************************************** + * @file startup_ARMCM0.c + * @brief CMSIS-Core(M) Device Startup File for a Cortex-M0 Device + * @version V2.0.3 + * @date 31. March 2020 + ******************************************************************************/ +/* + * Copyright (c) 2009-2020 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined (ARMCM0) + #include "ARMCM0.h" +#else + #error device not specified! +#endif + +/*---------------------------------------------------------------------------- + External References + *----------------------------------------------------------------------------*/ +extern uint32_t __INITIAL_SP; + +extern __NO_RETURN void __PROGRAM_START(void); + +/*---------------------------------------------------------------------------- + Internal References + *----------------------------------------------------------------------------*/ +__NO_RETURN void Reset_Handler (void); + void Default_Handler(void); + +/*---------------------------------------------------------------------------- + Exception / Interrupt Handler + *----------------------------------------------------------------------------*/ +/* Exceptions */ +void NMI_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void HardFault_Handler (void) __attribute__ ((weak)); +void SVC_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void PendSV_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void SysTick_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); + +void Interrupt0_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt1_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt2_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt3_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt4_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt5_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt6_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt7_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt8_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt9_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); + + +/*---------------------------------------------------------------------------- + Exception / Interrupt Vector table + *----------------------------------------------------------------------------*/ + +#if defined ( __GNUC__ ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" +#endif + +extern const VECTOR_TABLE_Type __VECTOR_TABLE[48]; + const VECTOR_TABLE_Type __VECTOR_TABLE[48] __VECTOR_TABLE_ATTRIBUTE = { + (VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */ + Reset_Handler, /* Reset Handler */ + NMI_Handler, /* -14 NMI Handler */ + HardFault_Handler, /* -13 Hard Fault Handler */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + SVC_Handler, /* -5 SVCall Handler */ + 0, /* Reserved */ + 0, /* Reserved */ + PendSV_Handler, /* -2 PendSV Handler */ + SysTick_Handler, /* -1 SysTick Handler */ + + /* Interrupts */ + Interrupt0_Handler, /* 0 Interrupt 0 */ + Interrupt1_Handler, /* 1 Interrupt 1 */ + Interrupt2_Handler, /* 2 Interrupt 2 */ + Interrupt3_Handler, /* 3 Interrupt 3 */ + Interrupt4_Handler, /* 4 Interrupt 4 */ + Interrupt5_Handler, /* 5 Interrupt 5 */ + Interrupt6_Handler, /* 6 Interrupt 6 */ + Interrupt7_Handler, /* 7 Interrupt 7 */ + Interrupt8_Handler, /* 8 Interrupt 8 */ + Interrupt9_Handler /* 9 Interrupt 9 */ + /* Interrupts 10..31 are left out */ +}; + +#if defined ( __GNUC__ ) +#pragma GCC diagnostic pop +#endif + +/*---------------------------------------------------------------------------- + Reset Handler called on controller reset + *----------------------------------------------------------------------------*/ +__NO_RETURN void Reset_Handler(void) +{ + SystemInit(); /* CMSIS System Initialization */ + __PROGRAM_START(); /* Enter PreMain (C library entry point) */ +} + + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmissing-noreturn" +#endif + +/*---------------------------------------------------------------------------- + Hard Fault Handler + *----------------------------------------------------------------------------*/ +void HardFault_Handler(void) +{ + while(1); +} + +/*---------------------------------------------------------------------------- + Default Handler for Exceptions / Interrupts + *----------------------------------------------------------------------------*/ +void Default_Handler(void) +{ + while(1); +} + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic pop +#endif + diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/startup_ARMCM0.c.base@2.0.3 b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/startup_ARMCM0.c.base@2.0.3 new file mode 100644 index 0000000..fb32110 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/startup_ARMCM0.c.base@2.0.3 @@ -0,0 +1,146 @@ +/****************************************************************************** + * @file startup_ARMCM0.c + * @brief CMSIS-Core(M) Device Startup File for a Cortex-M0 Device + * @version V2.0.3 + * @date 31. March 2020 + ******************************************************************************/ +/* + * Copyright (c) 2009-2020 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined (ARMCM0) + #include "ARMCM0.h" +#else + #error device not specified! +#endif + +/*---------------------------------------------------------------------------- + External References + *----------------------------------------------------------------------------*/ +extern uint32_t __INITIAL_SP; + +extern __NO_RETURN void __PROGRAM_START(void); + +/*---------------------------------------------------------------------------- + Internal References + *----------------------------------------------------------------------------*/ +__NO_RETURN void Reset_Handler (void); + void Default_Handler(void); + +/*---------------------------------------------------------------------------- + Exception / Interrupt Handler + *----------------------------------------------------------------------------*/ +/* Exceptions */ +void NMI_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void HardFault_Handler (void) __attribute__ ((weak)); +void SVC_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void PendSV_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void SysTick_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); + +void Interrupt0_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt1_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt2_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt3_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt4_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt5_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt6_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt7_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt8_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); +void Interrupt9_Handler (void) __attribute__ ((weak, alias("Default_Handler"))); + + +/*---------------------------------------------------------------------------- + Exception / Interrupt Vector table + *----------------------------------------------------------------------------*/ + +#if defined ( __GNUC__ ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" +#endif + +extern const VECTOR_TABLE_Type __VECTOR_TABLE[48]; + const VECTOR_TABLE_Type __VECTOR_TABLE[48] __VECTOR_TABLE_ATTRIBUTE = { + (VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */ + Reset_Handler, /* Reset Handler */ + NMI_Handler, /* -14 NMI Handler */ + HardFault_Handler, /* -13 Hard Fault Handler */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + SVC_Handler, /* -5 SVCall Handler */ + 0, /* Reserved */ + 0, /* Reserved */ + PendSV_Handler, /* -2 PendSV Handler */ + SysTick_Handler, /* -1 SysTick Handler */ + + /* Interrupts */ + Interrupt0_Handler, /* 0 Interrupt 0 */ + Interrupt1_Handler, /* 1 Interrupt 1 */ + Interrupt2_Handler, /* 2 Interrupt 2 */ + Interrupt3_Handler, /* 3 Interrupt 3 */ + Interrupt4_Handler, /* 4 Interrupt 4 */ + Interrupt5_Handler, /* 5 Interrupt 5 */ + Interrupt6_Handler, /* 6 Interrupt 6 */ + Interrupt7_Handler, /* 7 Interrupt 7 */ + Interrupt8_Handler, /* 8 Interrupt 8 */ + Interrupt9_Handler /* 9 Interrupt 9 */ + /* Interrupts 10..31 are left out */ +}; + +#if defined ( __GNUC__ ) +#pragma GCC diagnostic pop +#endif + +/*---------------------------------------------------------------------------- + Reset Handler called on controller reset + *----------------------------------------------------------------------------*/ +__NO_RETURN void Reset_Handler(void) +{ + SystemInit(); /* CMSIS System Initialization */ + __PROGRAM_START(); /* Enter PreMain (C library entry point) */ +} + + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmissing-noreturn" +#endif + +/*---------------------------------------------------------------------------- + Hard Fault Handler + *----------------------------------------------------------------------------*/ +void HardFault_Handler(void) +{ + while(1); +} + +/*---------------------------------------------------------------------------- + Default Handler for Exceptions / Interrupts + *----------------------------------------------------------------------------*/ +void Default_Handler(void) +{ + while(1); +} + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic pop +#endif + diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/system_ARMCM0.c b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/system_ARMCM0.c new file mode 100644 index 0000000..bf724ae --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/system_ARMCM0.c @@ -0,0 +1,56 @@ +/**************************************************************************//** + * @file system_ARMCM0.c + * @brief CMSIS Device System Source File for + * ARMCM0 Device + * @version V1.0.0 + * @date 09. July 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ARMCM0.h" + +/*---------------------------------------------------------------------------- + Define clocks + *----------------------------------------------------------------------------*/ +#define XTAL (50000000UL) /* Oscillator frequency */ + +#define SYSTEM_CLOCK (XTAL / 2U) + + +/*---------------------------------------------------------------------------- + System Core Clock Variable + *----------------------------------------------------------------------------*/ +uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */ + + +/*---------------------------------------------------------------------------- + System Core Clock update function + *----------------------------------------------------------------------------*/ +void SystemCoreClockUpdate (void) +{ + SystemCoreClock = SYSTEM_CLOCK; +} + +/*---------------------------------------------------------------------------- + System initialization function + *----------------------------------------------------------------------------*/ +void SystemInit (void) +{ + SystemCoreClock = SYSTEM_CLOCK; +} diff --git a/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/system_ARMCM0.c.base@1.0.0 b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/system_ARMCM0.c.base@1.0.0 new file mode 100644 index 0000000..bf724ae --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Device/ARMCM0/system_ARMCM0.c.base@1.0.0 @@ -0,0 +1,56 @@ +/**************************************************************************//** + * @file system_ARMCM0.c + * @brief CMSIS Device System Source File for + * ARMCM0 Device + * @version V1.0.0 + * @date 09. July 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ARMCM0.h" + +/*---------------------------------------------------------------------------- + Define clocks + *----------------------------------------------------------------------------*/ +#define XTAL (50000000UL) /* Oscillator frequency */ + +#define SYSTEM_CLOCK (XTAL / 2U) + + +/*---------------------------------------------------------------------------- + System Core Clock Variable + *----------------------------------------------------------------------------*/ +uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */ + + +/*---------------------------------------------------------------------------- + System Core Clock update function + *----------------------------------------------------------------------------*/ +void SystemCoreClockUpdate (void) +{ + SystemCoreClock = SYSTEM_CLOCK; +} + +/*---------------------------------------------------------------------------- + System initialization function + *----------------------------------------------------------------------------*/ +void SystemInit (void) +{ + SystemCoreClock = SYSTEM_CLOCK; +} diff --git a/tensorflow-test/HelloWorld/RTE/Machine_Learning/debug_log.cpp.update@1.24.5 b/tensorflow-test/HelloWorld/RTE/Machine_Learning/debug_log.cpp.update@1.24.5 new file mode 100644 index 0000000..b7182a5 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Machine_Learning/debug_log.cpp.update@1.24.5 @@ -0,0 +1,67 @@ +/* Copyright 2023 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +// Implementation for the DebugLog() function that prints to the debug logger on +// an generic Cortex-M device. + +#include "tensorflow/lite/micro/debug_log.h" + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +#include "tensorflow/lite/micro/cortex_m_generic/debug_log_callback.h" + +#ifndef TF_LITE_STRIP_ERROR_STRINGS +#include +#endif + +static DebugLogCallback debug_log_callback = nullptr; + +namespace { + +void InvokeDebugLogCallback(const char* s) { + if (debug_log_callback != nullptr) { + debug_log_callback(s); + } +} + +} // namespace + +void RegisterDebugLogCallback(void (*cb)(const char* s)) { + debug_log_callback = cb; +} + +void DebugLog(const char* format, va_list args) { +#ifndef TF_LITE_STRIP_ERROR_STRINGS + constexpr int kMaxLogLen = 256; + char log_buffer[kMaxLogLen]; + + vsnprintf(log_buffer, kMaxLogLen, format, args); + InvokeDebugLogCallback(log_buffer); +#endif +} + +#ifndef TF_LITE_STRIP_ERROR_STRINGS +// Only called from MicroVsnprintf (micro_log.h) +int DebugVsnprintf(char* buffer, size_t buf_size, const char* format, + va_list vlist) { + return vsnprintf(buffer, buf_size, format, vlist); +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus diff --git a/tensorflow-test/HelloWorld/RTE/Machine_Learning/micro_time.cpp.update@1.24.5 b/tensorflow-test/HelloWorld/RTE/Machine_Learning/micro_time.cpp.update@1.24.5 new file mode 100644 index 0000000..fa85dd4 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Machine_Learning/micro_time.cpp.update@1.24.5 @@ -0,0 +1,80 @@ +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/lite/micro/micro_time.h" + +// Set in micro/tools/make/targets/cortex_m_generic_makefile.inc. +// Needed for the DWT and PMU counters. +#include "RTE_Components.h" +#include CMSIS_device_header + +namespace tflite { + +#if defined(PROJECT_GENERATION) + +// Stub functions for the project_generation target since these will be replaced +// by the target-specific implementation in the overall infrastructure that the +// TFLM project generation will be a part of. +uint32_t ticks_per_second() { return 0; } +uint32_t GetCurrentTimeTicks() { return 0; } + +#else + +uint32_t ticks_per_second() { return 0; } + +uint32_t GetCurrentTimeTicks() { + static bool is_initialized = false; + + if (!is_initialized) { +#if (!defined(TF_LITE_STRIP_ERROR_STRINGS) && !defined(ARMCM0) && \ + !defined(ARMCM0plus)) +#ifdef ARM_MODEL_USE_PMU_COUNTERS + ARM_PMU_Enable(); + DCB->DEMCR |= DCB_DEMCR_TRCENA_Msk; + + ARM_PMU_CYCCNT_Reset(); + ARM_PMU_CNTR_Enable(PMU_CNTENSET_CCNTR_ENABLE_Msk); + +#else +#ifdef ARMCM7 + DWT->LAR = 0xC5ACCE55; +#endif + CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; + + // Reset and DWT cycle counter. + DWT->CYCCNT = 0; + DWT->CTRL |= 1UL; + +#endif +#endif + + is_initialized = true; + } + +#if (!defined(TF_LITE_STRIP_ERROR_STRINGS) && !defined(ARMCM0) && \ + !defined(ARMCM0plus)) +#ifdef ARM_MODEL_USE_PMU_COUNTERS + return ARM_PMU_Get_CCNTR(); +#else + return DWT->CYCCNT; +#endif +#else + return 0; +#endif +} + +#endif // defined(PROJECT_GENERATION) + +} // namespace tflite diff --git a/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp b/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp index d6b0237..30c8831 100644 --- a/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp +++ b/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp @@ -119,11 +119,11 @@ void ethosuIrqHandler0() { ethosu_irq_handler(ðosu0_driver); } #endif extern "C" { -void uart_init(void); +//void uart_init(void); } void InitializeTarget() { - uart_init(); + // uart_init(); #if (!defined(TF_LITE_STRIP_ERROR_STRINGS) && !defined(ARMCM0)) #ifdef ARMCM55 diff --git a/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp.update@1.24.5 b/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp.update@1.24.5 new file mode 100644 index 0000000..db4a100 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/Machine_Learning/system_setup.cpp.update@1.24.5 @@ -0,0 +1,25 @@ +/* Copyright 2021 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/lite/micro/system_setup.h" + +namespace tflite { + +// To add an equivalent function for your own platform, create your own +// implementation file, and place it in a subfolder named after the target. See +// tensorflow/lite/micro/debug_log.cc for a similar example. +void InitializeTarget() {} + +} // namespace tflite diff --git a/tensorflow-test/HelloWorld/RTE/_balanced_CM0/Pre_Include_Global.h b/tensorflow-test/HelloWorld/RTE/_balanced_CM0/Pre_Include_Global.h new file mode 100644 index 0000000..d112a52 --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/_balanced_CM0/Pre_Include_Global.h @@ -0,0 +1,17 @@ +/* + * CSOLUTION generated file: DO NOT EDIT! + * Generated by: csolution version 2.4.0 + * + * Project: 'HelloWorld.balanced+CM0' + * Target: 'balanced+CM0' + */ + +#ifndef PRE_INCLUDE_GLOBAL_H +#define PRE_INCLUDE_GLOBAL_H + +/* tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.5-beta1 */ +// enabling global pre includes + #define TF_LITE_STATIC_MEMORY 1 + + +#endif /* PRE_INCLUDE_GLOBAL_H */ diff --git a/tensorflow-test/HelloWorld/RTE/_balanced_CM0/RTE_Components.h b/tensorflow-test/HelloWorld/RTE/_balanced_CM0/RTE_Components.h new file mode 100644 index 0000000..28da1ca --- /dev/null +++ b/tensorflow-test/HelloWorld/RTE/_balanced_CM0/RTE_Components.h @@ -0,0 +1,32 @@ +/* + * CSOLUTION generated file: DO NOT EDIT! + * Generated by: csolution version 2.4.0 + * + * Project: 'HelloWorld.balanced+CM0' + * Target: 'balanced+CM0' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "ARMCM0.h" + +/* tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.5-beta1 */ +#define RTE_DataExchange_Serialization_flatbuffers /* flatbuffers */ +/* tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.5-beta1 */ +#define RTE_DataExchange_Math_gemmlowp /* gemmlowp */ +/* tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.5-beta1 */ +#define RTE_DataExchange_Math_kissfft /* kissfft */ +/* tensorflow::Data Processing:Math:ruy&tensorflow@1.24.5-beta1 */ +#define RTE_DataProcessing_Math_ruy /* ruy */ +/* tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.5-beta1 */ +#define RTE_ML_TF_LITE /* TF */ +/* tensorflow::Machine Learning:TensorFlow:Signal Library&Reference@1.24.5-beta1 */ +#define RTE_ML_TF_LITE /* TF */ + + +#endif /* RTE_COMPONENTS_H */ diff --git a/tensorflow-test/HelloWorld/RTE/_size_CM55/Pre_Include_Global.h b/tensorflow-test/HelloWorld/RTE/_size_CM55/Pre_Include_Global.h index 94d5edb..7a01a21 100644 --- a/tensorflow-test/HelloWorld/RTE/_size_CM55/Pre_Include_Global.h +++ b/tensorflow-test/HelloWorld/RTE/_size_CM55/Pre_Include_Global.h @@ -9,7 +9,7 @@ #ifndef PRE_INCLUDE_GLOBAL_H #define PRE_INCLUDE_GLOBAL_H -/* tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.2 */ +/* tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.5 */ // enabling global pre includes #define TF_LITE_STATIC_MEMORY 1 diff --git a/tensorflow-test/HelloWorld/RTE/_size_CM55/RTE_Components.h b/tensorflow-test/HelloWorld/RTE/_size_CM55/RTE_Components.h index f739c48..d48dc74 100644 --- a/tensorflow-test/HelloWorld/RTE/_size_CM55/RTE_Components.h +++ b/tensorflow-test/HelloWorld/RTE/_size_CM55/RTE_Components.h @@ -15,17 +15,15 @@ */ #define CMSIS_device_header "ARMCM55.h" -/* tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.2 */ +/* tensorflow::Data Exchange:Serialization:flatbuffers&tensorflow@1.24.5 */ #define RTE_DataExchange_Serialization_flatbuffers /* flatbuffers */ -/* tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.2 */ +/* tensorflow::Data Processing:Math:gemmlowp fixed-point&tensorflow@1.24.5 */ #define RTE_DataExchange_Math_gemmlowp /* gemmlowp */ -/* tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.2 */ +/* tensorflow::Data Processing:Math:kissfft&tensorflow@1.24.5 */ #define RTE_DataExchange_Math_kissfft /* kissfft */ -/* tensorflow::Data Processing:Math:ruy&tensorflow@1.24.2 */ +/* tensorflow::Data Processing:Math:ruy&tensorflow@1.24.5 */ #define RTE_DataProcessing_Math_ruy /* ruy */ -/* tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.2 */ -#define RTE_ML_TF_LITE /* TF */ -/* tensorflow::Machine Learning:TensorFlow:Testing@1.24.2 */ +/* tensorflow::Machine Learning:TensorFlow:Kernel&Reference@1.24.5 */ #define RTE_ML_TF_LITE /* TF */ diff --git a/tensorflow-test/HelloWorld/vcpkg-configuration.json b/tensorflow-test/HelloWorld/vcpkg-configuration.json new file mode 100644 index 0000000..01a21ce --- /dev/null +++ b/tensorflow-test/HelloWorld/vcpkg-configuration.json @@ -0,0 +1,18 @@ +{ + "registries": [ + { + "name": "arm", + "kind": "artifact", + "location": "https://artifacts.tools.arm.com/vcpkg-registry" + } + ], + "requires": { + "arm:tools/open-cmsis-pack/cmsis-toolbox": "2.4.0", + "arm:tools/kitware/cmake": "3.28.4", + "arm:tools/ninja-build/ninja": "1.12.0", + "arm:compilers/arm/armclang": "6.22.0", + "arm:compilers/arm/arm-none-eabi-gcc": "^13.2.1", + "arm:models/arm/avh-fvp": "^11.22.39", + "arm:debuggers/arm/armdbg": "6.1.2" + } +} \ No newline at end of file diff --git a/tensorflow-test/install_cmsis_toolbox.sh b/tensorflow-test/install_cmsis_toolbox.sh deleted file mode 100644 index 7f6dad5..0000000 --- a/tensorflow-test/install_cmsis_toolbox.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -sudo rm -rv -f /opt/cbuild -sudo wget https://github.com/Open-CMSIS-Pack/devtools/releases/download/tools%2Fbuildmgr%2F0.10.5/cbuild_install.sh -sudo chmod +x ./cbuild_install.sh -sudo ./cbuild_install.sh < cmsis-toolbox.options -source /opt/cbuild/etc/setup diff --git a/tensorflow-test/kernel_tests_cmsis.yml b/tensorflow-test/kernel_tests_cmsis.yml deleted file mode 100644 index 0a0f6fe..0000000 --- a/tensorflow-test/kernel_tests_cmsis.yml +++ /dev/null @@ -1,203 +0,0 @@ -kernel_unit_tests: - readable: "Kernel Unit Tests - CMSIS-NN" - report: kernel.cmsisnn.junit - tests: - - activations_test: - sources: - - tensorflow/lite/micro/kernels/activations_test.cc - - add_test: - sources: - - tensorflow/lite/micro/kernels/add_test.cc - - add_n_test: - sources: - - tensorflow/lite/micro/kernels/add_n_test.cc - - arg_min_max_test: - sources: - - tensorflow/lite/micro/kernels/arg_min_max_test.cc - - batch_to_space_nd_test: - sources: - - tensorflow/lite/micro/kernels/batch_to_space_nd_test.cc - - cast_test: - sources: - - tensorflow/lite/micro/kernels/cast_test.cc - - ceil_test: - sources: - - tensorflow/lite/micro/kernels/ceil_test.cc - - circular_buffer_test: - sources: - - tensorflow/lite/micro/kernels/circular_buffer_test.cc - - tensorflow/lite/micro/kernels/circular_buffer_flexbuffers_generated_data.cc - - comparisons_test: - sources: - - tensorflow/lite/micro/kernels/comparisons_test.cc - - concatenation_test: - sources: - - tensorflow/lite/micro/kernels/concatenation_test.cc - - conv_test: - sources: - - tensorflow/lite/micro/kernels/conv_test.cc - - tensorflow/lite/micro/kernels/conv_test_common.cc - - cumsum_test: - sources: - - tensorflow/lite/micro/kernels/cumsum_test.cc - - depth_to_space_test: - sources: - - tensorflow/lite/micro/kernels/depth_to_space_test.cc - - depthwise_conv_test: - sources: - - tensorflow/lite/micro/kernels/depthwise_conv_test.cc - - dequantize_test: - sources: - - tensorflow/lite/micro/kernels/dequantize_test.cc - - detection_postprocess_test: - sources: - - tensorflow/lite/micro/kernels/detection_postprocess_test.cc - - tensorflow/lite/micro/kernels/detection_postprocess_flexbuffers_generated_data.cc - - elementwise_test: - sources: - - tensorflow/lite/micro/kernels/elementwise_test.cc - - elu_test: - sources: - - tensorflow/lite/micro/kernels/elu_test.cc - - exp_test: - sources: - - tensorflow/lite/micro/kernels/exp_test.cc - - expand_dims_test: - sources: - - tensorflow/lite/micro/kernels/expand_dims_test.cc - - fill_test: - sources: - - tensorflow/lite/micro/kernels/fill_test.cc - - floor_test: - sources: - - tensorflow/lite/micro/kernels/floor_test.cc - - floor_div_test: - sources: - - tensorflow/lite/micro/kernels/floor_div_test.cc - - floor_mod_test: - sources: - - tensorflow/lite/micro/kernels/floor_mod_test.cc - - fully_connected_test: - sources: - - tensorflow/lite/micro/kernels/fully_connected_test.cc - - gather_test: - sources: - - tensorflow/lite/micro/kernels/gather_test.cc - - gather_nd_test: - sources: - - tensorflow/lite/micro/kernels/gather_nd_test.cc - - hard_swish_test: - sources: - - tensorflow/lite/micro/kernels/hard_swish_test.cc - - l2norm_test: - sources: - - tensorflow/lite/micro/kernels/l2norm_test.cc - - l2_pool_2d_test: - sources: - - tensorflow/lite/micro/kernels/l2_pool_2d_test.cc - - leaky_relu_test: - sources: - - tensorflow/lite/micro/kernels/leaky_relu_test.cc - - logical_test: - sources: - - tensorflow/lite/micro/kernels/logical_test.cc - - logistic_test: - sources: - - tensorflow/lite/micro/kernels/logistic_test.cc - - log_softmax_test: - sources: - - tensorflow/lite/micro/kernels/log_softmax_test.cc - - maximum_minimum_test: - sources: - - tensorflow/lite/micro/kernels/maximum_minimum_test.cc - - mul_test: - sources: - - tensorflow/lite/micro/kernels/mul_test.cc - - neg_test: - sources: - - tensorflow/lite/micro/kernels/neg_test.cc - - pack_test: - sources: - - tensorflow/lite/micro/kernels/pack_test.cc - - pad_test: - sources: - - tensorflow/lite/micro/kernels/pad_test.cc - - pooling_test: - sources: - - tensorflow/lite/micro/kernels/pooling_test.cc - - prelu_test: - sources: - - tensorflow/lite/micro/kernels/prelu_test.cc - - quantization_util_test: - sources: - - tensorflow/lite/micro/kernels/quantization_util_test.cc - - quantize_test: - sources: - - tensorflow/lite/micro/kernels/quantize_test.cc - - reduce_test: - sources: - - tensorflow/lite/micro/kernels/reduce_test.cc - - reshape_test: - sources: - - tensorflow/lite/micro/kernels/reshape_test.cc - - resize_bilinear_test: - sources: - - tensorflow/lite/micro/kernels/resize_bilinear_test.cc - - resize_nearest_neighbor_test: - sources: - - tensorflow/lite/micro/kernels/resize_nearest_neighbor_test.cc - - round_test: - sources: - - tensorflow/lite/micro/kernels/round_test.cc - - shape_test: - sources: - - tensorflow/lite/micro/kernels/shape_test.cc - - softmax_test: - sources: - - tensorflow/lite/micro/kernels/softmax_test.cc - - space_to_batch_nd_test: - sources: - - tensorflow/lite/micro/kernels/space_to_batch_nd_test.cc - - space_to_depth_test: - sources: - - tensorflow/lite/micro/kernels/space_to_depth_test.cc - - split_test: - sources: - - tensorflow/lite/micro/kernels/split_test.cc - - split_v_test: - sources: - - tensorflow/lite/micro/kernels/split_v_test.cc - - squeeze_test: - sources: - - tensorflow/lite/micro/kernels/squeeze_test.cc - - strided_slice_test: - sources: - - tensorflow/lite/micro/kernels/strided_slice_test.cc - - sub_test: - sources: - - tensorflow/lite/micro/kernels/sub_test.cc - - svdf_test: - sources: - - tensorflow/lite/micro/kernels/svdf_test.cc - - tanh_test: - sources: - - tensorflow/lite/micro/kernels/tanh_test.cc - - transpose_test: - sources: - - tensorflow/lite/micro/kernels/transpose_test.cc - - transpose_conv_test: - sources: - - tensorflow/lite/micro/kernels/transpose_conv_test.cc - - tensorflow/lite/micro/kernels/conv_test_common.cc - - unpack_test: - sources: - - tensorflow/lite/micro/kernels/unpack_test.cc - - zeros_like_test: - sources: - - tensorflow/lite/micro/kernels/zeros_like_test.cc - - lanner/greedy_memory_planner_test: - sources: - - tensorflow/lite/micro/memory_planner/greedy_memory_planner_test.cc - - lanner/linear_memory_planner_te: - sources: - - tensorflow/lite/micro/memory_planner/linear_memory_planner_test.c \ No newline at end of file diff --git a/tensorflow-test/kernel_tests_ethos.yml b/tensorflow-test/kernel_tests_ethos.yml deleted file mode 100644 index 161e423..0000000 --- a/tensorflow-test/kernel_tests_ethos.yml +++ /dev/null @@ -1,203 +0,0 @@ -kernel_unit_tests: - readable: "Kernel Unit Tests - Ethos-U" - report: kernel.ethos.junit - tests: - - activations_test: - sources: - - tensorflow/lite/micro/kernels/activations_test.cc - - add_test: - sources: - - tensorflow/lite/micro/kernels/add_test.cc - - add_n_test: - sources: - - tensorflow/lite/micro/kernels/add_n_test.cc - - arg_min_max_test: - sources: - - tensorflow/lite/micro/kernels/arg_min_max_test.cc - - batch_to_space_nd_test: - sources: - - tensorflow/lite/micro/kernels/batch_to_space_nd_test.cc - - cast_test: - sources: - - tensorflow/lite/micro/kernels/cast_test.cc - - ceil_test: - sources: - - tensorflow/lite/micro/kernels/ceil_test.cc - - circular_buffer_test: - sources: - - tensorflow/lite/micro/kernels/circular_buffer_test.cc - - tensorflow/lite/micro/kernels/circular_buffer_flexbuffers_generated_data.cc - - comparisons_test: - sources: - - tensorflow/lite/micro/kernels/comparisons_test.cc - - concatenation_test: - sources: - - tensorflow/lite/micro/kernels/concatenation_test.cc - - conv_test: - sources: - - tensorflow/lite/micro/kernels/conv_test.cc - - tensorflow/lite/micro/kernels/conv_test_common.cc - - cumsum_test: - sources: - - tensorflow/lite/micro/kernels/cumsum_test.cc - - depth_to_space_test: - sources: - - tensorflow/lite/micro/kernels/depth_to_space_test.cc - - depthwise_conv_test: - sources: - - tensorflow/lite/micro/kernels/depthwise_conv_test.cc - - dequantize_test: - sources: - - tensorflow/lite/micro/kernels/dequantize_test.cc - - detection_postprocess_test: - sources: - - tensorflow/lite/micro/kernels/detection_postprocess_test.cc - - tensorflow/lite/micro/kernels/detection_postprocess_flexbuffers_generated_data.cc - - elementwise_test: - sources: - - tensorflow/lite/micro/kernels/elementwise_test.cc - - elu_test: - sources: - - tensorflow/lite/micro/kernels/elu_test.cc - - exp_test: - sources: - - tensorflow/lite/micro/kernels/exp_test.cc - - expand_dims_test: - sources: - - tensorflow/lite/micro/kernels/expand_dims_test.cc - - fill_test: - sources: - - tensorflow/lite/micro/kernels/fill_test.cc - - floor_test: - sources: - - tensorflow/lite/micro/kernels/floor_test.cc - - floor_div_test: - sources: - - tensorflow/lite/micro/kernels/floor_div_test.cc - - floor_mod_test: - sources: - - tensorflow/lite/micro/kernels/floor_mod_test.cc - - fully_connected_test: - sources: - - tensorflow/lite/micro/kernels/fully_connected_test.cc - - gather_test: - sources: - - tensorflow/lite/micro/kernels/gather_test.cc - - gather_nd_test: - sources: - - tensorflow/lite/micro/kernels/gather_nd_test.cc - - hard_swish_test: - sources: - - tensorflow/lite/micro/kernels/hard_swish_test.cc - - l2norm_test: - sources: - - tensorflow/lite/micro/kernels/l2norm_test.cc - - l2_pool_2d_test: - sources: - - tensorflow/lite/micro/kernels/l2_pool_2d_test.cc - - leaky_relu_test: - sources: - - tensorflow/lite/micro/kernels/leaky_relu_test.cc - - logical_test: - sources: - - tensorflow/lite/micro/kernels/logical_test.cc - - logistic_test: - sources: - - tensorflow/lite/micro/kernels/logistic_test.cc - - log_softmax_test: - sources: - - tensorflow/lite/micro/kernels/log_softmax_test.cc - - maximum_minimum_test: - sources: - - tensorflow/lite/micro/kernels/maximum_minimum_test.cc - - mul_test: - sources: - - tensorflow/lite/micro/kernels/mul_test.cc - - neg_test: - sources: - - tensorflow/lite/micro/kernels/neg_test.cc - - pack_test: - sources: - - tensorflow/lite/micro/kernels/pack_test.cc - - pad_test: - sources: - - tensorflow/lite/micro/kernels/pad_test.cc - - pooling_test: - sources: - - tensorflow/lite/micro/kernels/pooling_test.cc - - prelu_test: - sources: - - tensorflow/lite/micro/kernels/prelu_test.cc - - quantization_util_test: - sources: - - tensorflow/lite/micro/kernels/quantization_util_test.cc - - quantize_test: - sources: - - tensorflow/lite/micro/kernels/quantize_test.cc - - reduce_test: - sources: - - tensorflow/lite/micro/kernels/reduce_test.cc - - reshape_test: - sources: - - tensorflow/lite/micro/kernels/reshape_test.cc - - resize_bilinear_test: - sources: - - tensorflow/lite/micro/kernels/resize_bilinear_test.cc - - resize_nearest_neighbor_test: - sources: - - tensorflow/lite/micro/kernels/resize_nearest_neighbor_test.cc - - round_test: - sources: - - tensorflow/lite/micro/kernels/round_test.cc - - shape_test: - sources: - - tensorflow/lite/micro/kernels/shape_test.cc - - softmax_test: - sources: - - tensorflow/lite/micro/kernels/softmax_test.cc - - space_to_batch_nd_test: - sources: - - tensorflow/lite/micro/kernels/space_to_batch_nd_test.cc - - space_to_depth_test: - sources: - - tensorflow/lite/micro/kernels/space_to_depth_test.cc - - split_test: - sources: - - tensorflow/lite/micro/kernels/split_test.cc - - split_v_test: - sources: - - tensorflow/lite/micro/kernels/split_v_test.cc - - squeeze_test: - sources: - - tensorflow/lite/micro/kernels/squeeze_test.cc - - strided_slice_test: - sources: - - tensorflow/lite/micro/kernels/strided_slice_test.cc - - sub_test: - sources: - - tensorflow/lite/micro/kernels/sub_test.cc - - svdf_test: - sources: - - tensorflow/lite/micro/kernels/svdf_test.cc - - tanh_test: - sources: - - tensorflow/lite/micro/kernels/tanh_test.cc - - transpose_test: - sources: - - tensorflow/lite/micro/kernels/transpose_test.cc - - transpose_conv_test: - sources: - - tensorflow/lite/micro/kernels/transpose_conv_test.cc - - tensorflow/lite/micro/kernels/conv_test_common.cc - - unpack_test: - sources: - - tensorflow/lite/micro/kernels/unpack_test.cc - - zeros_like_test: - sources: - - tensorflow/lite/micro/kernels/zeros_like_test.cc - - lanner/greedy_memory_planner_test: - sources: - - tensorflow/lite/micro/memory_planner/greedy_memory_planner_test.cc - - lanner/linear_memory_planner_te: - sources: - - tensorflow/lite/micro/memory_planner/linear_memory_planner_test.c \ No newline at end of file diff --git a/tensorflow-test/kernel_tests_reference.yml b/tensorflow-test/kernel_tests_reference.yml deleted file mode 100644 index cd8e2fb..0000000 --- a/tensorflow-test/kernel_tests_reference.yml +++ /dev/null @@ -1,203 +0,0 @@ -kernel_unit_tests: - readable: "Kernel Unit Tests Reference" - report: kernel.reference.junit - tests: - - activations_test: - sources: - - tensorflow/lite/micro/kernels/activations_test.cc - - add_test: - sources: - - tensorflow/lite/micro/kernels/add_test.cc - - add_n_test: - sources: - - tensorflow/lite/micro/kernels/add_n_test.cc - - arg_min_max_test: - sources: - - tensorflow/lite/micro/kernels/arg_min_max_test.cc - - batch_to_space_nd_test: - sources: - - tensorflow/lite/micro/kernels/batch_to_space_nd_test.cc - - cast_test: - sources: - - tensorflow/lite/micro/kernels/cast_test.cc - - ceil_test: - sources: - - tensorflow/lite/micro/kernels/ceil_test.cc - - circular_buffer_test: - sources: - - tensorflow/lite/micro/kernels/circular_buffer_test.cc - - tensorflow/lite/micro/kernels/circular_buffer_flexbuffers_generated_data.cc - - comparisons_test: - sources: - - tensorflow/lite/micro/kernels/comparisons_test.cc - - concatenation_test: - sources: - - tensorflow/lite/micro/kernels/concatenation_test.cc - - conv_test: - sources: - - tensorflow/lite/micro/kernels/conv_test.cc - - tensorflow/lite/micro/kernels/conv_test_common.cc - - cumsum_test: - sources: - - tensorflow/lite/micro/kernels/cumsum_test.cc - - depth_to_space_test: - sources: - - tensorflow/lite/micro/kernels/depth_to_space_test.cc - - depthwise_conv_test: - sources: - - tensorflow/lite/micro/kernels/depthwise_conv_test.cc - - dequantize_test: - sources: - - tensorflow/lite/micro/kernels/dequantize_test.cc - - detection_postprocess_test: - sources: - - tensorflow/lite/micro/kernels/detection_postprocess_test.cc - - tensorflow/lite/micro/kernels/detection_postprocess_flexbuffers_generated_data.cc - - elementwise_test: - sources: - - tensorflow/lite/micro/kernels/elementwise_test.cc - - elu_test: - sources: - - tensorflow/lite/micro/kernels/elu_test.cc - - exp_test: - sources: - - tensorflow/lite/micro/kernels/exp_test.cc - - expand_dims_test: - sources: - - tensorflow/lite/micro/kernels/expand_dims_test.cc - - fill_test: - sources: - - tensorflow/lite/micro/kernels/fill_test.cc - - floor_test: - sources: - - tensorflow/lite/micro/kernels/floor_test.cc - - floor_div_test: - sources: - - tensorflow/lite/micro/kernels/floor_div_test.cc - - floor_mod_test: - sources: - - tensorflow/lite/micro/kernels/floor_mod_test.cc - - fully_connected_test: - sources: - - tensorflow/lite/micro/kernels/fully_connected_test.cc - - gather_test: - sources: - - tensorflow/lite/micro/kernels/gather_test.cc - - gather_nd_test: - sources: - - tensorflow/lite/micro/kernels/gather_nd_test.cc - - hard_swish_test: - sources: - - tensorflow/lite/micro/kernels/hard_swish_test.cc - - l2norm_test: - sources: - - tensorflow/lite/micro/kernels/l2norm_test.cc - - l2_pool_2d_test: - sources: - - tensorflow/lite/micro/kernels/l2_pool_2d_test.cc - - leaky_relu_test: - sources: - - tensorflow/lite/micro/kernels/leaky_relu_test.cc - - logical_test: - sources: - - tensorflow/lite/micro/kernels/logical_test.cc - - logistic_test: - sources: - - tensorflow/lite/micro/kernels/logistic_test.cc - - log_softmax_test: - sources: - - tensorflow/lite/micro/kernels/log_softmax_test.cc - - maximum_minimum_test: - sources: - - tensorflow/lite/micro/kernels/maximum_minimum_test.cc - - mul_test: - sources: - - tensorflow/lite/micro/kernels/mul_test.cc - - neg_test: - sources: - - tensorflow/lite/micro/kernels/neg_test.cc - - pack_test: - sources: - - tensorflow/lite/micro/kernels/pack_test.cc - - pad_test: - sources: - - tensorflow/lite/micro/kernels/pad_test.cc - - pooling_test: - sources: - - tensorflow/lite/micro/kernels/pooling_test.cc - - prelu_test: - sources: - - tensorflow/lite/micro/kernels/prelu_test.cc - - quantization_util_test: - sources: - - tensorflow/lite/micro/kernels/quantization_util_test.cc - - quantize_test: - sources: - - tensorflow/lite/micro/kernels/quantize_test.cc - - reduce_test: - sources: - - tensorflow/lite/micro/kernels/reduce_test.cc - - reshape_test: - sources: - - tensorflow/lite/micro/kernels/reshape_test.cc - - resize_bilinear_test: - sources: - - tensorflow/lite/micro/kernels/resize_bilinear_test.cc - - resize_nearest_neighbor_test: - sources: - - tensorflow/lite/micro/kernels/resize_nearest_neighbor_test.cc - - round_test: - sources: - - tensorflow/lite/micro/kernels/round_test.cc - - shape_test: - sources: - - tensorflow/lite/micro/kernels/shape_test.cc - - softmax_test: - sources: - - tensorflow/lite/micro/kernels/softmax_test.cc - - space_to_batch_nd_test: - sources: - - tensorflow/lite/micro/kernels/space_to_batch_nd_test.cc - - space_to_depth_test: - sources: - - tensorflow/lite/micro/kernels/space_to_depth_test.cc - - split_test: - sources: - - tensorflow/lite/micro/kernels/split_test.cc - - split_v_test: - sources: - - tensorflow/lite/micro/kernels/split_v_test.cc - - squeeze_test: - sources: - - tensorflow/lite/micro/kernels/squeeze_test.cc - - strided_slice_test: - sources: - - tensorflow/lite/micro/kernels/strided_slice_test.cc - - sub_test: - sources: - - tensorflow/lite/micro/kernels/sub_test.cc - - svdf_test: - sources: - - tensorflow/lite/micro/kernels/svdf_test.cc - - tanh_test: - sources: - - tensorflow/lite/micro/kernels/tanh_test.cc - - transpose_test: - sources: - - tensorflow/lite/micro/kernels/transpose_test.cc - - transpose_conv_test: - sources: - - tensorflow/lite/micro/kernels/transpose_conv_test.cc - - tensorflow/lite/micro/kernels/conv_test_common.cc - - unpack_test: - sources: - - tensorflow/lite/micro/kernels/unpack_test.cc - - zeros_like_test: - sources: - - tensorflow/lite/micro/kernels/zeros_like_test.cc - - lanner/greedy_memory_planner_test: - sources: - - tensorflow/lite/micro/memory_planner/greedy_memory_planner_test.cc - - lanner/linear_memory_planner_te: - sources: - - tensorflow/lite/micro/memory_planner/linear_memory_planner_test.c \ No newline at end of file diff --git a/tensorflow-test/make_integration_tests.sh b/tensorflow-test/make_integration_tests.sh new file mode 100755 index 0000000..ca2faaf --- /dev/null +++ b/tensorflow-test/make_integration_tests.sh @@ -0,0 +1,2 @@ +cd /workspaces/tensorflow-pack/tensorflow-build/rel/mlplatform/core_software/tflite_micro +tensorflow/lite/micro/tools/ci_build/test_generate_integration_tests.sh \ No newline at end of file diff --git a/tensorflow-test/test_tests.yml b/tensorflow-test/test_tests.yml deleted file mode 100644 index 88fd98e..0000000 --- a/tensorflow-test/test_tests.yml +++ /dev/null @@ -1,12 +0,0 @@ -test_tests: - readable: "Test Tests" - report: test_test.junit - tests: - - testing_helpers_test: - sources: - - tensorflow/lite/micro/testing_helpers_test.cc - - - - - diff --git a/tensorflow-test/testlog_parser.py b/tensorflow-test/testlog_parser.py deleted file mode 100644 index 7fdcb5d..0000000 --- a/tensorflow-test/testlog_parser.py +++ /dev/null @@ -1,39 +0,0 @@ -import os, sys -from junit_xml import TestSuite, TestCase - -def main(): - for filename in os.listdir(in_path): - if filename.endswith(".stdio"): - filename = in_path + filename - print(">>> Parsing file: " , filename) - test_fn_name = os.path.basename(filename) - test_report_fn = filename + ".junit" - junit_file = open(test_report_fn, "w") - print(">>>TEST Writing report to ", junit_file) - junit_cases = [] - with open(filename) as f: - lines = f.readlines() - for line in lines: - if "Testing" in line: - line = line.split(' ') - line = [i.strip() for i in line] - print(line[1]) - tc = TestCase(classname=test_fn_name, name=line[1], elapsed_sec=0, stderr="", stdout="") - junit_cases.append(tc) - if "~~~" in line: - if "PASSED" in line: - print(">>> Tests Passed") - if "FAILED" in line: - print(">>> Tests Failed") - junit_report = TestSuite("Tensorflow Tests", junit_cases, package=test_fn_name, properties={"ARMCLANG": "Reference"}) - TestSuite.to_file(junit_file, [junit_report], prettyprint=False) - junit_file.close() - continue - else: - continue - -in_path = sys.argv[1] - -if __name__ == '__main__': - main() - diff --git a/tensorflow-test/testrunner_fvp.py b/tensorflow-test/testrunner_fvp.py deleted file mode 100644 index cc17adf..0000000 --- a/tensorflow-test/testrunner_fvp.py +++ /dev/null @@ -1,402 +0,0 @@ -import os -import sys -import subprocess -import datetime -import argparse -import shutil -from time import perf_counter -from junit_xml import TestSuite, TestCase -import yaml -import re -import six - -# get the datetime, when the script got started -datetime_string = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") -# get the script's directory, where template and work folders are located / created -test_on_arm_base = os.path.dirname(os.path.abspath(sys.argv[0])) - -last_stderr = "" -last_stdout = "" - - -def run_debug(device_name, debug_file_name): - if "ARMCM0" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M0" - elif "ARMCM0P" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M0plus" - elif "ARMCM3" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M3" - elif "ARMCM4" == device_name or "ARMCM4_FP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M4" - elif "ARMCM7" == device_name or "ARMCM7_SP" == device_name or "ARMCM7_DP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M7" - elif "ARMCM23" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M23" - elif "ARMCM33" == device_name or "ARMCM33_DSP_FP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M33" - elif "ARMCM35P" == device_name or "ARMCM35P_DSP_FP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M35P" - elif "ARMCM55_DSP_FPU_MVE" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M55" - elif "SSE-300-MPS3" == device_name: - fvp_executable_name = "FVP_Corstone_SSE-300_Ethos-U55" - else: - fvp_executable_name = 0 - - if fvp_executable_name: - result = subprocess.run([fvp_executable_name, "--config-file", os.path.join(test_on_arm_base, - "templates", (fvp_executable_name + ".config")), "--cpulimit=10", debug_file_name], capture_output=True, text=True) - last_stdout = result.stdout - if 0 == result.returncode: - # running the FVP itself was ok - if 0 < result.stdout.find("~~~ALL TESTS PASSED~~~") and 0 > result.stdout.find("Error:"): - # the tensorflow "ok" string is found and no additional "Error" from a fault handler - Error = 0 - else: - # running the test was no ok - print(result.stdout) - Error = 1 - else: - # running the FVP itself was not ok - print(result.stdout) - print("fvp returncode not ok" + " (" + str(result.returncode) + ")") - Error = 1 - else: - print(">>>TEST Warning: No FVP available for Device - Skipping execution") - Error = 1 - - return Error - - -def build_cproj(toolchain, project_file_name): - global last_stderr - global last_stdout - cbuild_script_name = "cbuild.sh" - result = subprocess.run( - [cbuild_script_name, project_file_name], capture_output=True, text=True) - if result.returncode: - print(result.stderr) - last_stderr = result.stderr - last_stdout = result.stdout - debug_file_name = 0 - else: - debug_file_name = os.path.join(os.path.join(os.path.dirname( - project_file_name), ""), os.path.basename(project_file_name).rstrip(".cprj")) - if "GCC" == toolchain: - debug_file_name = debug_file_name + ".elf" - else: - debug_file_name = debug_file_name + ".axf" - print(">>>TEST Build successful: " + debug_file_name) - return debug_file_name - - -def sanitize_xml(unsanitized): - """Uses a whitelist to avoid generating bad XML.""" - return re.sub(r'[^a-zA-Z0-9+_\-/\\.]', '', six.ensure_str(unsanitized)) - - -def make_component_file_list(base_path ,srcs_list): - replace_srcs = '' - srcs_list = set(srcs_list) - for src in srcs_list: - if not src: - continue - ext = os.path.splitext(src)[1] - if ext == '.h': - category = "header" - elif ext == '.c': - category = "sourceC" - elif ext == '.cc' or ext == '.cpp': - category = "sourceCpp" - else: - continue - clean_src = sanitize_xml(os.path.join(base_path,src)) - replace_srcs += ' \n' - return replace_srcs - - -def create_cproj(cvariant, toolchain, device_name, source_list, test_name, tflm_path): - test_directory_name = os.path.join( - test_on_arm_base, "work", cvariant, toolchain, device_name) - template_directory_name = os.path.join( - test_on_arm_base, "templates", cvariant, toolchain, device_name) - - template_file_name = os.path.join( - template_directory_name, device_name) + ".cprj" - template_file = open(template_file_name, "rt") - if template_file: - test_executable_name = os.path.basename(test_name).rstrip(".cc") - cproj_file_name = os.path.join( - test_directory_name, test_executable_name) + ".cprj" - cproj_file = open(cproj_file_name, "wt") - if cproj_file: - for input_line in template_file: - if 0 < input_line.find("_executable_to_test"): - output_line = input_line.replace( - '_executable_to_test', test_executable_name) - elif 0 < input_line.find("_file_block_xml_"): - replacement_str = make_component_file_list(tflm_path, source_list) - output_line = input_line.replace( - '_file_block_xml_', replacement_str) - else: - output_line = input_line - cproj_file.write(output_line) - cproj_file.close() - try: - shutil.copytree(os.path.join(template_directory_name, "RTE"), os.path.join( - test_directory_name, "RTE")) - except: - e = sys.exc_info()[0] - print(">>>TEST Skipping copy of RTE folder. Reason: ", e) - else: - print("could not create cprj file") - cproj_file_name = 0 - template_file.close() - else: - print("template file does not exist") - cproj_file_name = 0 - - return cproj_file_name - - -def run_test_on_arm_yml(cvariant, toolchain, device_name, tflm_path, test_list, log_file, junit_report): - total_counter = 0 - success_counter = 0 - failure_counter = 0 - global last_stderr - global last_stdout - - for test in test_list: - # for test purpose do not all - # if 1 <= total_counter: - # break - total_counter = total_counter + 1 - last_stderr = "" - last_stdout = "" - - testname = [key for key in test.keys()][0] - - if device_name: - print(">>>TEST Generating test project: " + testname + " on device=" + - device_name + " toolchain=" + toolchain + " cvariant=" + cvariant) - startTime = perf_counter() - cproj_file_name = create_cproj( - cvariant, toolchain, device_name, test['sources'], testname, tflm_path) - tcname = device_name + ":" + toolchain + ":" + cvariant - if cproj_file_name: - debug_file_name = build_cproj(toolchain, cproj_file_name) - if debug_file_name: - Error = 0 - Error = run_debug(device_name, debug_file_name) - tc = TestCase(classname=testname, name=tcname, elapsed_sec=( - perf_counter() - startTime)) - if 0 == Error: - tc = TestCase(classname=testname, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr[:250], stdout=last_stdout[:250]) - print(">>>TEST All Tests passed: " + testname) - log_file.write(", %s" % "success") - success_counter = success_counter + 1 - junit_report.append(tc) - else: - tc = TestCase(classname=testname, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr[:250], stdout=last_stdout[:250]) - print(">>!TEST failure: tests failed " + - testname) - log_file.write(", %s" % "failure: debug result") - tc.add_failure_info( - "Unit Tests report failed Tests") - failure_counter = failure_counter + 1 - junit_report.append(tc) - else: - tc = TestCase(classname=testname, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr[:250], stdout=last_stdout[:250]) - print(">>!TEST failure: build failed: " + testname) - log_file.write(", %s" % "failure: debug file") - tc.add_failure_info("CMSIS Build reports failure") - failure_counter = failure_counter + 1 - junit_report.append(tc) - else: - tc = TestCase(classname=testname, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr[:250], stdout=last_stdout[:250]) - print(">>!TEST failure: project generation failed" + - testname) - log_file.write(", %s" % "failure: cprj file") - tc.add_failure_info("Test project creation failed") - failure_counter = failure_counter + 1 - junit_report.append(tc) - else: - log_file.write(", %s" % testname[testname.find( - "tensorflow/lite/micro"):len(testname)]) - - return [total_counter, success_counter, failure_counter] - - - -def run_test_on_arm_path(cvariant, toolchain, device_name, search_path, log_file, junit_report): - total_counter = 0 - success_counter = 0 - failure_counter = 0 - global last_stderr - global last_stdout - - for file_name in os.listdir(os.path.join(os.getcwd(), search_path)): - if file_name.endswith("_test.cc"): - # for test purpose do not all - # if 1 <= total_counter: - # break - total_counter = total_counter + 1 - test_file_name = os.path.join(search_path, file_name) - last_stderr = "" - last_stdout = "" - - if device_name: - print(">>>TEST Running test unit: " + file_name + " on device=" + - device_name + " toolchain=" + toolchain + " cvariant=" + cvariant) - startTime = perf_counter() - cproj_file_name = create_cproj( - cvariant, toolchain, device_name, test_file_name) - tcname = device_name + ":" + toolchain + ":" + cvariant - if cproj_file_name: - debug_file_name = build_cproj(toolchain, cproj_file_name) - if debug_file_name: - Error = 0 - Error = run_debug(device_name, debug_file_name) - tc = TestCase(classname=file_name, name=tcname, elapsed_sec=( - perf_counter() - startTime)) - if 0 == Error: - tc = TestCase(classname=file_name, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr, stdout=last_stdout) - print(">>>TEST All Tests passed: " + test_file_name) - log_file.write(", %s" % "success") - success_counter = success_counter + 1 - junit_report.append(tc) - else: - tc = TestCase(classname=file_name, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr, stdout=last_stdout) - print(">>!TEST failure: tests failed " + - test_file_name) - log_file.write(", %s" % "failure: debug result") - tc.add_failure_info( - "Unit Tests report failed Tests") - failure_counter = failure_counter + 1 - junit_report.append(tc) - else: - tc = TestCase(classname=file_name, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr, stdout=last_stdout) - print(">>!TEST failure: build failed: " + test_file_name) - log_file.write(", %s" % "failure: debug file") - tc.add_failure_info("CMSIS Build reports failure") - failure_counter = failure_counter + 1 - junit_report.append(tc) - else: - tc = TestCase(classname=file_name, name=tcname, elapsed_sec=( - perf_counter() - startTime), stderr=last_stderr, stdout=last_stdout) - print(">>!TEST failure: project generation failed" + - test_file_name) - log_file.write(", %s" % "failure: cprj file") - tc.add_failure_info("Test project creation failed") - failure_counter = failure_counter + 1 - junit_report.append(tc) - else: - log_file.write(", %s" % test_file_name[test_file_name.find( - "tensorflow/lite/micro"):len(test_file_name)]) - - return [total_counter, success_counter, failure_counter] - - -def get_test_devices(template_folder_name): - return [d for d in os.listdir(template_folder_name) if os.path.isdir(os.path.join(template_folder_name, d))] - - -def main(): - test_error = 0 - # create the argument parser - parser = argparse.ArgumentParser( - description="Run tensorflow-lite-micro tests on Arm VFPs.") - # add the --tflm_path option - parser.add_argument("--tflm_path", type=str, default=os.path.curdir, - help="path, basepath for sources from inventory") - parser.add_argument("--toolchain", type=str, default="ARMCLANG", - help="toolchain to build the tests with (ARMCLANG, GCC)") - parser.add_argument("--cvariant", type=str, default="CMSIS-NN", - help="variant of tensorflow lite micro to use (Reference, CMSIS-NN, Ethos-U)") - parser.add_argument("--inventory", type=str, default="", - help="yml file with a list of tests and sources for complex tests") - - # parse the arguments - arguments = parser.parse_args() - tflm_path = arguments.tflm_path - toolchain = arguments.toolchain - cvariant = arguments.cvariant - inventory_file = arguments.inventory - # get the availabe test devices from the template folder - test_devices = get_test_devices(os.path.join( - test_on_arm_base, "templates", cvariant, toolchain)) - # create a logfile for collecting high-level results in a csv file - log_file = open(os.path.join(test_on_arm_base, - "test_on_arm_results_") + datetime_string + ".csv", "w") - log_file.write("%s %s %s" % (datetime_string, cvariant, toolchain)) - # without device name, create the top column with file names in the csv logfile - result = run_test_on_arm_path(0, 0, 0, tflm_path, log_file, 0) - - - with open( os.path.abspath(inventory_file), "r") as ymlfile: - inventory = yaml.safe_load(ymlfile) - - # Open the junit format test report file - test_folder = os.path.basename(os.path.normpath(tflm_path)) - test_fn_name = os.path.basename(inventory_file) - test_report_fn = test_fn_name + ".junit" - junit_file = open(os.path.join(test_on_arm_base, test_report_fn), "w") - print(">>>TEST Writing report to ", junit_file) - junit_cases = [] - - if inventory_file: - # threre are some files to test - device_counter = 0 - for test_device in test_devices: - # for test purpose do not all devices - # if test_device != "ARMCM3": - # continue - # test each *_test.cc for this device - device_counter = device_counter + 1 - print(">>>TEST Testing on device:", test_device) - work_path_name = os.path.join( - test_on_arm_base, "work", cvariant, toolchain, test_device) - if os.path.exists(work_path_name): - # clean old work folder - shutil.rmtree(work_path_name) - # create work folder - os.makedirs(work_path_name) - log_file.write("\n%s" % test_device) - for key, value in inventory.items(): - print(">>>TEST Test Suite: ", value['readable']) - #for test in value['tests']: - # print(test) - # for source in test['sources']: - # print(source) - result = run_test_on_arm_yml(cvariant, toolchain, test_device, tflm_path, value['tests'] , log_file, junit_cases) - print("total:", result[0], "success:", - result[1], "failure:", result[2]) - if result[2]: - # something went wrong - test_error = 1 - else: - print("Error: no files to test in \"", - tflm_path, "\", use --tflm_path option!") - test_error = 1 - properties = {"cvariant": cvariant, "toolchain": toolchain} - junit_report = TestSuite( - "Tensorflow Tests", junit_cases, package=test_folder, properties=properties) - TestSuite.to_file(junit_file, [junit_report], prettyprint=False) - junit_file.close() - - log_file.write("\n") - log_file.close() - - #sys.exit( test_error ) - - -if __name__ == '__main__': - main() diff --git a/tensorflow-test/testrunner_vht.py b/tensorflow-test/testrunner_vht.py deleted file mode 100644 index 5491d51..0000000 --- a/tensorflow-test/testrunner_vht.py +++ /dev/null @@ -1,225 +0,0 @@ -import os -import sys -import subprocess -import datetime -import argparse -import shutil -from time import perf_counter -import yaml -import re -import six - -# get the datetime, when the script got started -datetime_string = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") -# get the script's directory, where template and work folders are located / created -test_on_arm_base = os.path.dirname(os.path.abspath(sys.argv[0])) - -last_stderr = "" -last_stdout = "" - - -def create_run_command(device_name, debug_file_name): - if "ARMCM0" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M0" - elif "ARMCM0P" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M0plus" - elif "ARMCM3" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M3" - elif "ARMCM4" == device_name or "ARMCM4_FP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M4" - elif "ARMCM7" == device_name or "ARMCM7_SP" == device_name or "ARMCM7_DP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M7" - elif "ARMCM23" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M23" - elif "ARMCM33" == device_name or "ARMCM33_DSP_FP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M33" - elif "ARMCM35P" == device_name or "ARMCM35P_DSP_FP" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M35P" - elif "ARMCM55_DSP_FPU_MVE" == device_name: - fvp_executable_name = "FVP_MPS2_Cortex-M55" - elif "SSE-300-MPS3" == device_name: - fvp_executable_name = "FVP_Corstone_SSE-300_Ethos-U55" - else: - fvp_executable_name = 0 - - if fvp_executable_name: - run_command_string = fvp_executable_name + " --config-file " + os.path.join(test_on_arm_base,"templates", (fvp_executable_name + ".config")) + " --cpulimit=10" - else: - run_command_string = 0 - - - return run_command_string - - -def add_case_vht_yml(toolchain, project_file_name): - global last_stderr - global last_stdout - - cbuild_script_name = "cbuild.sh" - build_command = cbuild_script_name + project_file_name - - print (build_command) - - -def sanitize_xml(unsanitized): - """Uses a whitelist to avoid generating bad XML.""" - return re.sub(r'[^a-zA-Z0-9+_\-/\\.]', '', six.ensure_str(unsanitized)) - - -def make_component_file_list(base_path ,srcs_list): - replace_srcs = '' - srcs_list = set(srcs_list) - for src in srcs_list: - if not src: - continue - ext = os.path.splitext(src)[1] - if ext == '.h': - category = "header" - elif ext == '.c': - category = "sourceC" - elif ext == '.cc' or ext == '.cpp': - category = "sourceCpp" - else: - continue - clean_src = sanitize_xml(os.path.join(base_path,src)) - replace_srcs += ' \n' - return replace_srcs - - -def create_cproj(cvariant, toolchain, device_name, source_list, test_name, tflm_path): - test_directory_name = os.path.join( - test_on_arm_base, "vht", cvariant, toolchain, device_name) - template_directory_name = os.path.join( - test_on_arm_base, "templates", cvariant, toolchain, device_name) - - template_file_name = os.path.join( - template_directory_name, device_name) + ".cprj" - template_file = open(template_file_name, "rt") - if template_file: - test_executable_name = os.path.basename(test_name).rstrip(".cc") - cproj_file_name = os.path.join( - test_directory_name, test_executable_name) + ".cprj" - cproj_file = open(cproj_file_name, "wt") - if cproj_file: - for input_line in template_file: - if 0 < input_line.find("_executable_to_test"): - output_line = input_line.replace( - '_executable_to_test', test_executable_name) - elif 0 < input_line.find("_file_block_xml_"): - replacement_str = make_component_file_list(tflm_path, source_list) - output_line = input_line.replace( - '_file_block_xml_', replacement_str) - else: - output_line = input_line - cproj_file.write(output_line) - cproj_file.close() - try: - shutil.copytree(os.path.join(template_directory_name, "RTE"), os.path.join( - test_directory_name, "RTE")) - except: - e = sys.exc_info()[0] - #print(">>>TEST Skipping copy of RTE folder. Reason: ", e) - else: - print("could not create cprj file") - cproj_file_name = 0 - template_file.close() - else: - print("template file does not exist") - cproj_file_name = 0 - - return cproj_file_name - - - -def get_test_devices(template_folder_name): - return [d for d in os.listdir(template_folder_name) if os.path.isdir(os.path.join(template_folder_name, d))] - - -def main(): - test_error = 0 - # create the argument parser - parser = argparse.ArgumentParser( - description="Run tensorflow-lite-micro tests on Arm VFPs.") - # add the --tflm_path option - parser.add_argument("--tflm_path", type=str, default=os.path.curdir, - help="path, basepath for sources from inventory") - parser.add_argument("--toolchain", type=str, default="ARMCLANG", - help="toolchain to build the tests with (ARMCLANG, GCC)") - parser.add_argument("--cvariant", type=str, default="CMSIS-NN", - help="variant of tensorflow lite micro to use (Reference, CMSIS-NN, Ethos-U)") - parser.add_argument("--inventory", type=str, default="", - help="yml file with a list of tests and sources for complex tests") - - # parse the arguments - arguments = parser.parse_args() - tflm_path = arguments.tflm_path - toolchain = arguments.toolchain - cvariant = arguments.cvariant - inventory_file = arguments.inventory - # get the availabe test devices from the template folder - test_devices = get_test_devices(os.path.join(test_on_arm_base, "templates", cvariant, toolchain)) - print (test_on_arm_base) - # create a logfile for collecting high-level results in a csv file - #log_file = open(os.path.join(test_on_arm_base, "test_on_vht_setup_log") + datetime_string + ".csv", "w") - #log_file.write("%s %s %s" % (datetime_string, cvariant, toolchain)) - # without device name, create the top column with file names in the csv logfile - # print ("logfile and testfolder ", tflm_path, " ",log_file) - #result = add_case(0, 0, 0, tflm_path, log_file, 0) - - with open( os.path.abspath(inventory_file), "r") as ymlfile: - inventory = yaml.safe_load(ymlfile) - - vht_yml_data = dict( - suite = dict( - name = "tensorflow-lite-micro-tests", - model = "VHT-Corstone-300", - configuration = "", - working_dir = "/home/ubuntu/vhtwork", - pre="", - post="", - - builds = [], - tests = [] - ) - ) - - - with open('data.yml', 'w') as outfile: - yaml.dump(vht_yml_data, outfile, default_flow_style=False) - - - # Open the vht.yml - #junit_file = open(os.path.join(test_on_arm_base, test_report_fn), "w") - #print(">>>TEST Writing report to ", junit_file) - junit_cases = [] - - if inventory_file: - # threre are some files to test - device_counter = 0 - for test_device in test_devices: - print(">>>TEST Testing on device:", test_device) - work_path_name = os.path.join( - test_on_arm_base, "vht", cvariant, toolchain, test_device) - if os.path.exists(work_path_name): - # clean old work folder - shutil.rmtree(work_path_name) - # create work folder - os.makedirs(work_path_name) - for key, value in inventory.items(): - print(">>>TEST Test Suite: ", value['readable']) - for test in value['tests']: - testname = [key for key in test.keys()][0] - cproj_file_name = create_cproj(cvariant, toolchain, test_device, test['sources'], testname, tflm_path) - print(cproj_file_name) - else: - print("Error: no files to test in \"", - tflm_path, "\", use --tflm_path option!") - test_error = 1 - properties = {"cvariant": cvariant, "toolchain": toolchain} - - #sys.exit( test_error ) - - -if __name__ == '__main__': - main()