山姆的編程實作分享。。。

Sam Blog, Sam Sharing, Sam Studio

2020年10月24日

[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

成功 :-)


熱門文章