c - MISRA-C适用于Linux应用吗

标签 c embedded embedded-linux misra

我了解 MISRA-C 标准适用于嵌入式固件。当嵌入式 Linux 是您的产品平台时,您的嵌入式应用程序能否/应该开​​发为符合 MISRA-C 标准?有没有人考虑过这样的练习?

我的一般感觉是,您必须首先了解所有“规则”,然后在设计/编码阶段应用它们。可能存在系统调用 (pthread_create) 和 void* 等需要强制遵守的实例 - 产生难看的代码。

最佳答案

虽然 MISRA-C 最初是作为汽车和安全关键型应用的标准创建的,但现在已不再如此。如今,MISRA-C 更像是一个通用标准,可用于任何不需要错误、崩溃和可移植性问题的 C 程序。

您需要问问自己为什么要使用 MISRA-C。是因为您希望将其用作消除错误的编码标准,还是因为该应用程序具有关键任务性质?

对于 Linux 案例,主要问题是您是否只让自己的代码符合 MISRA 标准,或者您是否要求所有包含的库也符合要求。而且你根本无法使 Linux 内核+库 MISRA 兼容,你必须从头开始重写 Linux。

这使得 Linux 不适合用于关键任务软件。但是如果您的程序不是关键任务性质的,您应该能够使用 Linux。您可能需要提前写出一些与 MISRA-C 的常态偏差,因为您可以判断的事情会导致问题。

关于c - MISRA-C适用于Linux应用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29951591/

相关文章:

c++ - 如何从表示 usec 时间的 32 位 int 转换为表示时间的 32 位 int(以秒为单位的二进制分数)?

network-programming - LwIP - netconn API - 在进程被阻塞时发送 TCP 数据包?

c - 嵌入式 C 语言中的 "Super Loop"是什么?

embedded-linux - Gumstix Overo wifi 不断掉线

embedded-linux - 如何对现有的Linux应用程序进行压力测试

c - fork() pipeline() dup2 无法与外部子进程通信

c - 在 C 语言中使用 poll() 作为 TCP 服务器

arrays - 为什么数组大小未知?

c - yocto 项目中的 do_rootfs 函数失败

c - Arduino定时器库和剩余时间