用c型号替换装配codeprover

3视图(30天)
斯坦Heselmans
斯坦Heselmans 2018年2月28日
编辑: 马特·罗兹 2018年6月29日
在我们的嵌入式软件,我们有一些装配库(组授予了文件,但也内联asm在其他c / h文件)来执行数学计算。我们知道codeprover不能处理这些,所以我们想用C-models取而代之。我们创建了一个组c文件,实现这些模型。
有办法告诉codeprover取代这些asm-functions C-models的分析?

答案(1)

马特·罗兹
马特·罗兹 2018年6月29日
编辑:马特·罗兹 2018年6月29日
嗨斯坦-
有几个选项。你使用哪个取决于代码构建和链接,以及你是否被允许做任何修改。您可能需要使用不止一个人在同一时间。
  1. 只是把它:由于您的构建与一些其他的文件链接,和你有头的函数调用. h文件,您可以添加C版本的这些功能通过添加这些文件的来源列表来验证。没有定义,函数得到的。当你加入他们,没有理由存根,它将使用C版本。
  2. 交换的定义:组装包装的功能,如果他们被孤立于其他non-assembly代码,您可以简单地提供不同的C文件C定义验证期间,离开与组装版本定义。在某些情况下,可能会内联定义你的头文件。希望不是因为这是最佳实践。如果是这样的话,你可能会添加一个额外的-包括路径,更高的优先级列表,所以替代定义发现Polyspace验证。如果头文件有太多不相关的大会,你可能不会想切换它们。在这种情况下,然后接下来的两个选项之一可以帮助。
  3. 条件编译:如果你可以修改你的代码,另一种方法是添加条件编译指令。有些人会使用POLYSPACE宏,虽然我谨慎使用一个装配的情况下,你需要添加其他,比如POLYSPACE_ASSEMBLY_ALTERNATE或类似。如果你可以采取这种方法,很多人喜欢它双打作为一种进一步的文档装配的目的。
  4. 预处理程序处理后:这个选项是最小的侵入性的手段提供替代定义当你不能修改源文件。太多的解释如果你不使用它,所以请参考文档页面,命令/脚本适用于预处理文件(-post-preprocessing-command)
  5. 金宝app支持和应用工程师:最后,如果你还需要帮助,我会鼓励你向支持或问你的账户代表让你接触到当地Polyspace应用工程师来帮助你。金宝app