0
アドレス0x1ffff670にメモリマップされたデバイスがあるとします。デバイスレジスタは8ビットしかありません。私はそのレジスタに値を取得し、1だけインクリメントして書き戻す必要があります。続きメモリマップドレジスタへのアクセス
は、私は、このシナリオがどのように見えるかと思いメモリで
void increment_reg(){
int c;//to save the address read from memory
char *control_register_ptr= (char*) 0x1ffff670;//memory mapped address. using char because it is 8 bits
c=(int) *control_register_ptr;// reading the register and save that to c as an integer
c++;//increment by one
*control_register_ptr=c;//write the new bit pattern to the control register
}
は、このアプローチは正しいですか?どうもありがとう。
大丈夫ですが、ポインタを「揮発性」にしたい場合があります。 – Cornstalks