私はCode Composer StudioでMISRA C 2004標準を使用しています。私は、周辺機器の初期化中にビット単位の操作に関して常にエラーが発生しています。ファームウェアのビット単位の操作でMISRA Cエラー/警告を削除するには?
コンパイラの.hファイルでは、定義は次のようになります。
私のコードで今すぐ#define SFR_8BIT(addr) extern volatile unsigned char addr
SFR_8BIT(REG1);
#define REG2 REG1
私は
REG2 |= 0x01;
を使用する場合は、MISRA Cは、これらのエラーを飛び出している:
ビット演算子は、その基礎となるオペランドに適用してはなりませんタイプは署名されています - #1393-D(MISRA-C:2004 10.1/R)
整数型の式の値は、同じsignednessの整数型への変換でない場合、暗黙のうちに異なる基本型に変換されてはならない。
私は、コンパイラ.hファイルを変更したくない、と私はこれらの警告を根絶したいと思います。 unsigned char
のすべての値が(符号付き)int
Sとして表すことができることを意味推測で
それは男になりました..ありがとう! – Chaithra
MISRA C 2004の6.3ルールに違反しない場合は、uint8_tを使用してください。REG2 | =(uint8_t)0x01; –