STM32进阶教程1-micropython移植
前⾔
Python是⼀种解释型、⾯向对象、动态数据类型的⾼级程序设计语⾔。
Python 是⼀个⾼层次的结合了解释性、编译性、互动性和⾯向对象的脚本语⾔。具有如下特点:
1.易于学习:Python有相对较少的关键字,结构简单,和⼀个明确定义的语法,学习起来更加简单。
2.易于阅读:Python代码定义的更清晰。
3.易于维护:Python的成功在于它的源代码是相当容易维护的。
4.⼀个⼴泛的标准库:Python的最⼤的优势之⼀是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互动模式:互动模式的⽀持,您可以从终端输⼊执⾏代码并获得结果的语⾔,互动的测试和调试代码⽚断。
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其⼯作)到许多平台。
7.可扩展:如果你需要⼀段运⾏很快的关键代码,或者是想要编写⼀些不愿开放的算法,你可以使⽤C或C++完成那部分程序,然后从你的Python程序中调⽤。
8.数据库:Python提供所有主要的商业数据库的接⼝。
9.GUI编程:Python⽀持GUI可以创建和移植到许多系统调⽤。
10.可嵌⼊: 你可以将Python嵌⼊到C/C++程序,让你的程序的⽤户获得"脚本化"的能⼒。
MicroPython 是Python 3编程语⾔的⼀种精简⽽⾼效的实现,它包含Python标准库的⼀个⼩⼦集,并且经过优化,可以在微控制器和受限环境中运⾏。MicroPython包含了许多⾼级特性,⽐如交互式提⽰符、任意精确整数、闭包、列表理解、⽣成器、异常处理等等。但是它⾜够紧凑,可以在256k的代码空间和16k的RAM中运⾏。MicroPython的⽬标是尽可能与普通Python兼容,允许您轻松地将代码从桌⾯转移到微控制器或嵌⼊式系统。
phpstudy怎么让别人也能访问本节将带领⼤家在STM32F407ZET6开发板上移植micropython,让python的优点进⼊到单⽚机,进⼊到嵌⼊式程序开发层次!
⽰例详解
基于硬件平台: 正点源⼦的stm32f4 探索者开发板,MCU 的型号是 STM32F4ZET6。⾸先笔者使⽤的实验环境
为WIN10+Ubuntu14.04(虚拟机,安装了python2.7 )。所⽤到的⼯具有JFLAH, PUTTY, ST_DFU⼯具(⾮必需)。
本⽰例所⽤的开发板及部分原理图:
1.
1. 源码下载与编译:
1.
1.
1. 进⼊ubuntu系统,确保电脑能连上⽹络,按ctrl+alt+t打开终端,先给电脑安装GIT(如果已经安装也没关系),在终端中
输⼊命令:
sudo apt-get install git
下载micropythonid源码(速度与⽹络速度有关,⼏分钟到⼏个⼩时都有可能):
下载完成后,在home⽬录下可以看到多了⼀个micropython⽂件夹:
在ports/stm32/boards下看到micropython⽀持的处理器或开发板:
1.
1.
1. 编译,⾸先编译之前需要安装gcc和gcc-arm-none-eabi交叉编译器。
在终端中依次输⼊如下命令完成交叉编译器的安装:电脑python安装教程
sudo apt-get install gcc
sudo apt-get install gcc-arm-none-eabi
进⼊到micropython⽬录,并列出其内容:
cd micropython
ls
进⼊ports/stm32/boards⽬录,我们开发板芯⽚型号是STM32F407ET6, 最相近有F4 系列即STM32F4DISC。复制STM32F4DISC 并重重命名为MYBOARD:
cd ports/stm32/boards
cp -r STM32F4DISC MYBOARD
回到源码⽬录micropython下,进⼊mpy-cross⽬录,先编译MicroPython cross-compiler(很多开发板需要先编译好mpy-cross 然后才能成功编译Micropython ):
cd mpy-cross
make
接下来就可以编译Micropython了,回到micropython输⼊下列命令下源码中的⼀些⼦模块submoudle下载下来:
git init
git submodule update –init (跟⽹络速度有关,要点时间)
(笔者电脑之前已初始化过,很快便完成了)
进⼊stm32⽬录下编译执⾏,⽣成我们所需要的固件DFU或者HEX形式的:
share什么意思cd ports/stm32/
make BOARD=MYBOARD PYTHON=python2
BOARD=MYBOARD是⽤于指定要编译的开发板, PYTHON=python2是因为笔者电脑安装的python是2.7版本的,如果安装的是python3,该参数可以省略(见redme.md⽂件)。
如上图,编译成功,在stm32⽬录下会⽣成⼀个build-MYBOARD⽂件夹:
在⽂件夹中有对应的烧⼊或升级⽂件:
glimpse是什么意思Firmware.elf,firmware.hex是⽤于烧录的完整固件,firmware0.bin是bootLoader程序⽂件,firmware1.bin是程序app⽂
件,firmware.dfu是配合ST-DFU⼯具⽤的app⽂件。
本实现我们⽤jlink⼯具直接烧录firmware.hex⽂件来下载程序到开发板,关于DFU的使⽤请参考笔者的“STM32 基础系列教程 28 -USB_DFU”⼀节内容:
1.
1.
1. 程序烧录与运⾏
将firmware.hex复制到WIN10系统,在win10环境下打开jflah⼯具,选择创建新⼯程后点“start j-flash”unix操作系统是一种多用户分时操作系统
stripos() 绕过选择对应开发板对应的芯⽚型号,操作如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论