在过去的几年里,Python 已经成为一种非常流行的程序语言。该语言是面向对象和解释(未编译)的,这导致它被许多平台(如 Linux、Windows)和单板计算机(如 Raspberry Pi)采用。随着如此广泛且不断增长的采用率,人们可能想知道 Python 在实时嵌入式系统中是否有一席之地。以下是嵌入式开发人员可能会发现 Python 在实时嵌入式系统中扮演的五个角色。
角色 1 – 设备控制和调试
在嵌入式软件开发过程中,开发人员经常发现自己在分析 USB、SPI 或 I2C 等总线流量。有时分析只是为了调试目的,但有时需要实际控制总线分析器并向嵌入式系统发送消息。许多总线分析器和通信工具具有可用于控制工具的用户友好界面,但它们通常还提供一种开发可用于控制工具的脚本的方法。 Python 是一种脚本语言,通常支持(有时是专门支持)与工具交互和控制。
角色 2 – 自动化测试
控制可以通过 Python 从嵌入式系统发送和接收消息的工具的能力为使用 Python 创建包括回归测试在内的自动化测试提供了可能性。可以开发 Python 脚本,将嵌入式系统设置为不同的状态,设置配置并测试系统与外部世界的所有可能的扰动和交互。使用 Python 进行自动化测试的一个优点是可以开发回归测试来不断测试和运行系统。任何导致错误或不一致的代码更改都会立即被发现。
角色 3——数据分析
在 Web 上简单搜索 Python 库会发现有许多免费可用且功能强大的库可用于开发 Python 应用程序。 Python 可用于接收关键的嵌入式系统数据,然后将其存储在数据库中或本地进行分析。嵌入式开发人员可以使用 Python 开发显示关键参数的实时可视化,或存储和保存这些参数以供以后分析。使用 Python 执行数据分析的好处在于,基础工作已经完成,只需投入使用即可。
角色 4 – 实时软件
Python 已经证明自己是如此强大且易于使用,以至于 Python 甚至正在进入实时嵌入式系统。是的,嵌入式软件本身是用 Python 而不是 C/C++ 编写的。最广泛使用的实时 Python 版本是 Micro Python 端口,旨在在 ARM Cortex-M3/4 等微控制器上运行。不过,Micro Python 并不孤单。 Synapse 和 OpenMV 等公司在嵌入式系统中使用 Micro Python 或他们自己的 Python 端口。
角色 5——学习面向对象编程
Python 是一种免费的编程语言,可以跨多个平台使用,并且易于学生和非编程类型学习如何编程。与 C 不同,该语言也是现代的,并且能够以自由形式的脚本类型方式或作为复杂的面向对象架构进行结构化。 Python 已被证明易于学习且用途广泛。甚至在某些情况下,没有编程经验的电气工程师能够使用 Python 编写有用的测试脚本或以最少的时间投入执行电路板检查。学习曲线并不陡峭,熟悉 Python 的开发人员发现它是一种易于切换的语言。
结论
学生和工程师越来越熟悉 Python 编程语言,该语言本身灵活、易于学习,并且可以适应在基于微控制器的环境中工作。当嵌入式开发人员看到 Python 出现并开始在嵌入式系统开发中发挥作用时,他们不应该感到惊讶。