microPython源码分析.1
我最近写了很多microPython的程序,越写越回不到写C的日子。你说在这个背后是如何实现这一切的?为什么在烧录一个几百kb的bin文件之后就会获得这些魔法效果?我可不可以把这种魔法效果移植到别处呢?我找了很久,零零碎碎的,而且大多数文章都是适可而止,让我很难受。。。我想所有的一切都可以在源码中获得。我们将会在这个过程中学到什么:
交叉编译技术
环境搭建技术
c模块编写
py接口编写
代码组织
内在原理
驱动移植
待续
这里
mpy最早是在stm32上面实现的,后面是移植到各种的平台上面。我这次的硬件想使用ESP32,说说一些我的取舍,首先是资料丰富,各种层次的资料都比较齐全,而且是官方是比较积极的在更新。第二点的取舍是功能丰富,我们可以看下面这个功能的框图.其次是很便宜,一个最小的裸片才不到15块钱(不说s2的型号),集成USB,下载这些的功能的板子是20块钱以里。学习的硬件条件很便宜。
整个过程是阅读为主,所以需要一款文本阅读器。要求首先是要可以搜索,然后就是最好可以把里面的函数对象和宏定义的对象显示出来。我这里先使用VSCode来读,当不满足需求的时候来搭配其它的软件读取。
功能框图
https://www.espressif.com/zh-hans/products/socs/esp32
https://github.com/micropython/micropython
https://micropython.org/
https://micropython.org/download/
https://micropython.org/download/esp32
https://www.espressif.com/zh-hans/support/documents/technical-documents
对于一些芯片上面的寄存器的信息,在这里有
https://github.com/micropython/micropython-esp32
https://github.com/micropython
在官方的仓库里面有几个仓库
现在是只有一个主库在维和,剩下都是在历史仓库
可能研究使用
这个库是几年前的一个历史库
git clone https://github.com/micropython/micropython-esp32.git
我们可以执行上面的这个命令来拉取一份库文件
可以看到最后的一次修改在18年
我们都21年了
这里前后两个库都放在这里
这个地方是代码的组织形式
在doc里面有说明
py的这个目录是mpy的c实现,我们之后会重点的读
一共167个文件
这个目录是:用于将脚本转换为预编字典的微型Python交叉编译器
下
赞 (0)