MicroPython控制单片机

举报
云霄一天 发表于 2020/05/26 16:36:07 2020/05/26
【摘要】 MicroPython 约等于一个可以运行在微处理器上的 Python解释器,它使得我们可以编写Python脚本来控制硬件。

 MicroPython 约等于一个可以运行在微处理器上的 Python解释器,它使得我们可以编写Python脚本来控制硬件。

编程语言大致可以分为 解释型语言 和 非解释型语言。

解释型语言大多也称作为脚本语言,例如Python这类不需要编译的编程语言,我们可以在交互式的Python解释器环境中输入一行指令,执行一行指令,获得输出;也可以把写好的脚本文件一次性交给Python解释器去解释执行。

而非解释型语言典型的以 C 语言为例,这类语言编写的代码需要通过*编译器 *编译之后才能被执行。

编译型的C语言,需要用到编译器。

解释型的Python语言,需要用到解释器

我们编写的代码,无论C语言也好,Python语言也好,都是希望计算机去执行。但是计算机是机器,只能识别01构成的二进制代码。因此,为了让机器搞懂我们现在编写的C语言代码,或Python语言代码,都需要经过一番转换,才能变成计算机设备能够理解的,进而才能被正确执行。

   MicroPython是 Python 3 语言 的精简高效实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。MicroPython包含了诸如交互式提示,任意精度整数,关闭,列表解析,生成器,异常处理等高级功能。 足够精简,适合运行在只有256k的代码空间和16k的RAM的芯片上。MicroPython旨在尽可能与普通Python兼容,让您轻松将代码从桌面传输到微控制器或嵌入式系统。

应用展望

    金融智能卡COS系统利用JavaCard虚拟机实现了APPLET的跨平台应用。但是JavaCard标准规范由Oracle公司定制,具有一定的License费用。国内COS厂商每年都需要花费几千万元来获取JavaCard标准的使用权。为了减少这笔开销,COS厂商开始寻找新的技术来取代JavaCard虚拟机,比如Native方案等,但这虽然可以在一定的程度上解决了虚拟机的作用,但对于跨平台的应用实现还是无法彻底解决。

  物联网应用碎片化和安全性问题一直是阻碍其发展的主要原因,Micropython虚拟机技术理论上可以完全替代JAVACARD虚拟机,但缺少实用场景,并且其安全性也需要进一步证明论证。但从技术本身上看,Micropython虚拟机的确为物联网的应用开发提供了一种可能,如果有实际产品出现在市场上,经过物联网应用的进一步孵化,有可能会成为物联网领域的"JavaCard"。

工作原理

Micropython技术是依赖Byte Code的执行,在编译阶段就将py文件先转换成mpy文件,在通过mpy-tool.py生成Byte Code,Byte Code在执行时会依赖Virtual Machine入口表,找到对应的Module入口,最终找到对应的Funcion binary code执行。其中所有的Function都通过Dictionary的形式存储,而每一个Dictionary都有自己的QSTR,Micropython有buildin的QSTR和用户扩展的QSTR。具体流程可参考如下图:

  MicroPython虽然在很大程度上都能无缝的支持Python的语法,Python的理念,但是,由于MicroPython是设计运行在微处理器上的,所以他在某些方面实现了精简以此来保障性能。同时在某些地方,MicroPython和普通的Python解释器存在一些微小的差异,所以说约等于。但这丝毫不会影响学习并使用Python去控制硬件的乐趣。



 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。