MicroPython应用基础-准备MicroPython开发板

news2024/11/25 14:56:39

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

在这里插入图片描述

图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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript变量、数据类型、运算符

1. 变量 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, in…

GoWeb -- gin框架的入门和使用

认识gin go流行的web框架 go从诞生之初就带有浓重的开源属性&#xff0c;其原生库已经很强大&#xff0c;即使不依赖框架&#xff0c;也能进行高性能开发&#xff0c;又因为其语言并没有一定的设计标准&#xff0c;所以较为灵活&#xff0c;也就诞生了众多的框架&#xff0c;各…

使用朴素贝叶斯过滤垃圾邮件

使用朴素贝叶斯过滤垃圾邮件 文章目录 使用朴素贝叶斯过滤垃圾邮件流程准备数据构建训练集和测试集分类电子邮件 完整测试代码&#xff1a;欢迎关注公众号【三戒纪元】 朴素贝叶斯的最著名的应用&#xff1a;过滤电子邮件垃圾。 流程 收集数据&#xff1a;提供文本文件准备数据…

【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x36 TransferData诊断服务描述 2 0x36服务请求消息 2.1 0x36服务请求消息定义 2.2 0…

【C++系列P1】带上这篇基础小宝典,向特性奇多的C++进发吧!勇士们!(持续更新ing~)

前言 大家好吖&#xff0c;欢迎来到 YY 滴 C系列 &#xff0c;热烈欢迎&#xff01;(持续更新ing~&#xff09;本章主要内容面向刚刚学完C语言&#xff0c;准备或正在接触C的老铁。而往往C奇多的小特性和知识点让铁铁们头晕晕脑涨涨&#xff0c;因而本章收纳了许多C中零散的知识…

跨境电商系统源码分享,解决你的电商难题

作为跨境电商领域的专家&#xff0c;我在这里为你分享跨境电商系统源码&#xff0c;帮助你解决各种电商难题&#xff01;本文将为你提供全面而专业的指导&#xff0c;让你的电商之路更加顺畅。 为什么选择跨境电商系统源码&#xff1f; 跨境电商系统源码是现代电商业务管理的…

MongoDB超全语法大全

MongoDB 安装教程 一、介绍 mongodb数据库是非关系数据库&#xff0c;mongodb中没有表的概念&#xff0c;数据都是存储在集合中 易扩展&#xff1a; NoSQL数据库种类繁多&#xff0c; 但是⼀个共同的特点都是去掉关系数据库的关系型特性。 数据之间⽆关系&#xff0c; 这样就…

如何运行Node.js脚本及读取环境变量

目录 1、如何从CLI 运行Node.js 脚本 2、将字符串作为参数传递到节点&#xff0c;而不是文件路径 3、自动重新启动应用程序 4、如何从Node.js中读取环境变量 1、如何从CLI 运行Node.js 脚本 运行Node.js程序的通常方法是运行全局可用的Node命令&#xff08;一旦安装Node.js…

[论文分享] When deep learning met code search

When deep learning met code search [ESEC/FSE 2019] Jos Cambronero MIT CSAIL U.S.A. Hongyu Li Facebook, Inc. U.S.A. SeohyunKim Facebook,Inc. U.S.A. KoushikSen EECSDepartment,UCBerkeley U.S.A. SatishChandra Facebook,Inc. U.S.A. 最近有多个关于使用深度神经网…

ASP.NET 未能找到类型或命名空间名称“HttpRequestMessage”

引入System.Net.Http后&#xff0c;运行页面还是报错 using System.Net.Http;chatGPT解释需要安装Microsoft.AspNet.WebApi.Client包&#xff0c;IIS安装的包文件存储在bin目录下&#xff0c;安装包后bin目录多出了一些列文件 运行页面后还是报错 需要在web.config配置文件…

【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014【ISO14229_UDS刷写】-1-$34诊断服务RequestDownload理论部分https://blog.csdn.net/qfmzhu/article…

VM600 CPUR2 机架控制器和通信接口卡

VM600 CPUR2和IOCR2机架控制器和通信接口卡对是一个中央处理器(CPU)卡对&#xff0c;作为Meggitt振动计产品线中VM600机架机械保护系统(MPS)和/或状态监控系统(CMS)的系统控制器和数据通信网关。 注:不同版本的CPUx/IOCx框架控制器和通信接口卡对可用&#xff0c;如下所示: C…

初探 Compose for Wear OS:实现一个简易选择APP

前言 俗话说&#xff0c;人生有三大难题&#xff1a;早上吃啥、中午吃啥、晚上吃啥。 这个问题一度困扰着无数的人&#xff0c;直到一款帮你选择吃什么的神器《今天吃啥》出现&#xff0c;人们再也不用为了每天吃啥而犯愁了。 哈哈&#xff0c;以上纯属抖机灵。 最近访问谷歌…

Spring MVC数据绑定和响应

数据绑定 在程序运行时&#xff0c;Spring MVC接收到客户端的请求后&#xff0c;会根据客户端请求的参数和请求头等数据信息&#xff0c;将参数以特定的方式转换并绑定到处理器的形参中。Spring MVC中将请求消息数据与处理器的形参建立连接的过程就是Spring MVC的数据绑定。 …

电力监控系统在中原科技城智慧能源配电工程中的应用

摘 要&#xff1a;随着社会经济的快速发展&#xff0c;我国变电站正朝着现代化的方向不断发展&#xff0c;自动化设备以及继电保护装置凭借自身优异性能而获得广泛应用。本文介绍的AM5SE系列的微机保护装置&#xff0c;可以针对中原科技城智慧能源配电工程中不同保护对象提供对…

真无线蓝牙耳机什么牌子好?盘点五款质量好的蓝牙耳机

相信很多人都有过这样的经历&#xff0c;早 晚高峰像沙丁鱼般被挤在公交或地铁上&#xff0c;嘈杂的环境、工作的劳累让你只想听听音乐追追剧&#xff0c;给自己一些放松的时光。可拿出有线耳机却常常被挤掉&#xff0c;更有被扯到耳朵的时候。想换一款蓝牙耳机&#xff0c;但面…

Kubernetes 证书详解

K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式&#xff0c;其中最常用的就是 TLS 认证&#xff0c;当然也有 BootstrapToken&#xff0c;BasicAuth 认证等&#xff0c;只要有一个认证通过&#xff0c;那么 Kube-apiserver 即认为认证通过。下面就主要讲解 TLS 认证。 …

chatgpt赋能python:Python动作捕捉:何为动作捕捉及其应用

Python动作捕捉&#xff1a;何为动作捕捉及其应用 介绍 动作捕捉是一种技术&#xff0c;可将人或物体的运动转换为数字形式。在过去的几十年里&#xff0c;动作捕捉已被广泛应用于电影制作、游戏开发、医学研究等领域。 Python是一种功能强大的编程语言&#xff0c;已成为许…

AI 工具分享第 4 期:13 款国外免费AI视频生成工具

0. 未来百科 未来百科&#xff0c;是一个知名的AI产品导航网站 —— 为发现全球优质AI工具而生 。目前已 聚集全球3000优质AI工具产品 &#xff0c;旨在帮助用户发现全球最好的AI工具&#xff0c;同时为研发AI垂直应用的创业公司提供展示窗口&#xff0c;迎接未来的AI时代。未来…

Revit建模|Revit风管怎么绘制?

​绘制风管是机电工程重要的一环&#xff0c;对于不少刚接触Revit的小伙伴来说似乎还无从下手&#xff0c;今天就让小编来告诉大家在Revit中绘制风管的方法。 一、在Revit绘制风管 第一步&#xff1a;首先我们先在revit的界面中项目文件找到风管。 第二步&#xff1a;打开后我…