Micropython学习(二)STM32移植

在实验室找了块微雪的STM32F407ZET6(Micropython支持的系列)的核心板,移植下Micropython的源码,也遇到些问题,最后解决了,在这写下过程记录一些经验教训。

Micropython学习(二)STM32移植_第1张图片

首先本人环境为WIN10+Ubuntu18.04(非虚拟机,当然也可以用虚拟机,根据情况选择)

所需工具

1、STSW-STM32080fuSeUSB,安装包地址:http://www.stmcu.org.cn/document/detail/index/id-215019

Micropython学习(二)STM32移植_第2张图片

2、putty https://www.putty.org/

Micropython学习(二)STM32移植_第3张图片

第一步 下载源码

如果没有安装git的话,先安装git,然后下载源码,不建议从github上直接下载(我试过后续编译会出现错误,直接下的里面的submoudle可能找不到)

sudo apt-get install git
git clone https://github.com/micropython/micropython

Micropython学习(二)STM32移植_第4张图片

下载完之后可以在电脑上看到一个micropython的目录,里面内容如下。

Micropython学习(二)STM32移植_第5张图片

第二步 编译

首先编译之前需要安装gcc和gcc-arm-none-eabi交叉编译器。

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

如果没有找到可以更新下,或者更换国内源。

sudo apt-get update

安装完之后开搞!

快捷键Ctrl+Alt+t 打开终端,输入ls查看目录。

Micropython学习(二)STM32移植_第6张图片

然后进入micropython目录

cd micropython

Micropython学习(二)STM32移植_第7张图片

可以在ports/stm32/boards下看到micropython支持的处理器,挺多的,未来会更多。

Micropython学习(二)STM32移植_第8张图片

进入boards这个目录,我们需要的F4系列的,即STM32F4DISC。

cd ports/stm32/boards

复制STM32F4DISC并重命名为HIBOARD

cp -r STM32F4DISC HIBOARD

然后回到源码目录micropython下,输入:

git init
git submodule update --init

这一步是将源码中的一些子模块submoudle下载下来(可以看源码目录下的README文件就清楚了)。

Micropython学习(二)STM32移植_第9张图片

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

make BOARD=HIBOARD

Micropython学习(二)STM32移植_第10张图片

最后顺利生成固件,固件在build-HIBOAR目录下。

 进行到这你已经成功大半了,接下来下载单片机验证。

第三步 烧录

需用前面下载的工具下载,将开发板的boot0 boot1 状态为 1 0设定为从system memery启动,设置好后重启开发板,运行刚下载的上位机软件,dfu软件会识别到开发板,choose编译生成的DFU文件,upgrade即可(其实就是bootloder烧写)。

Micropython学习(二)STM32移植_第11张图片

 之后就是最后见证奇迹的时刻了,但是我的板子没有任何反应,没有出现磁盘PYBFLASH,心塞啊!

试着找解决办法,网上找了很多(换电脑等),结果我将启动方式设置为FLASH启动,磁盘出现了,这么一想也对,平常的单片机的程序也是放在FLASH里的前几页的,板子运行肯定是从FLASH里找(实践出真知啊)。

Micropython学习(二)STM32移植_第12张图片

 

 到这基本完成了,最后来玩一下micropython在单片机上跑吧。使用putty串口连接。注意win10会自动安装驱动,但是win7就需要自己更新驱动,驱动文件就在PYBFLASH,pybcdc.inf。

Micropython学习(二)STM32移植_第13张图片

putty串口连接如下:

Micropython学习(二)STM32移植_第14张图片

 

Micropython学习(二)STM32移植_第15张图片

 接下来就是体验micropython控制单片机的乐趣了,不同于python脚本。

结语

也可以根据自己的需要编译源码,需要修改一些文件,水平有限就没有相关编译。接下来会在pyboard上进行实验和学习,希望有兴趣的小伙伴和我一起学习讨论。

你可能感兴趣的:(LearningShare)