栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Micropython移植烧录到stm32f407

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Micropython移植烧录到stm32f407

Micropython移植烧录到stm32f407
  • 前言
  • 一、下载源码
  • 二、编译前准备
    • 1、查看README.md
    • 2、编译MicroPython cross-compiler
    • 3、选择最适合的芯片
    • 4、修改源码匹配自己开发板
  • 三、安装交叉编译工具并编译
  • 四、烧录
  • 五、测试
  • 什么是gcc交叉编译
  • 交叉编译工具链的命名规则


前言

python语言拥有可读性强,兼容性高,面向对象,易于学习等优点,但是很长一段时间python只能用于x86平台,而arm开发则是C语言一家独大,于是人们诞生了利用python开发arm的想法,Micropython应运而生,Micropython提供了使用Python语言操控硬件设备的接口,把底层的C代码封装起来,让没有C语言基础的开发者也能很轻松实现项目。具体使用方法参考: Micropython文档


一、下载源码

从GitHub下载代码,链接: GitHub

下载完后解压进入目录,里面内容如下

二、编译前准备 1、查看README.md

像GitHub上面的大型项目,一般都会有详细的编译说明写在README.md里面,我们要认真查看,不要惧怕英文

2、编译MicroPython cross-compiler

从README.md中这段可以知道很多开发板需要先编译好mpy-cross 然后才能成功编译Micropython

cd mpy-cross
make

3、选择最适合的芯片

在ports/stm32/boards下查看micropython支持的处理器

从命名上看VCC_GND_F407VE这个是和我自己开发板处理器最像的,所以复制VCC_GND_F407VE并重命名为MYBOARD,这样做是为了避免破坏了原来的代码

4、修改源码匹配自己开发板

修改晶振频率
打开MYBOARD目录下的mpconfigboard.h,这是板子接口配置文件,其中#define MICROPY_HW_CLK_PLLM (25)是把外部时钟25分频得到1MHz的时钟信号作为系统时钟,因为我用的是8M晶振,自然要改为8分频

修改LED引脚
把LED1改为我板子上的PD_12引脚

三、安装交叉编译工具并编译

从这段可以看出代码需要arm-none-eabi-gcc工具链进行编译,我们可以通过下面命令安装(文章结尾介绍什么是交叉编译工具)

sudo apt-get install arm-none-eabi-gcc


进入stm32目录通过以下命令将源码中的一些子模块submoudle下载下来

make submodules

最后在stm32目录下执行编译,生成我们所需要的HEX形式的固件。

make BOARD=MYBOARD

编译成功的固件在build-MYBOAR目录下。

四、烧录

使用STM32CubeProgrammer烧录: 下载地址
首先把开发板断电,按住boot0不放,接通电源,把开发板用usb线连接电脑,这时候电脑应该识别到一个usb设备,接下来按照下图顺序操作,选择firmware.hex固件后点击Download等待进度条跑完,复位开发板可以发现电脑识别到一个移动磁盘,这时候移植工作就完成了,下面开始测试。

五、测试

使用MobaXterm_Personal的串口连接开发板,输入以下命令,完美实现led的亮灭操作,其他的外设操作待以后更新

什么是gcc交叉编译

源文件需要经过编译才能生成可执行文件。在Windows下进行开发时,我们利用集成开发环境(比如Visual studio)已经将各种编译工具的使用封装好了。Linux下也有很优秀的集成开发工具,但是更多的时候是直接使用编译工具;
PC机上的编译工具链为gcc、ld、objcopy、objdump等,它们编译出来的程序是在x86平台上运行的。要编译出能在ARM平台上运行的程序,必须使用交叉编译工具xxx-gcc、xxx-ld等(不同版本的编译器的前缀不一样,比如arm-linux-gcc),所谓“交叉”的意思就是编译主机和运行主机是不同的架构

交叉编译工具链的命名规则

交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]

arch – 体系架构,如ARM,MIPS(通过交叉编译工具生成的可执行文件或系统镜像的运行平台或环境)
vendor – 工具链提供商
os – 目标操作系统(host主要操作平台,也就是编译时的系统)
eabi – 嵌入式应用二进制接口(Embedded Application Binary Interface)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号