Add Mbed CI testing support

This is the first step towards setting up nightly builds and automatic library builds for Mbed projects.
Because of an issue with Arm's Mbed build system, I had to rename string.h to string_type.h:
https://github.com/ARMmbed/mbed-cli/issues/917
This could potentially break clients that look for the particular header, but I don't believe we expect this to be part of the public API, and my internal searches haven't found projects that do this.

PiperOrigin-RevId: 267443927
This commit is contained in:
Pete Warden 2019-09-05 13:45:48 -07:00 committed by TensorFlower Gardener
parent 7915fb6697
commit 81ca111fcf
31 changed files with 391 additions and 47 deletions

View File

@ -141,7 +141,7 @@ exports_files(["builtin_ops.h"])
cc_library(
name = "string",
hdrs = [
"string.h",
"string_type.h",
],
copts = TFLITE_DEFAULT_COPTS,
)

View File

@ -24,7 +24,7 @@ limitations under the License.
#include "tensorflow/lite/c/c_api_internal.h"
#include "tensorflow/lite/core/api/error_reporter.h"
#include "tensorflow/lite/simple_memory_arena.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {

View File

@ -20,7 +20,7 @@ limitations under the License.
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "tensorflow/lite/c/builtin_op_data.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace {

View File

@ -19,7 +19,7 @@ limitations under the License.
#include "tensorflow/core/framework/log_memory.h"
#include "tensorflow/core/framework/typed_allocator.h"
#include "tensorflow/lite/delegates/flex/util.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
#include "tensorflow/lite/string_util.h"
namespace tflite {

View File

@ -28,7 +28,7 @@ limitations under the License.
#include "tensorflow/lite/delegates/flex/delegate_data.h"
#include "tensorflow/lite/delegates/flex/util.h"
#include "tensorflow/lite/kernels/kernel_util.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
// Note: this is part of TF Lite's Flex delegation code which is to be
// completed soon.

View File

@ -17,7 +17,7 @@ limitations under the License.
#include "absl/memory/memory.h"
#include "flatbuffers/flexbuffers.h" // TF:flatbuffers
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace flex {

View File

@ -18,7 +18,7 @@ limitations under the License.
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
#include "tensorflow/lite/testing/util.h"
namespace tflite {

View File

@ -17,7 +17,7 @@ limitations under the License.
#define TENSORFLOW_LITE_EXAMPLES_LABEL_IMAGE_LABEL_IMAGE_H_
#include "tensorflow/lite/model.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace label_image {

View File

@ -0,0 +1,19 @@
#!/usr/bin/env bash
# Copyright 2019 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.
# ==============================================================================
#
# Installs the latest Mbed command-line toolchain.
pip install mbed-cli

View File

@ -16,11 +16,6 @@
#
# Creates the project file distributions for the TensorFlow Lite Micro test and
# example targets aimed at embedded platforms.
#
# Usage: ci_build_micro_projects.sh <TARGET OS> <TAGS>
#
# For example:
# ci_build_micro_projects.sh mbed "CMSIS disco_f746ng"
set -e

View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Copyright 2019 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.
# ==============================================================================
#
# Creates the project file distributions for the TensorFlow Lite Micro test and
# example targets aimed at embedded platforms.
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR=${SCRIPT_DIR}/../../../../../..
cd ${ROOT_DIR}
pwd
make -f tensorflow/lite/experimental/micro/tools/make/Makefile \
clean clean_downloads
make -f tensorflow/lite/experimental/micro/tools/make/Makefile \
TARGET=mbed \
TAGS="portable_optimized disco_f746ng" \
generate_projects
tensorflow/lite/experimental/micro/tools/ci_build/install_mbed_cli.sh
for f in tensorflow/lite/experimental/micro/tools/make/gen/mbed_*/prj/*/mbed; do
tensorflow/lite/experimental/micro/tools/ci_build/test_mbed_library.sh ${f}
done
# Needed to solve CI build bug triggered by files added to source tree.
make -f tensorflow/lite/experimental/micro/tools/make/Makefile clean_downloads

View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
# Copyright 2019 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.
# ==============================================================================
#
# Tests an individual Arduino library. Because libraries need to be installed
# globally, this can cause problems with previously-installed modules, so we
# recommend that you only run this within a VM.
set -e
cd ${1}
mbed config root .
mbed deploy
python -c 'import fileinput, glob;
for filename in glob.glob("mbed-os/tools/profiles/*.json"):
for line in fileinput.input(filename, inplace=True):
print line.replace("\"-std=gnu++98\"","\"-std=c++11\", \"-fpermissive\"")'
mbed compile -m DISCO_F746NG -t GCC_ARM

View File

@ -137,7 +137,7 @@ tensorflow/lite/kernels/kernel_util.h \
tensorflow/lite/kernels/op_macros.h \
tensorflow/lite/kernels/padding.h \
tensorflow/lite/schema/schema_generated.h \
tensorflow/lite/string.h \
tensorflow/lite/string_type.h \
tensorflow/lite/string_util.h \
tensorflow/lite/version.h
@ -159,8 +159,7 @@ MAKE_PROJECT_FILES := \
MBED_PROJECT_FILES := \
README_MBED.md \
mbed-os.lib \
mbed_app.json \
.vscode/tasks.json
mbed_app.json
KEIL_PROJECT_FILES := \
README_KEIL.md \
@ -182,6 +181,9 @@ $(eval $(call add_third_party_download,$(FLATBUFFERS_URL),$(FLATBUFFERS_MD5),fla
# keep this main makefile focused on the sources and dependencies.
include $(wildcard $(MAKEFILE_DIR)/targets/*_makefile.inc)
# Load dependencies for optimized kernel implementations.
include $(wildcard $(MAKEFILE_DIR)/ext_libs/*.inc)
# Call specialize here so that platform-specific tags can be taken into account.
MICROLITE_CC_SRCS := $(call specialize,$(MICROLITE_CC_SRCS))
@ -204,9 +206,6 @@ CXX := $(CC_PREFIX)${TARGET_TOOLCHAIN_PREFIX}g++
CC := $(CC_PREFIX)${TARGET_TOOLCHAIN_PREFIX}gcc
AR := $(CC_PREFIX)${TARGET_TOOLCHAIN_PREFIX}ar
# Load optimized kernel implementations
include $(wildcard $(MAKEFILE_DIR)/ext_libs/*.inc)
# Load the examples.
include $(wildcard tensorflow/lite/experimental/micro/examples/*/Makefile.inc)

View File

@ -16,11 +16,263 @@ ifneq ($(filter cmsis-nn,$(ALL_TAGS)),)
endif
# Setup CMSIS-NN lib and add required header files to microlite lib INCLUDE
THIRD_PARTY_DOWNLOADS += \
$(eval $(call add_third_party_download,$(CMSIS_URL),$(CMSIS_MD5),cmsis,))
CMSIS_PATH = $(MAKEFILE_DIR)/downloads/cmsis/
THIRD_PARTY_CC_SRCS += $(shell find $(CMSIS_PATH)/CMSIS/NN/Source/ -name *.c)
THIRD_PARTY_CC_HDRS += $(shell find $(CMSIS_PATH)/CMSIS/Core/Include/ -name *.h) \
$(shell find $(CMSIS_PATH)/CMSIS/NN/Include/ -name *.h) \
$(shell find $(CMSIS_PATH)/CMSIS/DSP/Include/ -name *.h)
# List created by running:
# find tensorflow/lite/experimental/micro/tools/make/downloads/cmsis/CMSIS/NN/Source/ -name *.c | sed -E 's#tensorflow/lite/experimental/micro/tools/make/downloads/cmsis(.*)$# ${CMSIS_PATH}\1 \\#g'
THIRD_PARTY_CC_SRCS += \
$(CMSIS_PATH)/CMSIS/NN/Source/BasicMathFunctions/arm_elementwise_mul_s8.c \
$(CMSIS_PATH)/CMSIS/NN/Source/BasicMathFunctions/arm_elementwise_add_s8.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q7_opt.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_s8.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q15_opt.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_mat_q7_vec_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_mat_q7_vec_q15_opt.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_conv_u8_basic_ver1.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_s8.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_1x1_s8_fast.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_fast.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_q7_q15_reordered.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_q7_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_RGB.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_1x1_HWC_q7_fast_nonsquare.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_basic.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_separable_conv_HWC_q7_nonsquare.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q15_fast_nonsquare.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_conv_s8_opt.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_s8_s16.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q15_basic.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q15_fast.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_fast_nonsquare.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_s8_s16_reordered.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_separable_conv_HWC_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_conv_s8.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_basic_nonsquare.c \
$(CMSIS_PATH)/CMSIS/NN/Source/PoolingFunctions/arm_pool_q7_HWC.c \
$(CMSIS_PATH)/CMSIS/NN/Source/PoolingFunctions/arm_avgpool_s8.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ActivationFunctions/arm_relu_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ActivationFunctions/arm_relu_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ActivationFunctions/arm_nn_activations_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/ActivationFunctions/arm_nn_activations_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_nn_add_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_reordered_no_shift.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_nntables.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_nn_accumulate_q7_to_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_nn_mult_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_nn_mult_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_reordered_with_offset.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_with_offset.c \
$(CMSIS_PATH)/CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_no_shift.c \
$(CMSIS_PATH)/CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_q15.c \
$(CMSIS_PATH)/CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_q7.c \
$(CMSIS_PATH)/CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_with_batch_q7.c
# List created by running:
# find tensorflow/lite/experimental/micro/tools/make/downloads/cmsis/CMSIS/{Core,NN,DSP} -name *.h | sed -E 's#tensorflow/lite/experimental/micro/tools/make/downloads/cmsis(.*)$# ${CMSIS_PATH}\1 \\#g'
THIRD_PARTY_CC_HDRS += \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm3.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_armv81mml.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_compiler.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm4.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm1.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_iccarm.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_version.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_armv8mml.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_sc300.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_armclang_ltm.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_armcc.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm0plus.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm33.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_armclang.h \
${CMSIS_PATH}/CMSIS/Core/Include/tz_context.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_armv8mbl.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_sc000.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm23.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm35p.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm7.h \
${CMSIS_PATH}/CMSIS/Core/Include/cmsis_gcc.h \
${CMSIS_PATH}/CMSIS/Core/Include/mpu_armv7.h \
${CMSIS_PATH}/CMSIS/Core/Include/core_cm0.h \
${CMSIS_PATH}/CMSIS/Core/Include/mpu_armv8.h \
${CMSIS_PATH}/CMSIS/NN/Include/arm_nnfunctions.h \
${CMSIS_PATH}/CMSIS/NN/Include/arm_nnsupportfunctions.h \
${CMSIS_PATH}/CMSIS/NN/Include/arm_nn_tables.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/gru/arm_nnexamples_gru_test_data.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/gru/RTE/_ARMCM0/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/gru/RTE/_ARMCM7_SP/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/gru/RTE/_ARMCM4_FP/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/gru/RTE/Compiler/EventRecorderConf.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/gru/RTE/_ARMCM3/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/RTE/_ARMCM0/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/RTE/_ARMCM7_SP/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/RTE/_ARMCM4_FP/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/RTE/Compiler/EventRecorderConf.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/RTE/_ARMCM3/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/arm_nnexamples_cifar10_weights.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/arm_nnexamples_cifar10_inputs.h \
${CMSIS_PATH}/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10/arm_nnexamples_cifar10_parameter.h \
${CMSIS_PATH}/CMSIS/NN/Examples/IAR/iar_nn_examples/NN-example-gru/arm_nnexamples_gru_test_data.h \
${CMSIS_PATH}/CMSIS/NN/Examples/IAR/iar_nn_examples/NN-example-cifar10/arm_nnexamples_cifar10_weights.h \
${CMSIS_PATH}/CMSIS/NN/Examples/IAR/iar_nn_examples/NN-example-cifar10/arm_nnexamples_cifar10_inputs.h \
${CMSIS_PATH}/CMSIS/NN/Examples/IAR/iar_nn_examples/NN-example-cifar10/arm_nnexamples_cifar10_parameter.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/RTE/_ARMCM0/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/RTE/_ARMCM7_SP/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/RTE/_ARMCM4_FP/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/RTE/_ARMCM3/RTE_Components.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/arm_nnexamples_nn_test.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/Ref_Implementations/ref_functions.h \
${CMSIS_PATH}/CMSIS/NN/NN_Lib_Tests/nn_test/Ref_Implementations/fully_connected_testing_weights.h \
${CMSIS_PATH}/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/cmsismodule.h \
${CMSIS_PATH}/CMSIS/DSP/Include/arm_common_tables.h \
${CMSIS_PATH}/CMSIS/DSP/Include/arm_const_structs.h \
${CMSIS_PATH}/CMSIS/DSP/Include/arm_math.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP_A5/RTE/RTE_Components.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP_A5/RTE/Device/ARMCA5/mem_ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP_A5/RTE/Device/ARMCA5/system_ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP_A5/RTE/CMSIS/RTX_Config.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/all_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/templates/template.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/templates/test_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/type_abbrev.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/statistics_tests/statistics_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/statistics_tests/statistics_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/statistics_tests/statistics_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/statistics_tests/statistics_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/filtering_tests/filtering_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/filtering_tests/filtering_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/filtering_tests/filtering_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/filtering_tests/filtering_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests/fast_math_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests/fast_math_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests/fast_math_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/transform_tests/transform_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/transform_tests/transform_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/transform_tests/transform_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/transform_tests/transform_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/intrinsics_tests/intrinsics_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/intrinsics_tests/intrinsics_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/intrinsics_tests/intrinsics_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/basic_math_tests/basic_math_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/basic_math_tests/basic_math_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/basic_math_tests/basic_math_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/basic_math_tests/basic_math_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/complex_math_tests/complex_math_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/complex_math_tests/complex_math_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/complex_math_tests/complex_math_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/complex_math_tests/complex_math_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/controller_tests/controller_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/controller_tests/controller_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/controller_tests/controller_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/controller_tests/controller_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/support_tests/support_test_data.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/support_tests/support_tests.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/support_tests/support_templates.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/support_tests/support_test_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_fw.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/util/util.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_define.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_define.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_ret.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_define.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_cycle.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_util.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_systick.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/arr_desc/arr_desc.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_pf.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/opt_arg/pp_narg.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/opt_arg/splice.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/opt_arg/opt_arg.h \
${CMSIS_PATH}/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/inc/ref.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCA5/Include/ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCA5/LinkScripts/AC6/mem_ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCA5/LinkScripts/AC6/system_ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCA5/LinkScripts/GCC/mem_ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCA5/LinkScripts/GCC/system_ARMCA5.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM4/Include/ARMCM4_FP.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM4/Include/system_ARMCM4.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM4/Include/ARMCM4.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM4/LinkScripts/AC6/mem_ARMCM4.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM33/Include/ARMCM33_DSP_FP.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM33/Include/ARMCM33_TZ.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM33/Include/system_ARMCM33.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM33/Include/ARMCM33_DSP_FP_TZ.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM33/Include/ARMCM33.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM33/LinkScripts/AC6/mem_ARMCM33.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM7/Include/ARMCM7.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM7/Include/system_ARMCM7.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM7/Include/ARMCM7_DP.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM7/Include/ARMCM7_SP.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM7/LinkScripts/AC6/mem_ARMCM7.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM7/LinkScripts/GCC/mem_ARMCM7.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM0/Include/ARMCM0.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM0/Include/system_ARMCM0.h \
${CMSIS_PATH}/CMSIS/DSP/Platforms/FVP/ARMCM0/LinkScripts/AC6/mem_ARMCM0.h \
${CMSIS_PATH}/CMSIS/DSP/Examples/ARM/arm_matrix_example/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/Examples/ARM/arm_fir_example/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/Examples/ARM/arm_convolution_example/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/Examples/ARM/arm_graphic_equalizer_example/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/Examples/ARM/arm_linear_interp_example/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/Examples/ARM/arm_signal_converge_example/math_helper.h \
${CMSIS_PATH}/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/RTE_Components.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/FIRF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/PoolingBench.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ15.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ15.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ7.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ7.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ31.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ31.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/MISCF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/FullyConnectedBench.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ31.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ15.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ15.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/DECIMF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF64.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ15.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ31.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ31.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/StatsTestsF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/Softmax.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/Pooling.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/NNSupport.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/SVMF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/FullyConnected.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/DistanceTestsF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/DistanceTestsU32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/SupportTestsF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/BayesF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/Include/Tests/BasicTestsF32.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Test.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Pattern.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Calibrate.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/ArrayMemory.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/IORunner.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Error.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Generators.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/Timing.h \
${CMSIS_PATH}/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h \
${CMSIS_PATH}/CMSIS/DSP/ComputeLibrary/Include/NEMath.h
INCLUDES += -I$(CMSIS_PATH)/CMSIS/Core/Include \
-I$(CMSIS_PATH)/CMSIS/NN/Include \
-I$(CMSIS_PATH)/CMSIS/DSP/Include

View File

@ -1 +1 @@
https://github.com/ARMmbed/mbed-os/#6a0a86538c0b9b2bfcc4583b1e2b7fea8f4e71e9
https://github.com/ARMmbed/mbed-os/#8ef742a49c1682f9ef3ba50148b871e38c3866cc

View File

@ -20,8 +20,8 @@ LEON_BCC2_MD5 := "cdf78082be4882da2a92c9baa82fe765"
TSIM_URL := "https://www.gaisler.com/anonftp/tsim/tsim-eval-2.0.63.tar.gz"
TSIM_MD5 := "afa0095d3ed989a949e1467f94e41d2f"
CMSIS_URL := "https://github.com/ARM-software/CMSIS_5/archive/5.4.0.zip"
CMSIS_MD5 := "f451f1dccc844e894939055db278a40e"
CMSIS_URL := "https://github.com/ARM-software/CMSIS_5/archive/04c0b9a8646ab267d0a5d5abe413a916aa7464f6.zip"
CMSIS_MD5 := "d9f473201070758be8999cd9f1df8660"
AM_SDK_URL := "http://s3.asia.ambiqmicro.com/downloads/AmbiqSuite-Rel2.0.0.zip"
AM_SDK_MD5 := "70332bc6968602bd85bee600ca81d06f"

View File

@ -29,7 +29,7 @@ limitations under the License.
#include <gtest/gtest.h>
#include "tensorflow/lite/kernels/internal/optimized/optimized_ops.h"
#include "tensorflow/lite/kernels/internal/reference/reference_ops.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
@ -142,8 +142,9 @@ void RunSingleTest(const std::vector<int32>& test_input,
}
{
std::ostringstream label;
label << check_label << " / reference vs float-gen / InputIntegerBits="
<< InputIntegerBits << ", OutputIntegerBits=" << OutputIntegerBits;
label << check_label
<< " / reference vs float-gen / InputIntegerBits=" << InputIntegerBits
<< ", OutputIntegerBits=" << OutputIntegerBits;
CheckOutputData(quantized_output, float_gen_output, test_input, label.str(),
InputIntegerBits, OutputIntegerBits, tolerance);
}
@ -189,7 +190,7 @@ void RunSingleTest(const std::vector<int32>& test_input, int input_integer_bits,
INPUT_CASE(29);
default:
ASSERT_LE(input_integer_bits, 30)
<< "Input integer bits not handled: " << input_integer_bits;
<< "Input integer bits not handled: " << input_integer_bits;
}
#undef INPUT_CASE
}
@ -234,7 +235,7 @@ void RunSingleTest(const std::vector<int32>& test_input, int input_integer_bits,
OUTPUT_CASE(29);
default:
ASSERT_LE(input_integer_bits, 30)
<< "Input integer bits not handled: " << input_integer_bits;
<< "Input integer bits not handled: " << input_integer_bits;
}
#undef OUTPUT_CASE
}

View File

@ -29,7 +29,7 @@ limitations under the License.
#include "tensorflow/lite/kernels/internal/reference/integer_ops/log_softmax.h"
#include "tensorflow/lite/kernels/internal/reference/reference_ops.h"
#include "tensorflow/lite/kernels/internal/test_util.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace {

View File

@ -29,7 +29,7 @@ limitations under the License.
#include "tensorflow/lite/kernels/internal/reference/integer_ops/softmax.h"
#include "tensorflow/lite/kernels/internal/reference/reference_ops.h"
#include "tensorflow/lite/kernels/internal/test_util.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace {

View File

@ -13,8 +13,8 @@ See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/
// Abstract string. We don't want even absl at this level.
#ifndef TENSORFLOW_LITE_STRING_H_
#define TENSORFLOW_LITE_STRING_H_
#ifndef TENSORFLOW_LITE_STRING_TYPE_H_
#define TENSORFLOW_LITE_STRING_TYPE_H_
#include <string>
@ -24,4 +24,4 @@ using std::string;
} // namespace tflite
#endif // TENSORFLOW_LITE_STRING_H_
#endif // TENSORFLOW_LITE_STRING_TYPE_H_

View File

@ -43,7 +43,7 @@ limitations under the License.
#include <vector>
#include "tensorflow/lite/c/c_api_internal.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {

View File

@ -19,7 +19,7 @@ limitations under the License.
#include <iostream>
#include <vector>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -19,7 +19,7 @@ limitations under the License.
#include <iomanip>
#include <sstream>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -18,7 +18,7 @@ limitations under the License.
#include <vector>
#include "tensorflow/lite/c/c_api_internal.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -21,7 +21,7 @@ limitations under the License.
#include "tensorflow/lite/c/c_api_internal.h"
#include "tensorflow/lite/interpreter.h"
#include "tensorflow/lite/model.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -23,7 +23,7 @@ limitations under the License.
#include <utility>
#include <vector>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -19,7 +19,8 @@ limitations under the License.
#include <memory>
#include <string>
#include <vector>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -17,7 +17,7 @@ limitations under the License.
#include <vector>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
#include "tensorflow/lite/testing/tflite_driver.h"
namespace tflite {

View File

@ -13,9 +13,11 @@ See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/
#include "tensorflow/lite/testing/tokenize.h"
#include <istream>
#include <string>
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace testing {

View File

@ -18,7 +18,7 @@ limitations under the License.
#include <cstdio>
#include "tensorflow/lite/core/api/error_reporter.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {

View File

@ -16,7 +16,7 @@ limitations under the License.
#define TENSORFLOW_LITE_TOOLS_GEN_OP_REGISTRATION_H_
#include "tensorflow/lite/model.h"
#include "tensorflow/lite/string.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {