Python 已经成为相当热门的程序语言。它以着名的 MontyPython 喜剧组命名,属于物件导向和解释型语言 (非编译型) 。该属性使得 Python 具有良好的跨平台性,比如 Linux 和 Windows,或是诸如 RaspberryPi 等单板计算机。随着 Python 的日益普及,人们可能会问,在实时嵌入式系统中是否也有 Python 的一席之地。
答案是肯定的。下面是开发人员发现 Python 在实时嵌入式系统开发中有可能扮演的五个主要角色。
1 、装置除错和控制
在嵌入式软件开发过程中,开发人员常常需要分析汇流排通讯量,如 USB 、 SPI 或 I2C 。有的分析仅仅是出于除错目的,但有时则需要控制汇流排分析仪并传送资讯至嵌入式系统。许多汇流排分析仪和通讯工具都有友好的多用户介面,可以用来控制工具。他们通常还提供一种方法来开发指令码,也可以用来控制工具。 Python 是一种普遍支持的指令码语言,有时则是一些工具的介面,或是用来控制工具。
2 、自动化测试
通过 Python 控制工具在嵌入式系统中传送和接收信息的能力,使得利用 Python 构建自动化测试 (包括回归测试) 成为可能。 Python 指令码可以设定嵌入式系统进入不同的状态,设定配置档案,并测试所有可能的干扰以及系统与外部环境的相互作用。使用 Python 开发自动化测试的好处是,回归测试可以开发持续测试并训练系统。任何的代码变动导致的 bug 或不合格的结果都将被实时的检测出来。
3 、资料分析
通过 Web 简单地搜索 Python 库,您会发现,有许多免费强大的 Python 库都可以用来开发应用程序。 Python 可以用来接收非常重要的嵌入式系统资料,然后储存到资料库或是本地进行分析。开发者还可以使用 Python 开发实时视觉化功能来展现临界引数,或是储存这些引数用于后续分析。使用 Python 进行资料分析的优点之一是当基础性工作完成之后,新功能的植入会显得比较简单。
4 、实时软件
Python 已经证实了自己的强大性和易使用性,甚至发现它是作为一门程序语言进入实时嵌入式系统。是的,嵌入式软件本身就是用 Python 写的而不是 C/C++。用于实时软件广泛的 Python 版本是 MicroPython,大多是设计在 ARMCortex-M3/4 微控制器上执行。 MicroPython 并不孤立。 Synapse 和 OpenMV 公司在嵌入式系统中既使用 MicroPython 也使用他们自己的 Pythonport 。对 MicroPython 感兴趣的读者可能对 DesignNews(EDN 的姐妹机构) 的继续教育课程也感兴趣。
5 、学习物件导向程序设计
Python 是一门免费的程序语言,可以跨多个平台使用,对于学生和非程序设计人员而言比较简单。该语言与 C 语言不同,它也是现代式的,并且可以在自由形态的指令码型别中结构化,或是作为一个复杂的物件导向的体系结构。 Python 本身也很灵活。甚至还有这种情景:没有程序设计经验的电气工程师可以利用 Python 写出有用的测试指令码或用少的时间实施电板检查。
Python 的学习曲线并不陡峭,熟悉 Python 学习曲线的开发人员发现,当您有了其它语言的基础之后,学习 Python 比学习任意其他的程序语言都要简单。出于这些原因,当开发人员看到 Python 扮演着程序设计孵化器角色,并吸收其它缺乏经验的工程师对宜早不宜迟的设计周期做出贡献时,不应该感到惊讶。