Ich verwende MISRA C 2004 Standards in Code Composer Studio. Ich bekomme immer Fehler in Bezug auf bitweise Operationen während der Initialisierung der Peripheriegeräte.Wie entfernt man MISRA C Fehler/Warnungen bei bitweisen Operationen in der Firmware?
In der Compiler-H-Datei ist die Definition wie folgt.
#define SFR_8BIT(addr) extern volatile unsigned char addr
SFR_8BIT(REG1);
#define REG2 REG1
Jetzt in meinem Code, wenn ich
REG2 |= 0x01;
Der MISRA C diese Fehler herausspringen wird:
Bit-Operatoren gilt nicht für die Operanden angewendet werden, deren zugrunde liegende Typ ist signiert - # 1393-D (MISRA-C: 2004 10.1/R)
Der Wert eines Ausdrucks vom Integer-Typ darf nicht implizit in einen anderen zugrunde liegenden Typ konvertiert werden, wenn es sich nicht um eine Konvertierung in einen Integer-Typ mit der gleichen Signedness handelt.
Ich will nicht den Compiler .h-Datei ändern, und ich möchte diese Warnungen beseitigen.
Es arbeitete Mann .. Vielen Dank! – Chaithra
Verwenden Sie uint8_t, wenn Sie keine Verletzung mit 6.3 Regel von MISRA C 2004 wollen. REG2 | = (uint8_t) 0x01; –