として定義された 32 ビット レジスタと、メモリ (DDRAM) 内のTIMER
その 32 ビット アドレスがあるとします。TIMER_ADDR
uint32_t TIMER_ADDR; // 32 bits address declared as uint32_t
TIMER のレイアウトは次のように定義されます。
struct timer {
uint32_t start:1;
uint32_t mode: 3;
uint32_t init: 4;
uint32_t value:24
}
後で、ローカル変数 loc_timer を次のように定義しました。
struct timer loc_timer;
コンテンツを変更できるように、このレジスタをプログラムのローカル レジスタに読み込むにはどうすればよいですか
loc_timer.mode = 4;
loc_timer.init = 10;
それを書き戻して登録しTIMER
ますか?
何かのようなもの
(*(uint32_t *))&loc_timer = (*((uint32_t *)(TIMER_ADDR))); // read
(*((uint32_t *)(TIMER_ADDR))) = (*(uint32_t *))&loc_timer; // write
しかし、それは機能しません:-(