私は次のものを持っています:
typedef struct
{
uint8_t BlockID;
uint32_t Copies;
uint16_t Size;
}NVMM_ConfigType;
const NVMM_ConfigType NvmmCnf_Layout[6] =
{
{ 1, 1, 4},
{ 2, 3, 4},
{ 5, 5, 16},
{ 10, 1, 4},
{ 11, 2, 32},
{ 13, 1, 100},
};
私には問題ないように思えますが、MISRA-C は次のエラーを出しています:
MISRA C:2012 ルール 10.3 違反: [R] 式の値は、より狭いエッセンシャル タイプまたは異なるエッセンシャル タイプ カテゴリのオブジェクトに割り当てられません。
なぜこれが起こっているのかを理解しようとしましたが、それを見ることができます。また、ビルド結果は同様の状況でこのエラーに悩まされており、その理由はわかりません。
何が起こっているのか知っている人はいますか?
編集:私はまた、すべての値を明示的にキャストしようとしましたが、それでも同じエラーが発生します:
const NVMM_ConfigType NvmmCnf_Layout[6] =
{
{ (uint8_t)1, (uint32_t)1, (uint16_t)4},
{ (uint8_t)2, (uint32_t)3, (uint16_t)4},
{ (uint8_t)5, (uint32_t)5, (uint16_t)16},
{ (uint8_t)10, (uint32_t)1, (uint16_t)4},
{ (uint8_t)11, (uint32_t)2, (uint16_t)32},
{ (uint8_t)13, (uint32_t)1, (uint16_t)100},
};