RISC-VduinoDUEBoard新版支持Python3(MicroPython)编程,助力RISC-V初学者轻松玩转RISC-VMCU,采用最近发布的PuTTY0.77,实现MicroPython编写程序控制硬件RISC-VduinoDUEBoard板卡,实现HelloWorld开关LED灯效果。(肯定也支持控制小车或者传感器采集,后续分享。)
什么是Python?
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。
什么是microPython?
MicroPython包括在小型嵌入式开发板上运行的标准Python解释器。使用microPython,您可以编写Python脚本来控制硬件。例如,您可以使LED闪烁,与温度传感器通讯,控制电机并在互联网上发布传感器读数。值得注意的是,这种嵌入式设备的固件通常以汇编,C或C++编码,但是通过使用microPython,您可以获得与高级Python几乎相同的结果。
MicroPython与Python不同之处?
与桌面版本的Python不同,microPython是微控制器的精简版本。因此它不支持所有Python库和功能。在微控制器的领域里,固件都是直接刻录到ROM(也称为程序存储器),并且没有文件系统。microPython直接在微控制器的闪存上实现最精简的文件系统类型。如果设备具有1MB或更多的存储空间,那么它将被设置(首次启动时)以包含文件系统。该文件系统使用FAT格式,并通过microPython固件存储在闪存中。这为您提供了在主Python程序中访问,读取和写入文件的功能,以实现灵活存储操作。
MicroPython是基于Python3的精简且高效的编程语言,其中包括一小部分优化过、可以在微控制器和受限环境中运行的Python标准库。MicroPython可以运行在不同厂商、不同微控制器产品上,并且还是开源的,这让嵌入式开发人员可以随时根据自己的需求使用和定制,摆脱单一厂商、单一微控制器的束缚,极其灵活方便。
在这里,让我们了解一下使用MicroPython进行嵌入式软件的五个优势,这些优势用C语言很难或几乎不可能。1.人类可读的语言
任何编写过一行C代码的开发人员都知道,这种编程语言可以产生一些有史以来最神秘的软件。整个比赛都致力于编写令人困惑且无法理解的程序。Python是不同的,在开发时考虑到了可读性,Python易于阅读、易于编写,并且与其他语言相比具有较低的学习曲线。用于微控制器的微型Python形式的Python的缩放版本为快速原型制作提供了可能性,并为改进代码维护和可移植性提供了机会。2.内置异常和错误处理
C编程语言没有异常和错误处理。因此,嵌入式系统开发人员不得不创建自己的异常和错误处理解决方案。不过,MicroPython包含并扩展了Python的异常和错误处理。MicroPython的默认行为是在遇到错误时停止程序执行,打印出文件和行号,以便嵌入式开发人员轻松发现问题。使用try/except和try/except/finally块可以轻松覆盖MicroPython的默认异常和错误处理。就像在高级语言中一样,用try/except块包围一个块,如果发生异常,可以捕获并相应地处理它。该脚本将继续运行,处理异常,而用户没有注意到任何事情。3.开源和免费
MicroPython是开源的,并使用MIT软件许可证,这意味着它可以以开发人员认为合适的任何方式使用,开发团队可以获取最新版本并使用它运行。想要更大或更小的处理器?只需将MicroPython移植到该微控制器即可。主树提供了许多不同处理器和配置的示例。当然,如果开发团队喜欢分享,可以与社区分享改进并合并回主干。优点是获取和移植MicroPython是免费的,并且只需要很少的时间投入。4.面向对象语言
使用MicroPython填补了C编程语言中的许多空白,包括创建类和使用面向对象编程技术的能力。使用MicroPython的嵌入式开发人员可以利用现代编程结构,例如继承和多态。封装和信息隐藏可以轻松实现,无需太多努力。有些人会争辩说,这些相同的结构可以用C语言产生,这可以追溯到年,但事实是所需的时间和精力使这个论点变得可笑,并且实现非常容易出错。5.抽象出硬件层
MicroPython抽象出底层微控制器硬件的细节。开发人员无需担心位和字节,只需访问外围对象的方法即可控制硬件。硬件控制是通过专门的pyb库完成的。要控制LED,开发人员只需要创建一个使用LED引脚信息初始化的对象,然后打开或关闭LED就变成了访问对象的on和off方法的简单练习。硬件层的抽象使工程师可以专注于应用程序细节,而不是底层硬件的工作。结论
MicroPython是一种用于嵌入式软件的有趣语言,它可以为嵌入式开发人员提供一种新工具,用于快速构建嵌入式系统原型。MicroPython甚至可以为物联网或消费电子产品提供更短的开发路径。目前MicroPython支持的其他编辑器介绍:除了Python自带的IDLE编辑器之外,Python常用的编辑器还有:
PythonEditor
Pycharm(PyCharm:JetBrains为专业开发者提供的PythonIDE)
JupyterNotebook
VScode(VisualStudioCode)
Thonny(PythonIDEforbeginners)
PuTTY
目前MicroPython支持2种编辑模式介绍(1)默认为“交互式模式”(Shell模式)交互模式指的是直接输入一行代码或者命令,立刻就可以反馈运行结果的模式,也叫Shell模式;提示符为(2)专业为“脚本模式”,直接在交互模式中新建文件.py即可脚本模式指的是可以编辑多行命令,形成一个文件,然后运行文件的模式;没有提示符。,分享在PuTTY中使用MicroPython编写RISC-VduinoDUE程序代码。
原文转载自RISC-V单片机中文社区