首页 / 知识
关于C#:嵌入式软件的Misra标准
2023-04-15 08:44:00

Misra standard for embedded software
我要求制作大量符合MISRA标准的代码。 我也强烈推荐PC-Lint。如果您正在使用Visual Studio编译代码,我建议使用Riverblade中的插件"Visual Lint"。如果无法在Visual Studio中编译代码,仍可以从命令行运行PC-Lint,效果很好。 一些嵌入式系统编译器提供MISRA一致性测试作为编译器警告。我使用IAR编译器进行Arm7 / Arm9开发。它在编译器设置中提供了易于配置的MISRA合规性检查表。 很难想出一个经验法则来估计你需要花时间编写符合MISRA标准的代码。很大程度上取决于程序员现有的编码习惯以及他们首先遵循MISRA规则的程度。
粗略估计: 如果您遵循相当好的编程习惯,那么使代码符合Misra并不是太多的苦差事。你可能会发现一些指针规则有点棘手,如果你试图遵守的代码有一些奇怪而精彩的指针算法。 我是第二个Greg对PC Lint的建议,但开源Splint也值得关注,虽然它们之间(和编译器的警告系统),我估计你仍然只能覆盖Misra规则的80% - 其余的可能需要手工检查代码。 我使用PC Lint进行C和C ++代码的静态分析。它可以配置为显示违反MISRA规则的内容,并且具有命令行界面。 我们有一个类似的改造米斯拉规则的问题。我们在一个大型项目中遇到了一些代码质量问题,并决定使用MISRA来提高代码质量。 我们使用支持MISRA C规则的Green Hills编译器。还有独立的跳棋可用。根据你想要做的事情,它可以在所有规则上切换。我们一次切换一条规则,让人们有时间修复有限数量的类似问题,否则你会被错误的数量完全淹没。 由于我们的警告是由编译器生成的,而不是由独立工具生成的,因此您在开发时会看到错误,而不仅仅是在运行检查程序时。随着我们不断发展,我们的代码符合标准而不是大爆炸。这也可以防止旧习惯破坏新代码,导致您不得不再次重新编写代码。 有时很难让旧代码兼容,因为没有人确切知道代码是如何工作的。我希望你有单元测试。 我使用了一种名为QAC的商业工具。该工具能够强制执行MISRA 它有一个命令行界面,因此您可以将其设置为从自动构建环境运行。要应用的规则是可配置的,但希望有人花一些时间来设置它。 MISRA执法非常简单,运作良好。我被告知(这只是第三手),这是一些代理商(如FDA)用来评估代码的工具之一。像大多数静态分析工具一样,有噪声(误报)需要处理。我最后一次使用它时,没有很好的方法来标记/阻止误报再次发生(不改变它所抱怨的代码)。 我怀疑一名初级工程师需要花费一周时间(4-5天)才能完成设置(假设他们决心让它按照您的意愿运行)。 另外,其他商业静态分析工具也可能具有MISRA执行功能。据报道(根据他们的销售代表),Klocwork确实如此。 我很欣赏这是一个古老的问题,但为了任何其他考古学家(或搜索者)的利益,重要的是要记住MISRA提供的指导方针不应该盲目地遵循。 我赞扬用MISRA编写新代码; 因此,保持合规将更容易。 但是,这并非总是可行 - 尤其是在尝试对代码进行逆向工程以满足指南时。 在这种情况下,我建议您关注所需的规则,并将Advisories视为奖励......此处也适用成本效益! 另外,请记住,有一个偏离过程 - 最好保持干净和可维护的代码有偏差,而不是设计一些兼容但难以辨认的意大利面条。 |
最新内容
相关内容
linux命令行输入汉字?
linux命令行输入汉字?,系统,软件,发行,管理,终端,命令,模式,编辑,文件,文本,Linux命令行可以用什么中文输入法1、fbterm的话,加上ucimf就行了。linux开启终端命令行?
linux开启终端命令行?,密码,系统,电脑,终端,首页,工具,软件,命令,权限,用户,linux系统的cmd在哪里启动啊?打开方法:开始-所有程序-附件 或 开始linux命令下载工具?
linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文件,Linux下多线程下载工具MWget和Axel使用介绍1、wget是linux下一linux命令行重命名?
linux命令行重命名?,图片,名字,名称,软件,代码,文件,命令,文件名,批量,方面,Linux下批量修改文件名1、Linux下修改文件名有mv和rename。 其中mlinux命令行3中文?
linux命令行3中文?,工作,地址,系统,信息,标准,命令,目录,网上,功能,内核,linux常用的命令有哪些linux系统常用操作命令如下:ls:全拼list,功能是列linux命令行进入图文?
linux命令行进入图文?,系统,密码,终端,电脑,网络,传播,情况,图形界面,命令,快捷键,linux如何从命令行切换到图形界面1、Ctrl+Alt+F1进入linuxlinux命令行交互界面?
linux命令行交互界面?,系统,密码,状态,终端,信息,工具,环境,情况,首页,界面,linux怎么进入字符命令界面?1、打开linux系统,在linux的桌面的空白linux怎么调用命令行?
linux怎么调用命令行?,系统,地址,工具,工作,首页,终端,命令,密码,信息,情况,linux怎么打开命令行窗口1、在Linux系统中,打开命令行窗口需要使用linux命令行权限不够?
linux命令行权限不够?,档案,系统,权限,密码,文件,命令,终端,目录,文件名,用户,linux权限不够怎么办1、打开linux系统,在linux的桌面的空白处右linux查看命令行进程?
linux查看命令行进程?,系统,软件,信息,状态,进程,名称,实时,命令,数据,电脑,怎么查看linux进程名称linux 下查看进程可以使用的命令:ps命令查找linux命令行大全软件?
linux命令行大全软件?,系统,工作,软件,地址,信息,管理,官网,命令,工具,基础,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命linux好用的命令工具?
linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,Linux系统中进行磁盘管理的常用命令有哪些?分别有什么功能Linux磁