移植micropython最小工程(补充)-移除frozentest.mpy

在最小移植中移除对frozentest.mpy的依赖
过年回家继续写micropython的开发笔记. 原来开发用的电脑没带在身边, 就在家里的电脑重新搭建micropython的开发环境. 自然还会遇到很多老代码中显式使用"python3"的情况. 在调试过程中发现, build过程中对mpy-tool.py有依赖, 但怎么改都绕不过去, 不记得在原来的开发主机上怎么改通的, 只好换个思路再看看.

分析makefile文件发现, mpy-tool.py是要处理frozentest.mpy文件的. 之前在做最小工程的时候就想把frozentest.mpy文件从最小工程中移除, 这个文件是在build过程中预先包含py代码的, 对目前的最小工程没啥意义. 我意识到mimxrt的移植中就没有包含mpy文件, 因此针对这个点简单看了一下mimxrt的代码.

中间省略分析过程的描述, 直接说解决操作:

使用了mimxrt移植的mpconfigport.h中的内容替换当前的移植. 说实话我也不知道这里很多配置是怎么确定的, 就是使用就近原则, 配合代码调试追踪, 逢山开路见水搭桥, 需要加啥就加啥. 但是直觉这里面可能有一些同build-in模块相关的选项起了作用.

在makefile中移除同frozentest.mpy相关的内容:

从makefile文件中可以看到, "$(BUILD)/_frozen_mpy.c"文件是通过向mpy-tool.py工具传入frozentest.mpy, 在build过程中自动生成的. 删除相关的make环节之后, 在最小移植中不需要管mpy-tool.py中的"python3"问题, 同时 也可以在移植项目的根目录下删除frozentest.py和frozentest.mpy这两个不相干的文件了.

PS:

但是, mpy-tool.py和*.mpy的机制本身是很有用的, 特别是在产品进入量产的时候. 需要在量产firmware中集成py源文件的操作, 通过mpy-cross编译器在开发主机上将*.py文件编译成*.mpy文件, 然后在make环节通过mpy-tool.py工具整合到最终的firmware中.

"python3"的问题迟早还是要解决, 这是micropython本身build工具链对python使用的问题, python2的用户越来越少, python3已经逐渐变成默认的python. 类似的问题在linux上很好解决(只要创建一个软连接就可以搞定), 但这终归是一个工具链兼容性的问题, 需要micropython的开发者在tools目录下解决问题, 移植开发者无法在ports目录下搞定. 总之, 希望后续的版本中会有相关的更新吧.
 

 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值