andeyqi 发表于 2018-1-12 11:35:06

【stm32f407vet6移植micropython】

现在python使用的越来越多,之前工作中使用的编译脚本就是用python写的,只是对python略有了解,后来了解有个开源项目micropython git地址 已经支持STM32平台,正好手里有块STM32F4O7VET6(淘宝购买的)的开发板,决定感受下micropython 在STM32F4平台运行的效果。


一,编译环境准备:
①我使用的ubuntu16.04虚拟机,虚拟机需要安装git工具。
②我使用的交叉编译工具链arm-none-eabi-gcc版本如下,可以从网上直接下载到。
Target: arm-none-eabi
Configured with: /home/build/work/GCC-5-build/src/gcc/configure --target=arm-none-eabi --prefix=/home/build/work/GCC-5-build/install-native --libexecdir=/home/build/work/GCC-5-build/install-native/lib --infodir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-5-build/install-native/arm-none-eabi --build=i686-linux-gnu --host=i686-linux-gnu --with-gmp=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-mpfr=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-mpc=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-isl=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-cloog=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-libelf=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r,armv8-m.base,armv8-m.main
Thread model: single
gcc version 5.4.1 20160919 (release) (GNU Tools for ARM Embedded Processors)
③安装stm32dfu上位机软件


二, 编译micropython
①从git获取micropython源代码,放入虚拟机(16.04)中我都放在了家目录下,可以根据自己环境状况来放置。
       http://github.com/micropython/micropython
②添加自己的开发板,我使用的是是STM32F407和官方的STM32F4DISC都是M4的内核只是外设上有些差别,索性直接复制~/micropython/ports/stm32/boards的STM32F4DISC开发板相关目录并修改为HIBOARD。


③在源码目录下 ~/micropython/ports/stm32 目录下执行make BOARD=HIBOARD开始编译。



④成功会在如下目录下~/micropython/ports/stm32/build-HIBOARD生成 firmware.dfu文件,这个文件是一会我们要是用的文件。
三,在开饭版上验证

①安装stm32dfu上位机软件 成功安装后将开发板的boot0 boot1 状态为 1 0设定为从system memery启动,设置好后重启开发板,运行刚下载的上位机软件,dfu软件会识别到开发板,如果识别不到,如果是默认安装路径的话,安装如下路径的驱动,我的系统是win10 64的,用的win7 64的可以使用。
C:\Program Files (x86)\STMicroelectronics\Software\DfuSe v3.0.5\Bin\Driver

②选择编译出来的firmware.dfu 下载入单片机后,设置boot0 bbot1 引脚为0 0就可以开始体验micropython了,重启开发板后后会在生成一个磁盘文件和虚拟串口,如果没有生成反复插拔USB口尝试。

③用串口工具设置波特率115200 连接方式8N1连接生成的虚拟串口,就可以看到python的运行效果了。



④点亮led,我的开发板的两颗LED分别接着PA6,PA7低电平点灯。





暂时先写到这,以后可以进一步修改我的板子和STM32F4DISC外设的不同配置来适配我的开发板,不写帖子的人表示写帖子不易,向经常发帖的同志致敬,写的也仓促难免有错误的地方,有问题请各位指正。

木森林的年轮 发表于 2018-1-12 13:14:39

这款板子怎么样?想买一块407的板子,可是找不到心仪的。

andeyqi 发表于 2018-1-12 14:11:43

木森林的年轮 发表于 2018-1-12 13:14
这款板子怎么样?想买一块407的板子,可是找不到心仪的。

相对官方的板子这个主要优势就是便宜点,没啥外设就一个W25Q16的spiflash,但几乎所有的IO都引出来了,自己扩展模块还是很方便的。

zero99 发表于 2018-2-12 14:04:38

感谢分享,已汇总到1月技术原创https://www.stmcu.org.cn/module/forum/thread-614550-1-1.html

linjing_up 发表于 2018-7-2 18:21:33

楼主,你好。我的vet6板子烧了micropython的固件后,ctrl+D 软件复位不起作用,板子上的RST按键也时好时坏,你遇到过吗?是板子问题,还是固件啊

tysyhhn 发表于 2018-9-7 10:02:52

楼主能否分享一下,编译好的dfu文件,新手表示命令行真的搞不懂:'(

andeyqi 发表于 2018-9-7 11:17:27

linjing_up 发表于 2018-7-2 18:21
楼主,你好。我的vet6板子烧了micropython的固件后,ctrl+D 软件复位不起作用,板子上的RST按键也时好时坏 ...

板子让我搞坏了,好久不玩了,之前编译的东西不知道还能不能找到,回头找下看看能找到的话私信你。

月如意 发表于 2018-11-26 10:27:59

学习了,楼主。。。

willy926234097 发表于 2019-7-26 08:23:03

感謝分享!辛苦了!!{:2_29:}

胡巴丶咕咕 发表于 2019-8-14 13:17:08

楼主,我移植了之后,板子插到电脑上一点反应都没有,是不是还要修改串口?
页: [1] 2
查看完整版本: 【stm32f407vet6移植micropython】