0
주소 0x1ffff670에 메모리 매핑 된 장치가 있다고 가정합니다. 디바이스 레지스터는 8 비트 밖에 가지고 있지 않다. 그 레지스터에 값을 가져와 하나씩 증가 시켜서 다시 써야합니다. 다음메모리 매핑 된 레지스터 액세스
내가이 시나리오가 어떻게 보이는지 생각 메모리에서
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