メモリ保護のない組み込みシステム (ARM Cortex-M1、gcc 4.3 でコンパイル) のシステムレベル コードを書いており、メモリ マップド レジスタを直接読み書きする必要があります。これまでのところ、私のコードは次のようになります。
#define UART0 0x4000C000
#define UART0CTL (UART0 + 0x30)
volatile unsigned int *p;
p = UART0CTL;
*p &= ~1;
ポインターを使用しない短い方法 (つまり、コードが短い) はありますか? 実際の割り当てコードをこれと同じくらい短く書く方法を探しています (もっと #define を使用しなければならない場合でも問題ありません)。
*(UART0CTL) &= ~1;
私がこれまでに試したことは、左辺値に何かを割り当てることができないと不平を言うgccで終わりました...