引言
本文主要面向 2023年全國大學(xué)生物聯(lián)網(wǎng)設(shè)計(jì)競賽安謀科技命題 ,使用星辰處理器的靈動(dòng)MM32F5微控制器開發(fā)板,基于MicroPython開發(fā)應(yīng)用系統(tǒng)。這里講述的操作方法,也適用于靈動(dòng)早年發(fā)布的使用Arm Cortex-M3微控制器的MM32F3微控制器開發(fā)板,以及各種使用MM32F3和MM32F5微控制器設(shè)計(jì)的開發(fā)板。
硬件
除了具有足夠Flash和SRAM的微控制器之外,運(yùn)行MicroPython的電路板上最好有一個(gè)存儲(chǔ)介質(zhì),用于加載文件系統(tǒng),進(jìn)一步通過文件系統(tǒng)保存Python腳本,能夠讓電路板上電之后自動(dòng)運(yùn)行。筆者最早使用SD卡作為文件系統(tǒng)的載體,但后來在適配MM32F5微控制器的MicroPython項(xiàng)目中啟用了基于spiflash的LFS文件系統(tǒng)后,就轉(zhuǎn)而使用spiflash作為文件系統(tǒng)的載體。
相對于使用SD卡,使用spiflash的總體成本更加便宜,而且節(jié)約電路板的面積,并且不用擔(dān)心不小心丟掉SD卡這個(gè)小零件。當(dāng)然,能夠擺脫使用SD卡轉(zhuǎn)而使用spiflash存儲(chǔ)芯片的一個(gè)更重要的原因,是筆者調(diào)通了Thonny IDE同MicroPython聯(lián)動(dòng),可以通過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項(xiàng)目的源碼。 - 安裝
msys2
,GNU工具集的運(yùn)行環(huán)境,在Windows操作系統(tǒng)上模擬MicroPython原生的Linux編譯環(huán)境。 - 在
msys2
中安裝make
,使用Makefile
管理MicroPython工程。 - 在
msys2
中安裝Python
,運(yùn)行編譯MicroPython過程中自動(dòng)提取QSTR的腳本。 - 在
msys2
中安裝gcc
,在MicroPython項(xiàng)目中編譯生成運(yùn)行在PC平臺(tái)的mpy-cross
工具,進(jìn)而可將部分Python腳本文件編譯成微控制器平臺(tái)上運(yùn)行MicroPython可以執(zhí)行的字節(jié)碼,最終可打包進(jìn)入將要下載到微控制器中的MicroPython固件中去。 - 安裝
arm-eabi-none-gcc
并導(dǎo)入msys2
,用于編譯MicroPython項(xiàng)目中的C源碼并生成MicroPython固件。 - 安裝
Keil MDK
和MM32F5微控制器的Keil設(shè)備支持包,用于將編譯創(chuàng)建的MicroPython固件下載到MM32F5微控制器中。 - 安裝
Tera Term
,一個(gè)常用的開源串口終端軟件,用于同運(yùn)行MicroPython固件的微控制器開發(fā)板進(jìn)行交互,輸入Python腳本并查看運(yùn)行結(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項(xiàng)目中的mm32f5-lfs-spiflash工程
編譯MicroPython源碼生成固件
下載MicroPython的代碼倉庫后,在msys2環(huán)境中,切換當(dāng)前目錄到micropython-su/micropython-1.16/mpy-cross
目錄下,執(zhí)行make
命令,編譯得到PC主機(jī)平臺(tái)上運(yùn)行的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
目錄下,運(yùn)行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工程的配置選項(xiàng)對話框的Debug
頁面中,指定使用CMSIS-DAP
調(diào)試器。在Output
頁面中,使用Select Folder for Objects ...
指定將要下載文件的路徑位于新創(chuàng)建的build-icar-f5270
目錄下。如圖x所示。
figure-keil-daplink-download-1
圖x 借用Keil下載MicroPython固件到芯片
運(yùn)行第一個(gè)樣例工程
啟動(dòng)串口終端軟件,識(shí)別到DAP-Link虛擬出來的UART串口,配置串口通信波特率115200,無校驗(yàn)、8位數(shù)據(jù)、1位停止位,連上UART。
復(fù)位MM32F5電路板,運(yùn)行MicroPython固件的程序。此時(shí),用戶可以在串口終端軟件的界面中看到MicroPython啟動(dòng)運(yùn)行的提示信息,然后可以試著在串口終端軟件的界面中試著輸入一些Python語句,運(yùn)行程序。如圖x所示。
figure-micropython-repl-welcome
圖x 試用MicroPython的REPL
-
微控制器
+關(guān)注
關(guān)注
48文章
7783瀏覽量
153121 -
Cortex-M3
+關(guān)注
關(guān)注
9文章
270瀏覽量
59930 -
GNU
+關(guān)注
關(guān)注
0文章
143瀏覽量
17658 -
SRAM存儲(chǔ)器
+關(guān)注
關(guān)注
0文章
88瀏覽量
13527 -
Micropython
+關(guān)注
關(guān)注
0文章
68瀏覽量
5024
發(fā)布評論請先 登錄
相關(guān)推薦
手工打造基于MM32F5微控制器的MicroPython開發(fā)板

【FireBeetle 2 ESP32-S3開發(fā)板測評】MicroPython開發(fā)體驗(yàn)

STM32F746Disco開發(fā)板的MicroPython固件
玩轉(zhuǎn)MicroPython開發(fā)板!你和Ta會(huì)有什么火花?
MicroPython入門|開發(fā)板種類那么多,哪塊才適合你玩?
Python玩轉(zhuǎn)硬件:TPYBoard-Micropython開發(fā)板大盤點(diǎn)
MicroPython入門:能跑MicroPython開發(fā)板大盤點(diǎn)!
MicroPython開發(fā)板—TPYBoard開發(fā)板測評分享!
開發(fā)板跑Micropython平臺(tái)
Micropython開發(fā)板的制作資料分享
MicroPython開發(fā)板的電路原理圖免費(fèi)下載

MicroPython開發(fā)板原理圖PCB源文件源代碼開源

[長文干貨]MicroPython移植到野火STM32F429開發(fā)板
![[長文干貨]<b class='flag-5'>MicroPython</b>移植到野火STM32<b class='flag-5'>F</b>429<b class='flag-5'>開發(fā)板</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用MicroPython開發(fā)ESP32(01):快速入門

評論