【发布时间】:2017-06-23 10:10:01
【问题描述】:
上下文:
我正在尝试使用 Keil 自动执行嵌入式开发中的一些更普通的任务。我的目标是在 Keil 项目中单击构建将运行一个预构建步骤,该步骤通过 Uncrustify(源代码美化器)运行所有代码,以确保它符合公司风格指南,以及一个帖子-build 步骤,然后通过 pc-lint(静态代码分析器)运行代码以突出显示它可能找到的任何潜在不安全代码。我编写了一个 PC 实用程序,它在 .uvproj 文件中搜索#define 宏、包含路径和文件路径,所有这些都是这两个工具所需的,然后修改构建前和构建后的用户命令以调用我的批处理文件将管理这两个步骤。 uncrustify 部分工作正常,lint 部分产生一些合理的信息,但信噪比不是很好。
我的问题:
Lint 不断生成似乎与 Keil 编译器知道的宏相关的消息,但 Lint 不知道。我正试图找到一种方法来填补这个空白。我在 Keil 网站上找到了一个 table of predefined macros 记录,这似乎是一个好的开始,但与其手动将它们复制到静态 .lnt 文件中,我想找到一种方法来获取最新值项目建成的时间。这样,例如,每当开发人员更新他/她的 Keil 编译器时,“__ARMCC_VERSION”宏就会被更新,而不是在我手动复制它时卡在某个时间点。
如果有人可以直接回答我的问题,我会很高兴,但如果有人对我可以尝试的更直接的替代方法提出可行的建议,我会同样高兴。非常感谢!
【问题讨论】:
标签: lint keil predefined-macro