引言
本文主要面向 2023年全國大學生物聯(lián)網(wǎng)設(shè)計競賽安謀科技命題 ,使用星辰處理器的靈動MM32F5微控制器開發(fā)板,基于MicroPython開發(fā)應(yīng)用系統(tǒng)。這里講述的操作方法,也適用于靈動早年發(fā)布的使用Arm Cortex-M3微控制器的MM32F3微控制器開發(fā)板,以及各種使用MM32F3和MM32F5微控制器設(shè)計的開發(fā)板。
硬件
除了具有足夠Flash和SRAM的微控制器之外,運行MicroPython的電路板上最好有一個存儲介質(zhì),用于加載文件系統(tǒng),進一步通過文件系統(tǒng)保存Python腳本,能夠讓電路板上電之后自動運行。筆者最早使用SD卡作為文件系統(tǒng)的載體,但后來在適配MM32F5微控制器的MicroPython項目中啟用了基于spiflash的LFS文件系統(tǒng)后,就轉(zhuǎn)而使用spiflash作為文件系統(tǒng)的載體。
相對于使用SD卡,使用spiflash的總體成本更加便宜,而且節(jié)約電路板的面積,并且不用擔心不小心丟掉SD卡這個小零件。當然,能夠擺脫使用SD卡轉(zhuǎn)而使用spiflash存儲芯片的一個更重要的原因,是筆者調(diào)通了Thonny IDE同MicroPython聯(lián)動,可以通過REPL向MicroPython的文件系統(tǒng)里存Python文件,否則不得不每次把SD卡拔下來通過SD卡讀卡器接到PC上,存好Python腳本文件后再插回電路板。

figure-smartcar-mm32f5-board-protrait
圖x ICAR-F5270開發(fā)板即周邊配套電路板
軟件
搭建MicroPython編譯環(huán)境
基于Windows操作系統(tǒng)搭建MicroPython開發(fā)環(huán)境:
- 安裝
Git,從線上的代碼倉庫中獲取MicroPython項目的源碼。 - 安裝
msys2,GNU工具集的運行環(huán)境,在Windows操作系統(tǒng)上模擬MicroPython原生的Linux編譯環(huán)境。 - 在
msys2中安裝make,使用Makefile管理MicroPython工程。 - 在
msys2中安裝Python,運行編譯MicroPython過程中自動提取QSTR的腳本。 - 在
msys2中安裝gcc,在MicroPython項目中編譯生成運行在PC平臺的mpy-cross工具,進而可將部分Python腳本文件編譯成微控制器平臺上運行MicroPython可以執(zhí)行的字節(jié)碼,最終可打包進入將要下載到微控制器中的MicroPython固件中去。 - 安裝
arm-eabi-none-gcc并導入msys2,用于編譯MicroPython項目中的C源碼并生成MicroPython固件。 - 安裝
Keil MDK和MM32F5微控制器的Keil設(shè)備支持包,用于將編譯創(chuàng)建的MicroPython固件下載到MM32F5微控制器中。 - 安裝
Tera Term,一個常用的開源串口終端軟件,用于同運行MicroPython固件的微控制器開發(fā)板進行交互,輸入Python腳本并查看運行結(jié)果。
獲取MicroPython源碼
其中,在micropython-su/micropython-1.16/ports/mm32f5-lfs-spiflash目錄下,包含了基于MM32F5微控制器的使用spiflash掛載LFS文件系統(tǒng)的適配工程。如圖x所示。

figure-mm32f5-lfs-spiflash-project-in-git-repo
圖x MicroPython項目中的mm32f5-lfs-spiflash工程
編譯MicroPython源碼生成固件
下載MicroPython的代碼倉庫后,在msys2環(huán)境中,切換當前目錄到micropython-su/micropython-1.16/mpy-cross目錄下,執(zhí)行make命令,編譯得到PC主機平臺上運行的MicroPython交叉編譯器,mpy-cross。
Andrew@Andrew-PC MSYS /d/gitrepos/micropython-su/micropython-1.16/mpy-cross
# make
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
GEN build/genhdr/mpversion.h
CC main.c
LINK mpy-cross
text data bss dec hex filename
306417 3784 416 310617 4bd59 mpy-cross
然后再切換到micropython-su/micropython-1.16/ports/mm32f5-lfs-spiflash目錄下,運行make BOARD=icar-f5270命令,編譯創(chuàng)建基于MM32F5微控制器的ICAR-F5270開發(fā)板適用的MicroPython固件。
Andrew@Andrew-PC MSYS /d/gitrepos/micropython-su/micropython-1.16/ports/mm32f5-lfs-spiflash
# make BOARD=icar-f5270
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
mkdir -p build-icar-f5270/genhdr
GEN build-icar-f5270/genhdr/mpversion.h
GEN build-icar-f5270/genhdr/moduledefs.h
...
CC ../../lib/libm/wf_lgamma.c
CC ../../lib/libm/wf_tgamma.c
CC ../../lib/libm/ef_sqrt.c
CC ../../drivers/bus/softspi.c
AS ../../lib/utils/gchelper_m3.s
CC ../../lib/mm32mcu/mm32f5270/devices/mm32f5277e/startup_mm32f5277e.S
LINK build-icar-f5270/firmware.elf
text data bss dec hex filename
169492 976 10424 180892 2c29c build-icar-f5270/firmware.elf
下載MicroPython固件到電路板
比較穩(wěn)妥的做法,借用Keil MDK,通過DAP-Link向MM32F5微控制器下載編譯好的firmware.hex文件。
在Keil工程的配置選項對話框的Debug頁面中,指定使用CMSIS-DAP調(diào)試器。在Output頁面中,使用Select Folder for Objects ...指定將要下載文件的路徑位于新創(chuàng)建的build-icar-f5270目錄下。如圖x所示。

figure-keil-daplink-download-1
圖x 借用Keil下載MicroPython固件到芯片
運行第一個樣例工程
啟動串口終端軟件,識別到DAP-Link虛擬出來的UART串口,配置串口通信波特率115200,無校驗、8位數(shù)據(jù)、1位停止位,連上UART。
復位MM32F5電路板,運行MicroPython固件的程序。此時,用戶可以在串口終端軟件的界面中看到MicroPython啟動運行的提示信息,然后可以試著在串口終端軟件的界面中試著輸入一些Python語句,運行程序。如圖x所示。

figure-micropython-repl-welcome
圖x 試用MicroPython的REPL
-
微控制器
+關(guān)注
關(guān)注
48文章
8222瀏覽量
161095 -
Cortex-M3
+關(guān)注
關(guān)注
9文章
276瀏覽量
60974 -
GNU
+關(guān)注
關(guān)注
0文章
143瀏覽量
18202 -
SRAM存儲器
+關(guān)注
關(guān)注
0文章
88瀏覽量
16401 -
Micropython
+關(guān)注
關(guān)注
0文章
69瀏覽量
5654
發(fā)布評論請先 登錄
手工打造基于MM32F5微控制器的MicroPython開發(fā)板
【FireBeetle 2 ESP32-S3開發(fā)板測評】MicroPython開發(fā)體驗
STM32F746Disco開發(fā)板的MicroPython固件
玩轉(zhuǎn)MicroPython開發(fā)板!你和Ta會有什么火花?
MicroPython入門|開發(fā)板種類那么多,哪塊才適合你玩?
Python玩轉(zhuǎn)硬件:TPYBoard-Micropython開發(fā)板大盤點
MicroPython入門:能跑MicroPython開發(fā)板大盤點!
Micropython開發(fā)板的制作資料分享
如何學習MicroPython MicroPython入門知識
MicroPython開發(fā)板的電路原理圖免費下載
MicroPython開發(fā)板原理圖PCB源文件源代碼開源
[長文干貨]MicroPython移植到野火STM32F429開發(fā)板
使用MicroPython開發(fā)ESP32(01):快速入門

MicroPython應(yīng)用基礎(chǔ)-準備基于MM32F5的MicroPython開發(fā)板
評論