Add logging and timer implementations for hexagon. Update xtensa comments.
PiperOrigin-RevId: 337377957 Change-Id: I3c842fa1945c174e435418146b01a66b7805fd40
This commit is contained in:
parent
e70e880bd5
commit
b43c3c3a68
@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
|
/* Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -36,6 +36,15 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "tensorflow/lite/micro/debug_log.h"
|
#include "tensorflow/lite/micro/debug_log.h"
|
||||||
|
|
||||||
|
#ifndef TF_LITE_STRIP_ERROR_STRINGS
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
#endif
|
||||||
|
|
||||||
extern "C" void DebugLog(const char* s) { fprintf(stderr, "%s", s); }
|
extern "C" void DebugLog(const char* s) {
|
||||||
|
#ifndef TF_LITE_STRIP_ERROR_STRINGS
|
||||||
|
// Reusing TF_LITE_STRIP_ERROR_STRINGS to disable DebugLog completely to get
|
||||||
|
// maximum reduction in binary size. This is because we have DebugLog calls
|
||||||
|
// via TF_LITE_CHECK that are not stubbed out by TF_LITE_REPORT_ERROR.
|
||||||
|
fprintf(stderr, "%s", s);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
28
tensorflow/lite/micro/hexagon/micro_time.cc
Normal file
28
tensorflow/lite/micro/hexagon/micro_time.cc
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/* Copyright 2020 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.
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
// Hexagon timer implementation.
|
||||||
|
// To include this with make, add TARGET=hexagon.
|
||||||
|
#include "tensorflow/lite/micro/micro_time.h"
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
namespace tflite {
|
||||||
|
|
||||||
|
int32_t ticks_per_second() { return CLOCKS_PER_SEC; }
|
||||||
|
|
||||||
|
int32_t GetCurrentTimeTicks() { return clock(); }
|
||||||
|
|
||||||
|
} // namespace tflite
|
@ -1,50 +0,0 @@
|
|||||||
/* Copyright 2018 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.
|
|
||||||
==============================================================================*/
|
|
||||||
|
|
||||||
// Reference implementation of the DebugLog() function that's required for a
|
|
||||||
// platform to support the TensorFlow Lite for Microcontrollers library. This is
|
|
||||||
// the only function that's absolutely required to be available on a target
|
|
||||||
// device, since it's used for communicating test results back to the host so
|
|
||||||
// that we can verify the implementation is working correctly.
|
|
||||||
// It's designed to be as easy as possible to supply an implementation though.
|
|
||||||
// On platforms that have a POSIX stack or C library, it can be written as a
|
|
||||||
// single call to `fprintf(stderr, "%s", s)` to output a string to the error
|
|
||||||
// stream of the console, but if there's no OS or C library available, there's
|
|
||||||
// almost always an equivalent way to write out a string to some serial
|
|
||||||
// interface that can be used instead. For example on Arm M-series MCUs, calling
|
|
||||||
// the `bkpt #0xAB` assembler instruction will output the string in r1 to
|
|
||||||
// whatever debug serial connection is available. If you're running mbed, you
|
|
||||||
// can do the same by creating `Serial pc(USBTX, USBRX)` and then calling
|
|
||||||
// `pc.printf("%s", s)`.
|
|
||||||
// To add an equivalent function for your own platform, create your own
|
|
||||||
// implementation file, and place it in a subfolder with named after the OS
|
|
||||||
// you're targeting. For example, see the Cortex M bare metal version in
|
|
||||||
// tensorflow/lite/micro/bluepill/debug_log.cc or the mbed one on
|
|
||||||
// tensorflow/lite/micro/mbed/debug_log.cc.
|
|
||||||
|
|
||||||
#include "tensorflow/lite/micro/debug_log.h"
|
|
||||||
|
|
||||||
#ifndef TF_LITE_STRIP_ERROR_STRINGS
|
|
||||||
#include <cstdio>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern "C" void DebugLog(const char* s) {
|
|
||||||
#ifndef TF_LITE_STRIP_ERROR_STRINGS
|
|
||||||
// Reusing TF_LITE_STRIP_ERROR_STRINGS to disable DebugLog completely to get
|
|
||||||
// maximum reduction in binary size. This is because we have DebugLog calls
|
|
||||||
// via TF_LITE_CHECK that are not stubbed out by TF_LITE_REPORT_ERROR.
|
|
||||||
fprintf(stderr, "%s", s);
|
|
||||||
#endif
|
|
||||||
}
|
|
@ -13,8 +13,8 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
// Xtensa implementation of micro_timer.
|
// Xtensa timer implementation.
|
||||||
// To include this with make, add TAGS=xtensa-xpg.
|
// To include this with make, add TARGET=xtensa_hifimini.
|
||||||
#include "tensorflow/lite/micro/micro_time.h"
|
#include "tensorflow/lite/micro/micro_time.h"
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user