我想知道在使用嵌入代碼從Simulink模型生成代碼之後是否可以避免MISRA警告10.1,13.2和12.6(或者是否可以生成代碼有辦法?)。避免MISRA警告,從嵌入式編碼器生成自動代碼
e.g(生成的代碼)
if (A)
{;}
在如果(A)語句是有MISRA違反。
是否有可能與嵌入式編碼器生成的代碼等
if (A !=0)
{;}
我想知道在使用嵌入代碼從Simulink模型生成代碼之後是否可以避免MISRA警告10.1,13.2和12.6(或者是否可以生成代碼有辦法?)。避免MISRA警告,從嵌入式編碼器生成自動代碼
e.g(生成的代碼)
if (A)
{;}
在如果(A)語句是有MISRA違反。
是否有可能與嵌入式編碼器生成的代碼等
if (A !=0)
{;}
我有困難產生這種類型的構建體,如果(A)的不使用布爾類型在這種情況下,沒有違反規則13.2。
沒有布爾類型,我得到的東西沿着這些路線:
如果(A> 1){ ...}
我用的R2015b釋放。如果您可以共享生成此類代碼的示例模型,那將會很好。
此外,根據MISRA AC AGC標準(在自動代碼生成環境下應用MISRA-C:2004的指導原則),推薦列出所有列出的規則(10.1,12.6,13.2),並非強制性規定。
因此,遵守這些規則取決於您的應用程序的關鍵性。
即使在最新的MISRA 2012標準中,這些規則已被重新分類,它們仍然被歸類爲生成代碼上下文中的諮詢。
有關的生成代碼MISRA合規的一般信息,這是一個很好的參考:
http://www.mathworks.com/solutions/automotive/standards/misra-c.html
或
http://www.mathworks.com/solutions/aerospace-defense/standards/misra-c.html
您應該只得到一個警告13.2從該代碼。如果你的工具對其他任何東西都抱怨,它會被破壞。 – Lundin
是的,這是真的,我試圖找出是否有可能避免這種警告。那配置嵌入式編碼器生成的代碼沒有警告 – user3285192
我假設「A」是一個布爾類型?你不能告訴/配置你的分析器,該類型是布爾值嗎? – Andrew