[MicroPython 教學] Build STM32 MicroPython Firmware
繼上篇 ([MicroPython] Build ESP32 MicroPython code) 後,接著就是嘗試 Build
STM32F767ZI MPY image。
為何會選擇 STM32F767ZI 這塊板子,是因為他有 Hardware JPEG Decode 的能力,
未來在做影像辨識時,會有較高的處理速度。
以下是我 Build STM32F767ZI MicroPython Image 的過程以及步驟 :
Step 1: 取得 MPY v1.13 stable version 的程式碼
$ git clone -b v1.13 --recursive https://github.com/micropython/micropython
Step 2: 安裝 ARM Compiler
Ubuntu 16.04 在安裝過程就已經自帶 gcc-arm-none-eabi ARM compiler 了,
只不過不是最新版本,我們可以透過以下 command 再次刷新。
$ sudo apt-get install gcc-arm-none-eabi
Step 3: Build MicroPython Cross-Compiler
$ cd mpy-cross
$ make
Step 4: 接著這一步就是 Build MicroPython STM32F767ZI 的Image 了
make BOARD=NUCLEO_F767ZI
上面指令有指定板子的型號,記得改成你手邊板子的型號喔!
Step 5: Flash MPY Image
燒錄 Image 有 DFU,STLink 以及 OpenOCD 3種方式,DFU 以及 STLink 我都遇到問題,例如 STLink 就遇到以下錯誤
st-flash: symbol lookup error: /usr/lib/libstlink.so.1: undefined symbol: libusb_set_option
最終是安裝 OpenOCD package 才成功燒錄 MPY Image
以下是安裝 OpenOCD 的指令
$ sudo apt-get install openocd
採用 OpenOCD 的方式也非一試就成功,還需要改 Makefile,因為 default 的
OpenOCD config file 是 STM32F4xx 而非 STM32F7xx,所以要照如下更改,
才能成功燒錄。
以下是採用 OpenOCD 燒錄 Image 的指令
$ make BOARD=NUCLEO_F767ZI deploy-openocd
Step 6: Access the board
成功 :-)