misra

    7熱度

    2回答

    我知道MISRA-C標準適用於嵌入式固件。當嵌入式Linux是您的產品平臺時,您的嵌入式應用程序可以/應該被開發爲符合MISRA-C標準?有沒有人考慮過這樣的練習? 我的一般意義是,您必須首先了解所有「規則」,然後將它們應用於設計/編碼階段。可能會有像系統調用(pthread_create)和void *這樣的實例需要強制遵從 - 產生難看的代碼。

    0熱度

    3回答

    我有一個暗示有一個古老的討厭的方式來獲取函數作爲參數計算運行,但正弦我不知道它叫什麼我不能搜出規則。 一個例子 char dstr[20]; printf("a dynamic string %s\n", (prep_dstr(dstr),dstr)); 的想法是,在「()」將在已執行prep_dstr功能之後返回的地址DSTR。 我知道這是醜陋的,我可以做它的前行 - 但它是複雜的...

    2熱度

    1回答

    我在MISRA規則下編寫代碼。我得到一個錯誤MISRA爲以下表達式 check_Val =(〜(0x000Fu < < Src_Data)); //其中Src_Data是uint8,check_Val是uint32。 我分析了錯誤 違反MISRA 2004必需細則10.1,復整數表達 由於check_Val是uint32時,LF應該適合在其上的隱式轉換。那爲什麼它給出了一個錯誤。

    2熱度

    1回答

    我最近購買了一些源代碼的試用版,以便在購買前檢查MISRA合規性。我已經在C代碼上運行了pc-lint來驗證合規性,並且得到了大量違規的輸出。我想要優化生成的html,以便我可以排序出現的違規行爲。我曾嘗試使用Google搜索已存在的東西,但是收益不大,因此我開始編寫一個python腳本... 簡而言之,腳本會多次遍歷html輸出的每一行,以便檢查爲特定的字符串。當然,這需要很長的時間來執行,我一

    10熱度

    3回答

    在調試一些嵌入式代碼,我遇到事情就這樣的: buffPtr = &a[5]; buffEndPtr = &a[10]; while (buffPtr != buffEndPtr) { *buffPtr = 0xFF; buffPtr = &buffPtr[1]; /* MISRA improvement for: buffPtr++ */ } 爲什麼會變成這樣

    0熱度

    3回答

    我需要有MISRA經驗的人來幫助我解決這個問題。我有以下代碼: byte* buf = new(std::nothrow) byte[bufferSize]; ..... for (uint32_t i = 0; i < bufferSize; i+=4) { .............. { buf[ i+0 ] = b; buf[ i+1 ] = g; b

    0熱度

    2回答

    我已在程序中使用以下代碼,並在運行PC-Lint時拋出以下錯誤: 此行的多個標記 - (lint:46)field類型應該是int,unsigned int類型或符號int [MISRA 2004年規則6.4,必需] - (皮棉:960)違反MISRA 2004年所需的規則6.4,位字段必須明確地簽署int或 unsigned int類型 typedef struct{ boolean

    1熱度

    1回答

    我已經使用了一個API,它在正式的爭論中捕獲了參數的地址。但是有我以前的日誌,並使用該地址印刷目的在我得到了MISRA警告,如下面你可以看到: MISRA.PTR.ARITH Pointer在算術或數組索引 表達式中使用 如何解決此警告? 代碼段(從評論): int8u my_api(uint8_t *a1,uint8_t *a2,uint8_t *a3) { printf(" Dev

    1熱度

    1回答

    MISRA 19.10: 在參數的一個函數宏每個實例的定義應用括號括起來,除非它被用作#操作數或##。 我有這樣定義的結構: typedef struct { SUint_t affValueIndex; const SFloat_t affLoSaturation; const SFloat_t affHiSaturation; const SFloa

    1熱度

    2回答

    我的CCS 6.1 ARM編譯器(用於LM3Sxxxx斯特拉瑞斯)拋出一個警告: 「 MISRA規則12.2表達式的值應根據評估的任何順序的相同,該標準允許」 爲以下代碼: typedef struct { ... uint32_t bufferCnt; uint8_t buffer[100]; ... } DIAG_INTERFACE_T; stat