【问题标题】:Another approach to making changes in C source code with python?使用 python 更改 C 源代码的另一种方法?
【发布时间】:2020-03-04 15:41:03
【问题描述】:

我的任务是创建一个 (python) 脚本,该脚本将禁用我们源代码中的一项功能。该代码是通过第三方配置软件生成的,通过该软件,GUI 允许更改设置以禁用此功能。这些更改需要付出努力和时间来生成,因此需要脚本。 从理论上讲,头文件中有一堆标志(即#define thisFeature STD_ON),我可以使用脚本轻松翻转它们。

比较难的部分是源文件的改动,其中一些功能是由第三方配置软件添加/删除的。这些将来可能会发生变化,因此我需要考虑一个仍然可用的解决方案。我无法更改第三方应用程序的代码,因为我需要避免需要时间的生成过程。我需要进行更改,以便在我们构建产品时进行所需的更改并进行编译。任何建议都会很棒。

【问题讨论】:

  • 我不确定你到底要做什么。我认为包含示例将非常有益。

标签: python c embedded autosar


【解决方案1】:

您将引入假设,当它们失败时会变成未来的错误,或者最终重新实现 AUTOSAR 生成器。他们的观点是允许在供应商完全控制静态代码和生成代码组合的情况下实施配置的系统。

无论哪种方式,当您需要更新所提供的组件时,您将比使用交付的组件时遇到更多麻烦。

所以恐怕答案是“没有”。 (即别无选择)。
您可以对您的系统做出假设,并在这些假设内创建一些可以实现短期目标的东西。
但从长远来看,决定在您的项目中使用 AUTOSAR 的人都是这样做的,原因是您在使用官方生成器时会失败。
因此,迟早,您现在付出的努力会白费,最终可能会造成比您可能获得的短期收益更大的损害。

【讨论】:

  • 是的,这就是我的想法。谢谢。我认为我们将进行一些有据可查的短期更改,如果对需要更改的内容进行任何更改,则会引发错误
  • 这似乎是对更新时可能出错的问题的合理缓解。考虑用这个概念自己回答。
  • 注意,我们考虑了另一种选择,即归档生成的文件并在输入文件(配置、SWCD、生成器...)不变的情况下重复使用它们。然而,我们没有这样做,因为我们的分析指出,如果输入文件和归档生成的文件不一致,则可能会出现更严重的错误和更难的调试。我们的风险/努力/速度平衡指向始终生成,从不存档。我不考虑这部分答案,因为我相信我们的决定。但是想在这里提一下。
  • 我们用于 AUTOSAR 的工具以某种方式支持工作流和脚本以自动执行任务,甚至允许从命令行执行。也许在 ARXML / config 文件中启用/禁用每个脚本的功能要容易得多,然后从命令行重新生成和编译,例如通过 CI 系统构建。
  • @kesselhaus 确实如此,而且通常适用于所有工具集(尽管有些工具集提出了相当大的阻力)。然而,关键是,无论您如何进行更改(从 GUI 或通过脚本或通过简单地使用不同版本的输入文件),之后总是需要生成。那一代的持续时间是个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多