[MM32硬件]

移植micropython最小工程到mm32f3270微控制器

[复制链接]
568|13
手机看帖
扫描二维码
随时随地手机跟帖
xiyaoko2365|  楼主 | 2022-7-30 22:53 | 显示全部楼层 |阅读模式
Introduction
micropython v1.6发布已经有一段时间, 相比于之前的v1.3, 在内核中增强了一些功能并修复了一些bug, 支持的芯片也多了一些. 特别注意的是, micropython除了对STM32继续投入主要支持资源的同时, 加强了对NXP MIMXRT支持资源, 在MIMXRT移植的micropython大量增加了新的模块.


使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 22:55 | 显示全部楼层
完成的changelog可见:

https://micropython.org/resources/micropython-ChangeLog.txt

这里面比较让我惊喜的是, 我竟然发现了SAMD的CM0P内核的微控制器. 从changelog上看, 实际在v1.2就已经支持了Microchip SAMD的CM4和CM0, 并且后续并没有继续更新, 但我之前的重点都在CM4F上, 并没有特别关注它. 但目前我手上只有CM3内核的芯片, 这让我不得不再看看CM4F和CM7F之外的移植. 既然CM0P也能支持(实际上circuitpython就是针对CM0P平台的衍生版), 那么CM3从理论上讲也是可行的.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 22:59 | 显示全部楼层
我在之前对micropython的开发经历中, 已经移植过NXP KE18F(CM4F, micropython v1.3)和NXP LPC5500(CM33, micropython v1.4), 这次移植到MindMotion MM32F3270平台, 还是遵循老套路.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:00 | 显示全部楼层
初试micropython v1.6
从micropython官网上下载代码包, 而不是从github上clone代码仓库. 这是因为之前的代码仓库中引用了很多submodule, 有一些submodule的地址已经失效了(例如lwip), 所以总是不能下载到完整的代码仓库. 但是从changelog上看, 至少关于lwip的引用地址已经改到了github上的镜像地址, 似乎已经解决了部分无效外链仓库的问题.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:00 | 显示全部楼层
在Windows 10上搭建好Linux的工作环境, 参见我之前的文章, https://blog.csdn.net/suyong_yq/article/details/112797556 , 准备好msys2, make, python3, gcc和armgcc编译器.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:02 | 显示全部楼层
先编一下mpy-corss, 无误.

再编一下minimal试试. 原本只是手贱, 做个double check, 结果竟然真的报错 !!!

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:02 | 显示全部楼层
4071062e54806a74bd.png

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:03 | 显示全部楼层
原版代码报错, 还是在python内核里, 我自问目前还没有闲心调python内核. 只能寄希望于内核更新没有同步到minimal工程的makefile里. 但无论如何, 可以用来做最小工程的参考样例少了一个, 同时, 我的心中也飘过一道阴霾, 颇有点出师不利的兆头.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:04 | 显示全部楼层
那就再试着编一下bare-arm, 心惊胆战啊. 还好, 编过了.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:06 | 显示全部楼层
5650462e548ed760ee.png

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:07 | 显示全部楼层
继续随手编几个工程. stm32的不用编, 那是micropython投入支持资源最多的, 我不想耽误时间, 毕竟编一次micropython还是挺长时间的. 试试mimxrt和samd的, 都没有报错. 终于拉高了点平均分.

使用特权

评论回复
xiyaoko2365|  楼主 | 2022-7-30 23:08 | 显示全部楼层
我通常会找一个比较简单的工程作为模板开始移植, minimal已经阵亡了, MIMXRT的移植工程里增加了很多模块, 代码也扩充得比较复杂, 不再适合作为模板了. 我特别留意了SAMD的移植工程, SAMD移植的main.c代码结构同MIMXRT很像, 看来除了早期的STM32, 后来增加的移植都已经开始建立开发规范. SAMD移植的文件组织结构也同MIMXRT保持一致, 在ports目录下还有boards文件夹, 然后是各个板子相关的代码. 既然已经有了这样的规范, 那么这次我在移植MM32的时候也尽量遵循规范.

使用特权

评论回复
liu_33| | 2022-8-1 16:28 | 显示全部楼层
如果移植到32F103系列,那会大放异彩。借助以前的开发资料,开发模式可能都会被颠覆。每年搭载MICROPYTHON的产品可能超过亿级别。现在的2040价格可以,外围性能还是有点弱了。

使用特权

评论回复
wangshujun| | 2022-12-22 10:26 | 显示全部楼层
这个源码在哪里呢?看了一下没看到移植的源码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

356

帖子

0

粉丝