Я использую стандарты MISRA C 2004 в Code Composer Studio. Я всегда получаю ошибки в отношении побитовых операций во время инициализации периферийных устройств.
В файле .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)
Значение выражения целочисленного типа не должно неявно преобразовываться в другой базовый тип, если оно не является преобразованием в целочисленный тип той же подписи.
Я не хочу изменять файл .h компилятора и хочу устранить эти предупреждения.