任何有助于检测CPU端序问题的静态分析工具?

时间:2010-08-06 18:56:25

标签: static-analysis endianness

我们的团队已经在嵌入式大端CPU上管理了多年(10+)的代码库。 在开发和维护此嵌入式代码期间,我们通常不会考虑使用endian问题。

很快,我们将把这个代码库从一个大端CPU转移到一个小端CPU。

如果有人有任何特定静态分析或其他工具的经验来帮助完成此转换,我们很好奇。我们确实找到了英特尔提供的这份有用的白皮书,以帮助我们开始使用:

http://www.intel.com/design/intarch/papers/endian.pdf

谢谢!

3 个答案:

答案 0 :(得分:3)

Code Erity Solutions的同事Carl Ek最近为Dobbs博士写了一篇文章“用静态分析工具检测端点问题”:http://www.drdobbs.com/windows/226000073

答案 1 :(得分:3)

事实上,我在文章中没有提到任何具体的工具。它旨在让读者了解如何解决问题。英特尔论文中的一般规则很好,但是它们非常通用,因此可能会遗漏许多特定的事情,这些事情可以在针对单个客户的代码库和编码标准规则的自定义检查中强制执行。英特尔论文中的这些检查可以(大部分)在Coverity的Static Analysis SDK和Klocwork的Checker Studio中实现。我确信Semantic Designs' DMS 在此检测中也非常有效:)。具有静态分析工具的可扩展性非常重要:编码问题可能非常微妙,任何罐装开箱即用检测都可能非常嘈杂。具有流/路径敏感分析也是期望的,因为端序处理通常可以基于(可能)静态可分析/可检测的条件用保护/条件保护。 --carl

答案 2 :(得分:1)

Klocwork在其最新版本中引入了Endian分析(披露:我在那里工作)。完整的程序间分析,以确保在从/向网络或主机发送/接收时存在转换点。这里的技术白皮书更详细地解释了它。

http://www.klocwork.com/resources/endian-deadlock-multicore-challenges/

祝你好运! -Brendan