0

我当前的项目要求我读取存储在配置文件中的数据并从中生成硬件抽象层代码。配置数据结构以低级方式描述数字硬件(具有寄存器/位域的组件、上电复位值等)。根据这些数据,我需要自动生成可供其他应用程序开发人员使用的 Python 代码,以便在其之上编写应用程序。就像我之前说的,这个想法是为更高级别的应用程序提供 HAL。

我的问题是:你会用什么方法来解决这个问题?对我来说,使用 Python 作为代码生成器感觉很自然。我不知道是否有更好的工具来完成这项任务(yacc/bison?)。我的设计理念是让静态程序组件重新分配并处理通信处理、日志记录和所有通用的东西。其他依赖于硬件的组件将完全自动生成并使用静态组件的 API。

4

1 回答 1

0

您要做的是使用程序转换系统(PTS)

这些工具/框架接受一种或多种计算机语言的描述,然后允许您编写将一种语言映射到另一种语言的规则。在您的情况下,您希望为硬件的“配置文件”定义一种语言,并编写将配置文件的各种模式映射到 Python 代码片段(可能是声明,可能是语句,可能是函数集)的规则,这些代码片段提供您的所需的硬件 API。

坚持 PTS 使用 Python 只会将您的选择限制在几乎空集,除非您认为您将自己构建 PTS。那也不会发生。认为使用解析器是一个很好的步骤是正确的,但这只是真正可行的解决方案的一小部分;请参阅我关于解析后的生活的文章,了解您为什么想要完整的 PTS。

于 2016-10-01T13:51:01.353 回答