TaterLi 个人博客

TinyML的Hello World烧录到STM32F746NG

注意:如果没有一个硬件板子,谈何学习TinyML,当然,实验中不烧录到F746NG也是可以跑的,图形驱动不兼容而已.

默认的工程有点问题,需要稍微修改,文件地址:tensorflow/lite/micro/examples/hello_world/disco_f746ng/Makefile.inc

由于我没有F746NG DISCO实测,所以这个就算注释不要也关系不大,他只关乎于显示.

# Settings for the Discovery STM32F746NG board.
ifeq ($(TARGET),$(filter $(TARGET),disco_f746ng))
  hello_world_MBED_PROJECT_FILES += \
    BSP_DISCO_F746NG.lib \
    LCD_DISCO_F746NG.lib
endif

编译项目:

make -f tensorflow/lite/micro/tools/make/Makefile TARGET=mbed OPTIMIZED_KERNEL_DIR=cmsis_nn generate_hello_world_mbed_project

接下来记得安装Mbed CLI和对应的交叉编译工具(根据TFLite,对版本有要求.),然后其他安装官方指导编译就能过,编译时候很多WARNING是有用的.

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/micro/examples/hello_world

其中一个比较迷人错误是__SXTB16_RORn定义找不到,这个定义明明在头文件有,后来方法是用/root/tensorflow/tensorflow/lite/micro/tools/make/downloads/cmsis/CMSIS/Core/Include/cmsis_gcc.h的文件覆盖/root/tensorflow/tensorflow/lite/micro/tools/make/gen/mbed_cortex-m4_default/prj/hello_world/mbed/mbed-os/cmsis/TARGET_CORTEX_M/cmsis_gcc.h的文件.

编译成功如图:

再把bin粘贴到识别出来的Mbed U盘里面就可以跑了,通过串口工具能看到输出.

有屏幕的话应该已经看到内容了.

退出移动版