0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MicroPython应用基础-准备基于MM32F5的MicroPython开发板

冬至子 来源:安德鲁的设计笔记本 作者:安德鲁苏 2023-10-19 18:27 次阅读

引言

本文主要面向 2023年全国大学生物联网设计竞赛安谋科技命题 ,使用星辰处理器的灵动MM32F5微控制器开发板,基于MicroPython开发应用系统。这里讲述的操作方法,也适用于灵动早年发布的使用Arm Cortex-M3微控制器的MM32F3微控制器开发板,以及各种使用MM32F3和MM32F5微控制器设计的开发板。

硬件

除了具有足够Flash和SRAM的微控制器之外,运行MicroPython的电路板上最好有一个存储介质,用于加载文件系统,进一步通过文件系统保存Python脚本,能够让电路板上电之后自动运行。笔者最早使用SD卡作为文件系统的载体,但后来在适配MM32F5微控制器的MicroPython项目中启用了基于spiflash的LFS文件系统后,就转而使用spiflash作为文件系统的载体。

相对于使用SD卡,使用spiflash的总体成本更加便宜,而且节约电路板的面积,并且不用担心不小心丢掉SD卡这个小零件。当然,能够摆脱使用SD卡转而使用spiflash存储芯片的一个更重要的原因,是笔者调通了Thonny IDE同MicroPython联动,可以通过REPL向MicroPython的文件系统里存Python文件,否则不得不每次把SD卡拔下来通过SD卡读卡器接到PC上,存好Python脚本文件后再插回电路板。

image.png

figure-smartcar-mm32f5-board-protrait
图x ICAR-F5270开发板即周边配套电路板

软件

搭建MicroPython编译环境

基于Windows操作系统搭建MicroPython开发环境:

  • 安装Git,从线上的代码仓库中获取MicroPython项目的源码。
  • 安装msys2,GNU工具集的运行环境,在Windows操作系统上模拟MicroPython原生的Linux编译环境。
  • msys2中安装make,使用Makefile管理MicroPython工程。
  • msys2中安装Python,运行编译MicroPython过程中自动提取QSTR的脚本。
  • msys2中安装gcc,在MicroPython项目中编译生成运行在PC平台的mpy-cross工具,进而可将部分Python脚本文件编译成微控制器平台上运行MicroPython可以执行的字节码,最终可打包进入将要下载到微控制器中的MicroPython固件中去。
  • 安装arm-eabi-none-gcc并导入msys2,用于编译MicroPython项目中的C源码并生成MicroPython固件。
  • 安装Keil MDK和MM32F5微控制器的Keil设备支持包,用于将编译创建的MicroPython固件下载到MM32F5微控制器中。
  • 安装Tera Term,一个常用的开源串口终端软件,用于同运行MicroPython固件的微控制器开发板进行交互,输入Python脚本并查看运行结果。

获取MicroPython源码

其中,在micropython-su/micropython-1.16/ports/mm32f5-lfs-spiflash目录下,包含了基于MM32F5微控制器的使用spiflash挂载LFS文件系统的适配工程。如图x所示。

image.png

figure-mm32f5-lfs-spiflash-project-in-git-repo
图x MicroPython项目中的mm32f5-lfs-spiflash工程

编译MicroPython源码生成固件

下载MicroPython的代码仓库后,在msys2环境中,切换当前目录到micropython-su/micropython-1.16/mpy-cross目录下,执行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命令,编译创建基于MM32F5微控制器的ICAR-F5270开发板适用的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固件到电路板

比较稳妥的做法,借用Keil MDK,通过DAP-Link向MM32F5微控制器下载编译好的firmware.hex文件。

在Keil工程的配置选项对话框的Debug页面中,指定使用CMSIS-DAP调试器。在Output页面中,使用Select Folder for Objects ...指定将要下载文件的路径位于新创建的build-icar-f5270目录下。如图x所示。

image.png

figure-keil-daplink-download-1
图x 借用Keil下载MicroPython固件到芯片

运行第一个样例工程

启动串口终端软件,识别到DAP-Link虚拟出来的UART串口,配置串口通信波特率115200,无校验、8位数据、1位停止位,连上UART。

复位MM32F5电路板,运行MicroPython固件的程序。此时,用户可以在串口终端软件的界面中看到MicroPython启动运行的提示信息,然后可以试着在串口终端软件的界面中试着输入一些Python语句,运行程序。如图x所示。

image.png

figure-micropython-repl-welcome
图x 试用MicroPython的REPL

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147653
  • Cortex-M3
    +关注

    关注

    9

    文章

    268

    浏览量

    59165
  • GNU
    GNU
    +关注

    关注

    0

    文章

    141

    浏览量

    17333
  • SRAM存储器
    +关注

    关注

    0

    文章

    86

    浏览量

    13150
  • Micropython
    +关注

    关注

    0

    文章

    68

    浏览量

    4584
收藏 人收藏

    评论

    相关推荐

    手工打造基于MM32F5微控制器的MicroPython开发板

    集成(感谢同事Hao的出色工作),使我得以在MM32F5微控制上运行的MicroPython项目中,使用基于flash存储芯片的LittleFS文件系统,替换掉基于SD卡的FatFS文件系统。经过刚刚过去两天一夜的编码和调试,终于大功告成!
    的头像 发表于 06-16 10:57 886次阅读
    手工打造基于<b class='flag-5'>MM32F5</b>微控制器的<b class='flag-5'>MicroPython</b><b class='flag-5'>开发板</b>

    【FireBeetle 2 ESP32-S3开发板测评】MicroPython开发体验

    【FireBeetle 2 ESP32-S3开发板测评】MicroPython开发体验
    的头像 发表于 07-23 09:02 1238次阅读
    【FireBeetle 2 ESP32-S3<b class='flag-5'>开发板</b>测评】<b class='flag-5'>MicroPython</b><b class='flag-5'>开发</b>体验

    STM32F746Disco开发板MicroPython固件

    STM32F746Disco是2015年最热的开发板之一,Cotex-M7内核加上大液晶屏,做各种演示效果很棒。下面是STM32F746Disco开发板的最新
    发表于 09-27 11:17

    MicroPython支持的开发板:高性能、低成本,创客首选

    了太漫长的时间,然而可能也与国情与发展需求有着相当的关系。总之,越来越多人开始使用Python。 MicroPython是在单片机上跑的Python。官方的开发板是PYBoard,但是这个板子比较
    发表于 04-15 14:49

    玩转MicroPython开发板!你和Ta会有什么火花?

    开发板,你和它会有什么火花?TPYBoardv102  TPYBoardv102是一款典型的MicroPython开发板,搭载STM32F405芯片,支持DFU和SWD两种调试方式,现
    发表于 06-03 10:50

    MicroPython入门|开发板种类那么多,哪块才适合你玩?

      TPYBoardv102是一款典型的MicroPython开发板,搭载STM32F405芯片,支持DFU和SWD两种调试方式,现分为三个版本,简约版、以及分别兼容MicroPython
    发表于 06-20 18:13

    Python玩转硬件:TPYBoard-Micropython开发板大盘点

    、V202、V702外,还有stm23F4最小系统,arduino系列开发板等等,可可应用于教学更适用于稳定的工业级开发,是MicroPython
    发表于 08-05 15:21

    MicroPython入门:能跑MicroPython开发板大盘点!

    v102是一款典型的MicroPython开发板,搭载STM32F405芯片,支持DFU和SWD两种调试方式,现分为三个版本,简约版、以及分别兼容MicroPython官方
    发表于 07-06 14:43

    MicroPython开发板—TPYBoard开发板测评分享!

    TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个加速传感器,可在3V-10V
    发表于 08-14 00:18

    开发板Micropython平台

    NUCLEO-F401RE(STM32F401RE)开发板Micropython平台 开发准备
    发表于 08-06 06:56

    Micropython开发板的制作资料分享

    作为一个偏硬件的绘图员,赶上部门测试一款产品备用芯片STM32F405RG,恰巧这款芯片支持MicroPython,于是就萌生了画一款方便做硬件测试的Micropython开发板。话不
    发表于 01-06 07:23

    MicroPython开发板的电路原理图免费下载

    本文档的主要内容详细介绍的是MicroPython开发板的电路原理图免费下载。
    发表于 01-09 08:00 38次下载
    <b class='flag-5'>MicroPython</b><b class='flag-5'>开发板</b>的电路原理图免费下载

    MacOS上ESP8266开发板microPython教程

    MacOS上ESP8266开发板microPython教程
    发表于 11-30 17:36 8次下载
    MacOS上ESP8266<b class='flag-5'>开发板</b>刷<b class='flag-5'>microPython</b>教程

    [长文干货]MicroPython移植到野火STM32F429开发板

    [长文干货]MicroPython移植到野火STM32F429开发板
    发表于 12-05 18:51 27次下载
    [长文干货]<b class='flag-5'>MicroPython</b>移植到野火STM32F429<b class='flag-5'>开发板</b>

    使用MicroPython开发ESP32(01):快速入门

    文章目录为什么使用MicroPython开发ESP32快速入门开发板准备开发工具选择固件下载与烧录我的总结为什么使用
    发表于 12-29 18:49 22次下载
    使用<b class='flag-5'>MicroPython</b><b class='flag-5'>开发</b>ESP32(01):快速入门