From 5adf5a6d0bbfa36d4a757f211ae6b4a5c9e51dac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonny=20Sv=C3=A4rd?= Date: Wed, 9 Feb 2022 16:42:10 +0100 Subject: Break out the Crc class to its own library Change-Id: Iefa21223b9157e25e11f88873541b39292d12872 --- applications/inference_process/CMakeLists.txt | 6 +-- .../inference_process/src/inference_process.cpp | 43 ++-------------------- 2 files changed, 6 insertions(+), 43 deletions(-) (limited to 'applications') diff --git a/applications/inference_process/CMakeLists.txt b/applications/inference_process/CMakeLists.txt index 19777fd..9afe34a 100644 --- a/applications/inference_process/CMakeLists.txt +++ b/applications/inference_process/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2019-2021 Arm Limited. All rights reserved. +# Copyright (c) 2019-2022 Arm Limited. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # @@ -23,7 +23,7 @@ add_library(inference_process STATIC) target_include_directories(inference_process PUBLIC include PRIVATE ${TENSORFLOW_PATH} ${TENSORFLOW_PATH}/tensorflow/lite/micro/tools/make/downloads/flatbuffers/include) -target_link_libraries(inference_process PRIVATE tflu cmsis_core cmsis_device) +target_link_libraries(inference_process PRIVATE tflu cmsis_core cmsis_device ethosu_crc) if (TARGET layer_by_layer_profiler) target_link_libraries(inference_process PRIVATE layer_by_layer_profiler) endif() @@ -34,4 +34,4 @@ if (TARGET ethosu_log) target_link_libraries(inference_process PRIVATE ethosu_log) endif() -target_sources(inference_process PRIVATE src/inference_process.cpp) \ No newline at end of file +target_sources(inference_process PRIVATE src/inference_process.cpp) diff --git a/applications/inference_process/src/inference_process.cpp b/applications/inference_process/src/inference_process.cpp index 4ab0353..c877d45 100644 --- a/applications/inference_process/src/inference_process.cpp +++ b/applications/inference_process/src/inference_process.cpp @@ -27,6 +27,9 @@ #ifdef LAYER_BY_LAYER_PROFILER #include "layer_by_layer_profiler.hpp" #endif + +#include "crc.hpp" + #include "ethosu_log.h" #include "inference_process.hpp" @@ -37,46 +40,6 @@ using namespace std; -namespace { - -class Crc { -public: - constexpr Crc() : table() { - uint32_t poly = 0xedb88320; - - for (uint32_t i = 0; i < 256; i++) { - uint32_t crc = i; - - for (int j = 0; j < 8; j++) { - if (crc & 1) { - crc = poly ^ (crc >> 1); - } else { - crc >>= 1; - } - } - - table[i] = crc; - } - } - - uint32_t crc32(const void *data, const size_t length, uint32_t init = 0) const { - uint32_t crc = init ^ 0xffffffff; - - const uint8_t *v = static_cast(data); - - for (size_t i = 0; i < length; i++) { - crc = table[(crc ^ v[i]) & 0xff] ^ (crc >> 8); - } - - return crc ^ 0xffffffff; - } - -private: - uint32_t table[256]; -}; - -} // namespace - namespace InferenceProcess { DataPtr::DataPtr(void *_data, size_t _size) : data(_data), size(_size) {} -- cgit v1.2.1