在STM32F7 Discovery Kit上執行TensorFlow Lite for Microcontrollers的Hello World example

接續前一篇文章,這次在STM32F7 Discovery Kit實作“Hello World”範例。此外,前一篇的內容有發佈到Twitter上,也得到原作者的回應:

首先看看官方的展示:

本次實作開發環境為macOS Mojave 10.14.5(with Xcode 10.2.1),且已安裝Anaconda for macOS Python 3.7 version;並已建立好sparkfun-tensorflow虛擬環境及下載TensorFlow master分支程式碼。首先,進入 sparkfun-tensorflow 虛擬環境:

cd tensorflow

conda activate sparkfun-tensorflow

使用以下命令產生給STM32F7 Discovery Kit的mbed專案:

make -f tensorflow/lite/experimental/micro/tools/make/Makefile TARGET=mbed TAGS="CMSIS disco_f746ng" generate_hello_world_mbed_project

離開 sparkfun-tensorflow 虛擬環境:

conda deactivate

接下來建立mbed開發的虛擬環境,完成後並進入之:

conda create -n mbed python=2.7

conda activate mbed

進行mbed環境安裝與設定:

# 安裝Mercurial SCM

conda install -c anaconda mercurial

# 下載GCC for ARM

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

# 解壓縮GCC for ARM

tar jxvf ~/Downloads/gcc-arm-none-eabi-8-2018-q4-major-mac.tar.bz2 -C ~/

# 安裝與設定Mbed CLI

pip install mbed-cli

mbed --version

mbed config -G GCC_ARM_PATH /Users/tungyilin/gcc-arm-none-eabi-8-2018-q4-major/bin

mbed config --list

切換到專案目錄:

cd tensorflow/lite/experimental/micro/tools/make/gen/mbed_cortex-m4/prj/hello_world/mbed

並對mbed專案進行設定:

mbed config root .

mbed deploy

# 對應C++11 (TensorFlow Lite for Microcontrollers需用到C++11)

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

編譯無誤後,執行以下命令更新軔體,就可以看到執行結果:

cp ./BUILD/DISCO_F746NG/GCC_ARM/mbed.bin /Volumes/DIS_F746NG/

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *