前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >microPython源码分析.1

microPython源码分析.1

作者头像
云深无际
发布2021-04-14 10:39:42
1.4K0
发布2021-04-14 10:39:42
举报
文章被收录于专栏:云深之无迹云深之无迹

我最近写了很多microPython的程序,越写越回不到写C的日子。你说在这个背后是如何实现这一切的?为什么在烧录一个几百kb的bin文件之后就会获得这些魔法效果?我可不可以把这种魔法效果移植到别处呢?我找了很久,零零碎碎的,而且大多数文章都是适可而止,让我很难受。。。我想所有的一切都可以在源码中获得。我们将会在这个过程中学到什么:

  1. 交叉编译技术
  2. 环境搭建技术
  3. c模块编写
  4. py接口编写
  5. 代码组织
  6. 内在原理
  7. 驱动移植
  8. 待续

这里

mpy最早是在stm32上面实现的,后面是移植到各种的平台上面。我这次的硬件想使用ESP32,说说一些我的取舍,首先是资料丰富,各种层次的资料都比较齐全,而且是官方是比较积极的在更新。第二点的取舍是功能丰富,我们可以看下面这个功能的框图.其次是很便宜,一个最小的裸片才不到15块钱(不说s2的型号),集成USB,下载这些的功能的板子是20块钱以里。学习的硬件条件很便宜。

整个过程是阅读为主,所以需要一款文本阅读器。要求首先是要可以搜索,然后就是最好可以把里面的函数对象和宏定义的对象显示出来。我这里先使用VSCode来读,当不满足需求的时候来搭配其它的软件读取。

功能框图

代码语言:javascript
复制
https://www.espressif.com/zh-hans/products/socs/esp32
代码语言:javascript
复制
https://github.com/micropython/micropython
代码语言:javascript
复制
https://micropython.org/
代码语言:javascript
复制
https://micropython.org/download/
代码语言:javascript
复制
https://micropython.org/download/esp32
代码语言:javascript
复制
https://www.espressif.com/zh-hans/support/documents/technical-documents

对于一些芯片上面的寄存器的信息,在这里有

代码语言:javascript
复制
https://github.com/micropython/micropython-esp32
代码语言:javascript
复制
https://github.com/micropython

在官方的仓库里面有几个仓库

现在是只有一个主库在维和,剩下都是在历史仓库

可能研究使用

这个库是几年前的一个历史库

代码语言:javascript
复制
git clone https://github.com/micropython/micropython-esp32.git

我们可以执行上面的这个命令来拉取一份库文件

可以看到最后的一次修改在18年

我们都21年了

这里前后两个库都放在这里

这个地方是代码的组织形式

在doc里面有说明

py的这个目录是mpy的c实现,我们之后会重点的读

一共167个文件

这个目录是:用于将脚本转换为预编字典的微型Python交叉编译器

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档