#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만 바뀌는듯
주소 접근을 할때 포인터 변수를 이용하지 않고도 형변환을 통해 접근 가능
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 |