micropython运行机制

MicroPython 内部运行机制
  MicroPython 是把 .py 文件当作一个模块在导入模块执行时, 会将此模块当作一个字节码对象 PyCodeObject, 而不是 .pyc 文件因为在 Python 世界里, 一切都是对像, 类也是对像1在程序
运行期间, 编译的结果 PyCodeObject 只会存于内存中, 而当这个模块的 Python 代码执行完后, 就会将编译的结果保存到. pyc 文件中, 下次运行时直接加载到内存中使用. PyCodeObject 包含了Python 源码中的字符串常量值及解析后编译生成的字节码指令

  .pyc 文件也称作字节码文件, 因为它存储的是一些二进制的字节数据一个.pyc 文件包含了3 个部份的信息: magic number 信息文件创建的时间信息以及 PyCodeObject 对象前面提到当已经存在 .pyc 文件时, 就可以直接载入而省去编译过程但是代码的内容会更新, 如何保证更新后能重新编译而不入旧的 .pyc 文件呢? 当执行导入指令时, 如果存在 .pyc 文件, MicroPython 会自动检查代码的创建时间, 并使用最新的 .pyc 文件
.py 文件被编译后, 接下来的工作就是由 MicroPython 虚拟机来执行字节码指令了

  在 MicroPython 中主要使用标记清除的方式来实现垃圾收集, 不存在内存泄露的风险。
       使用 MicroPython 中自定义的 pyb 类就能够实现对控制器底层设备进行快速访问。还提供一个 C 应用程序接口和简单易用的硬件抽象层, 实现对微控制寄存器进行访问。

整体代码运行流程如图 3 所示





原文地址:https://www.cnblogs.com/jieruishu/p/15576072.html