全部文档
OneOS简介 硬件支持 编译构造工具 API参考文档 高级语言 用户编程手册 应用笔记 FAQ

MicroPython 简介

MicroPython是Python 3编程语言的一种精简而有效的实现, 其中包括Python标准库的一小部分的子集,并且经过优化可在微控制器和受限环境中运行。

MicroPython拥有许多高级功能,例如交互式提示,任意精度整数,闭包,列表解析,生成器,异常处理等。但是它足够紧凑,可以在256k的代码空间和16k的RAM中运行。

MicroPython的目标是与普通Python尽可能兼容,从而使您可以轻松地将代码从桌面传输到微控制器或嵌入式系统。

开源特性

MicroPython是用C99编写的,整个MicroPython内核可在非常宽松的MIT许可下可用于一般用途 。大多数库和扩展模块(其中一些来自第三方)也可以通过MIT或类似的许可证获得。

您可以自由地使用MicroPython并将其改编用于个人,教育和商业产品。

更多特性

MicroPython采用了许多先进的编码技术,并采用了许多技巧来保持资源占用小巧,同时仍具有完整的功能。

一些更显著的特性包括:

  • 由于有许多编译时配置选项,因此高度可配置
  • 支持许多架构(x86,x86-64,ARM,ARM Thumb,Xtensa)
  • 广覆盖的测试套件,包含590多个测试,以及超过18,500个单独的测试用例
  • 核心的代码覆盖率为98.4%,内核加上扩展模块的覆盖率为96.3%
  • 从上电到加载第一个脚本可以进行快速启动
  • 有一个简单,快速且健壮的堆内存标记清理垃圾收集器
  • 如果堆耗尽,则会引发MemoryError异常
  • 如果达到堆栈限制,则会引发RuntimeError异常
  • 支持以最小的延迟在硬中断上运行MicroPython代码
  • 具有错误回溯功能并可报告源代码行号
  • 在解析器/编译器中使用了常数折叠
  • 指针标记以适合机器字中的小整数,字符串和对象
  • 从小整数到大整数的透明过渡
  • 支持64位NaN-boxing对象模型
  • 支持不需要堆内存的30位填充浮点
  • 支持交叉编译器和冻结字节码,以拥有不占用任何RAM(它们创建的任何动态对象除外)的预编译脚本
  • 通过“ _thread”模块进行多线程处理,并带有可选的全局解释器锁
  • 直接针对机器代码而不是字节码虚拟机的本机发射器
  • 内联汇编器(当前仅Thumb和Xtensa指令集)

MicroPython 的系统框架

1

应用场景

MicroPython具备以下优势:

  • 语法与Python3相近,降低了上手的难度,实现同样的功能,不像C语言一样开发者需要具备很高的熟练度

  • 通过MicroPython对软件进行天然的分层,区分开了驱动层和应用层,使每一层的开发者都更关注于自己所在层的工作。驱动层只需要按照标准进行接口的提供,应用层只需要把关注点放在应用的实现上,分工和职能划分更加清晰。

  • 更加方便库的积累和脚本的积累,降低后续项目的开发难度,更多的复用使开发变得更加快速

因此在以下场景中可以发挥更大的作用:

新产品可行性验证

新产品开发通常需要经过可行性验证的阶段,通过可行性验证可以暴露一些调研阶段没有发现的问题。而新产品需要快速抢占市场,需要快速进行可行性验证,验证后快速进行新产品的正式开发阶段。MicroPython为快速进行可行性验证提供了可能,针对新产品的关键技术点进行快速的demo开发和功能的验证,可以相当大程度的加快新产品项目的整体进度。

硬件验证

硬件工程师在硬件初版完成后通常都需要先进行硬件各部分的验证,而硬件的验证又需要软件来驱动硬件的动作。由于C语言难度较高,一般硬件工程师都不具备相关验证软件的开发能力,整个验证过程都需要软件工程师配合硬件工程师的需求进行验证软件的开发。但是硬件工程师可以通过简单的学习快速上手MicroPython,通过编写一些脚本或者利用现有的一些脚本运行,整个验证过程可以硬件工程师一个人独立完成,减少了沟通成本,提高了硬件验证的效率。

编程教育

MicroPython 语法与Python3相近,非常便于上手,而且由于还具备了硬件底层的访问能力,在面向儿童编程入门教育、大中小学生计算机课程教育、编程爱好者进行的一些嵌入式项目上都具备相当的优势。用来学习的项目也不仅局限于pc端,而是类似智能小车、小型机器人这种对实际设备进行控制的一些好玩的项目,寓教于乐,在玩中不断提高编程水平,锻炼编程思想。

results matching ""

    No results matching ""

    返回顶部