我当前的项目要求我读取存储在配置文件中的数据并从中生成硬件抽象层代码。配置数据结构以低级方式描述数字硬件(具有寄存器/位域的组件,上电复位值等)。根据这些数据,我需要自动生成可供其他应用程序开发人员使用的Python代码,以便在其上编写应用程序。就像我之前说的那样,我们的想法是为更高级别的应用程序提供HAL。
我的问题是:解决这个问题的方法是什么?对我来说,使用Python代码生成器是很自然的。我不知道是否有更好的工具可以完成这项任务(yacc / bison?)。我的设计理念是让静态程序组件重新分配,并处理通信处理,日志记录和所有通用的东西。依赖于硬件的另一个组件将完全自动生成并使用静态组件的API。
答案 0 :(得分:0)
您要做的是使用Program Transformation System (PTS)。
这些工具/框架接受一种或多种计算机语言的描述,然后允许您编写将一种语言映射到另一种语言的规则。在您的情况下,您希望为您的硬件定义“配置文件”的语言,并编写将配置文件的各种模式映射到Python代码片段(可能是声明,可能是语句,可能是函数集)的规则。所需的硬件API。
坚持使用Python的PTS只会将你的选择限制在空集中,除非你认为自己要构建PTS。这也不会发生。认为使用解析器是一个很好的步骤是正确的,但它只是真正可行的解决方案的一小部分;请参阅Life After Parsing关于你为什么想要一个完整的PTS的文章。