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

文章目录

  • MicroPython应用基础-准备基于MM32F5的MicroPython开发板
    • 引言
    • 硬件
    • 软件
      • 搭建MicroPython编译环境
      • 获取MicroPython源码
      • 编译MicroPython源码生成固件
      • 下载MicroPython固件到电路板
    • 运行第一个样例工程

引言

本文主要面向2023年全国大学生物联网设计竞赛安谋科技命题,使用星辰处理器的灵动MM32F5微控制器开发板ICAR-F5270,基于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脚本文件后再插回电路板。

图x Smart-F5270开发板即周边配套电路板

参考文献:

  • MM32F5277E9P核心板原理图:https://download.csdn.net/download/suyong_yq/87825895
  • MM32F5277E9P扩展板原理图:https://download.csdn.net/download/suyong_yq/87825898
  • spiflash存储模块的pcb项目资料(包含原理图、生产PCB的gerber文件,以及KiCAD工程文件):https://download.csdn.net/download/suyong_yq/87825903

软件

搭建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脚本并查看运行结果。

参考文献:

  • 《基于Windows系统搭建micropython原生开发环境》,https://blog.csdn.net/suyong_yq/article/details/112797556
  • 《手工打造基于MM32F5微控制器的MicroPython开发板》,https://blog.csdn.net/suyong_yq/article/details/125905933

获取MicroPython源码

获取在MM32F5微控制器上适配MicroPython的源码工程:

  • https://gitee.com/suyong_yq/micropython-su

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

图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-crosstext    data     bss     dec     hex filename306417    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.elftext    data     bss     dec     hex filename169492     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所示。

图x 借用Keil下载MicroPython固件到芯片

参考文献:

  • 《使用DAP-Link单独下载可执行文件到MM32F5微控制器》,https://blog.csdn.net/suyong_yq/article/details/125041701

运行第一个样例工程

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

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

图x 试用MicroPython的REPL

参考文献:

  • 《手工打造基于MM32F5微控制器的MicroPython开发板》,https://blog.csdn.net/suyong_yq/article/details/125905933

MicroPython应用基础-准备MicroPython开发板相关推荐

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

    最近通过参考网上的文章,成功将MicroPython移植到野火STM32F429开发板上,给大家分享一下自己的移植过程,可以作为STM32系列移植MicroPY的参考. 1.移植前准备工作 实验环境: ...

  2. 零基础学习MSP430F552LP开发板,学习前期准备,Code Composer Studio(CCS)软件的安装

    零基础学习MSP430F552LP开发板 一.前言 零基础学习MSP430F552LP开发板,为电子设计竞赛做准备以及学好这一款芯片. 在选择比赛题目时,发现有的题目时规定使用ti的芯片作为控制MCU ...

  3. micropython开发板有什么用_【MicroPython】移植到小钢炮开发板

    首先要下载并安装GNU Tools for ARM Embedded Processors. https://launchpad.net/gcc-arm-embedded 展开MicroPython源 ...

  4. STM32H743开发板移植micropython并外扩32M的SQPI flash和32M的SDRAM

    文章目录 一.搭建编译环境 二.修改源码 1.复制源码 2.修改源码 2.1修改mpconfigboard.h文件 2.2修改stm32h7xx_hal_conf.h文件 2.3修改pins.csv文 ...

  5. 树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践

    树莓派Pico W开发板是树莓派基金会于2022年6月底推出的一款无线WiFi开发板,它支持C/C++和MicroPython编程.本文介绍树莓派Pico W无线WiFi开发板的使用方法及MicroP ...

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

    Python的开放.简洁.黏合正符合了现发展阶段对大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢经过了太漫 ...

  7. python 开发版-高性能、低成本、支持MicroPython开发板有哪些?

    Python的开放.简洁.黏合正符合了现发展阶段对大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢经过了太漫 ...

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

    手工打造基于MM32F5微控制器的MicroPython开发板 苏勇,2022-07-21 文章目录 手工打造基于MM32F5微控制器的MicroPython开发板 引言 MM32F5微控制器简介 制 ...

  9. micropython开发板性能_MicroPython支持的开发板:高性能、低成本创客首选

    原标题:MicroPython支持的开发板:高性能.低成本创客首选 Python的开放.简洁.黏合正符合了现发展阶段对大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到 ...

最新文章

  1. 小程序promise封装post请求_微信小程序用promise封装请求
  2. 36篇博文带你学完opencv :python+opencv进阶版学习笔记目录
  3. eclipse run on server 点不了finish_分享点经验 | springboot入门及编码
  4. 第三十六课:告别演出
  5. [导入]刚拿积蓄救人 自己又患癌症(我身边的一个真实故事)
  6. js时间戳写入mysql
  7. genymotion-安卓模拟器-IMEI修改方法
  8. lq 635色带安装
  9. matlab分离实部虚部,MATLAB/simulink中,想让电流表测出的值为复数形式,有实部虚部,将powergui设置为phasors仿真,总是出错...
  10. 图文并茂搭建STM32开发环境
  11. blast2go mysql_blast2go本地化-2017教程
  12. 评《软件测试职业发展三步曲》
  13. iOS Programming - Disallow Alphabetic Characters
  14. 客厅中式装修风格 温馨舒适的生活格调
  15. 控制台输出——键盘图形
  16. 可靠性设计原则1000条
  17. rdesktop安装教程
  18. matlab dcc,重金感谢(dcc-mvgarch)!
  19. 几种自动目标跟踪算法的比较研究
  20. 商业数据分析流程,主要划分为哪几个步骤?

热门文章

  1. 怎样通过手机与电脑上网
  2. 基于C++的ATM自动取款机设计
  3. css 的缩写形式,CSS样式中的几种缩写方式
  4. 在项目中用了Arrays.asList、ArrayList的subList,被老大公开批评
  5. python循环基本语法
  6. 这是我见过最好的支付系统,支付系统开发神器
  7. 领域驱动设计(DDD)实践之路(四):领域驱动在微服务设计中的应用
  8. 推荐系统中不得不学的对比学习(Contrastive Learning)方法
  9. Mesos和Marathon简介和浅析
  10. 【汇正财经】蓝筹股的区分方式