0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

冬至子 ? 來源:安德魯?shù)脑O(shè)計(jì)筆記本 ? 作者:安德魯蘇 ? 2023-10-19 18:27 ? 次閱讀

引言

本文主要面向 2023年全國(guó)大學(xué)生物聯(lián)網(wǎng)設(shè)計(jì)競(jìng)賽安謀科技命題 ,使用星辰處理器的靈動(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)的載體。

相對(duì)于使用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腳本文件后再插回電路板。

image.png

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所示。

image.png

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)對(duì)話框的Debug頁面中,指定使用CMSIS-DAP調(diào)試器。在Output頁面中,使用Select Folder for Objects ...指定將要下載文件的路徑位于新創(chuàng)建的build-icar-f5270目錄下。如圖x所示。

image.png

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所示。

image.png

figure-micropython-repl-welcome
圖x 試用MicroPython的REPL

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7394

    瀏覽量

    150626
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    269

    瀏覽量

    59379
  • GNU
    GNU
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    17434
  • SRAM存儲(chǔ)器
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    13254
  • Micropython
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    4691
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    手工打造基于MM32F5微控制器的MicroPython開發(fā)板

    集成(感謝同事Hao的出色工作),使我得以在MM32F5微控制上運(yùn)行的MicroPython項(xiàng)目中,使用基于flash存儲(chǔ)芯片的LittleFS文件系統(tǒng),替換掉基于SD卡的FatFS文件系統(tǒng)。經(jīng)過剛剛過去兩天一夜的編碼和調(diào)試,終于大功告成!
    的頭像 發(fā)表于 06-16 10:57 ?1193次閱讀
    手工打造基于<b class='flag-5'>MM32F5</b>微控制器的<b class='flag-5'>MicroPython</b><b class='flag-5'>開發(fā)板</b>

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

    【FireBeetle 2 ESP32-S3開發(fā)板測(cè)評(píng)】MicroPython開發(fā)體驗(yàn)
    的頭像 發(fā)表于 07-23 09:02 ?1655次閱讀
    【FireBeetle 2 ESP32-S3<b class='flag-5'>開發(fā)板</b>測(cè)評(píng)】<b class='flag-5'>MicroPython</b><b class='flag-5'>開發(fā)</b>體驗(yàn)

    STM32F746Disco開發(fā)板MicroPython固件

    STM32F746Disco是2015年最熱的開發(fā)板之一,Cotex-M7內(nèi)核加上大液晶屏,做各種演示效果很棒。下面是STM32F746Disco開發(fā)板的最新
    發(fā)表于 09-27 11:17

    玩轉(zhuǎn)MicroPython開發(fā)板!你和Ta會(huì)有什么火花?

    開發(fā)板,你和它會(huì)有什么火花?TPYBoardv102  TPYBoardv102是一款典型的MicroPython開發(fā)板,搭載STM32F405芯片,支持DFU和SWD兩種調(diào)試方式,現(xiàn)
    發(fā)表于 06-03 10:50

    MicroPython入門|開發(fā)板種類那么多,哪塊才適合你玩?

      TPYBoardv102是一款典型的MicroPython開發(fā)板,搭載STM32F405芯片,支持DFU和SWD兩種調(diào)試方式,現(xiàn)分為三個(gè)版本,簡(jiǎn)約版、以及分別兼容MicroPython
    發(fā)表于 06-20 18:13

    MicroPython入門:能跑MicroPython開發(fā)板大盤點(diǎn)!

    v102是一款典型的MicroPython開發(fā)板,搭載STM32F405芯片,支持DFU和SWD兩種調(diào)試方式,現(xiàn)分為三個(gè)版本,簡(jiǎn)約版、以及分別兼容MicroPython官方
    發(fā)表于 07-06 14:43

    MicroPython開發(fā)板—TPYBoard開發(fā)板測(cè)評(píng)分享!

    TurnipSmart公司制作的一款MicroPython開發(fā)板,它基于STM32F405單片機(jī),通過USB接口進(jìn)行數(shù)據(jù)傳輸。該開發(fā)板內(nèi)置4個(gè)LED燈、一個(gè)加速傳感器,可在3V-10V
    發(fā)表于 08-14 00:18

    開發(fā)板Micropython平臺(tái)

    NUCLEO-F401RE(STM32F401RE)開發(fā)板Micropython平臺(tái) 開發(fā)準(zhǔn)備
    發(fā)表于 08-06 06:56

    Micropython開發(fā)板的制作資料分享

    作為一個(gè)偏硬件的繪圖員,趕上部門測(cè)試一款產(chǎn)品備用芯片STM32F405RG,恰巧這款芯片支持MicroPython,于是就萌生了畫一款方便做硬件測(cè)試的Micropython開發(fā)板。話不
    發(fā)表于 01-06 07:23

    如何學(xué)習(xí)MicroPython MicroPython入門知識(shí)

    對(duì)于深入研究實(shí)時(shí)嵌入式應(yīng)用程序之前,對(duì)MicroPython感興趣的開發(fā)人員必須先選擇支持開發(fā)套件或微處理器。開發(fā)人員尋找支持的開發(fā)工具包的
    的頭像 發(fā)表于 08-07 11:43 ?5289次閱讀

    MicroPython開發(fā)板的電路原理圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是MicroPython開發(fā)板的電路原理圖免費(fèi)下載。
    發(fā)表于 01-09 08:00 ?51次下載
    <b class='flag-5'>MicroPython</b><b class='flag-5'>開發(fā)板</b>的電路原理圖免費(fèi)下載

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

    發(fā)現(xiàn)MicroPython開發(fā)板的確很不錯(cuò)。功能比Arduino強(qiáng),使用也很靈活。淘寶上microPython開發(fā)板很少,價(jià)格也很高,都是200以上。因此,考慮到價(jià)格原因,加上
    發(fā)表于 11-12 14:58 ?30次下載
    <b class='flag-5'>MicroPython</b><b class='flag-5'>開發(fā)板</b>原理圖PCB源文件源代碼開源

    MacOS上ESP8266開發(fā)板microPython教程

    MacOS上ESP8266開發(fā)板microPython教程
    發(fā)表于 11-30 17:36 ?8次下載
    MacOS上ESP8266<b class='flag-5'>開發(fā)板</b>刷<b class='flag-5'>microPython</b>教程

    [長(zhǎng)文干貨]MicroPython移植到野火STM32F429開發(fā)板

    [長(zhǎng)文干貨]MicroPython移植到野火STM32F429開發(fā)板
    發(fā)表于 12-05 18:51 ?27次下載
    [長(zhǎng)文干貨]<b class='flag-5'>MicroPython</b>移植到野火STM32<b class='flag-5'>F</b>429<b class='flag-5'>開發(fā)板</b>

    使用MicroPython開發(fā)ESP32(01):快速入門

    文章目錄為什么使用MicroPython開發(fā)ESP32快速入門開發(fā)板準(zhǔn)備開發(fā)工具選擇固件下載與燒錄我的總結(jié)為什么使用
    發(fā)表于 12-29 18:49 ?22次下載
    使用<b class='flag-5'>MicroPython</b><b class='flag-5'>開發(fā)</b>ESP32(01):快速入門