본문 바로가기

컴퓨터 과학 & 영상처리 관련/임베디드

임베디드에서 주소 접근 방법중 하나


#define PA (*(volatile unsigned char *) 0x30000000)

void int(void){
PA |= (0x7 << 5);
}

주소 접근을 할때 포인터 변수를 이용하지 않고도 형변환을 통해 접근 가능
0x7은 8bit의 경우 00000111
이것을 << 5 왼쪽으로 5번 shift 하면 11100000
0x30000000 주소에 어떤 값이 있을지는 모르지만 그 중 3비트를 1로 바꾸겠다는 뜻
만약 PA &= ~(0x7 << 5) 라면 00011111 8bit중 상위 3bit를 0으로 바꾸겠다는 뜻
0 & x = 0 이므로...
& 할때 000 외에 11111이 있어서 이것까지 같이 &가 되어버릴까 걱정이 되지만
실제로는 0x7에 해당하는 3bit만 바뀌는듯

'컴퓨터 과학 & 영상처리 관련 > 임베디드' 카테고리의 다른 글

qmake를 위한 qq  (0) 2011.06.01
qt x11 / qt-embedded 설치  (0) 2011.05.21
502 bad gateway  (0) 2011.05.17
boa.conf  (0) 2011.05.14
Device driver / System call / file_operations  (0) 2011.05.11