arm의 core 레지스터의 memory mapped 주소에 대해서 궁금합니다.
글쓴이: knw0507 / 작성시간: 일, 2016/02/21 - 6:02오후
arm프로세서와 관련하여 간단한 공부를 하고있는 학생입니다.
c로 작성 된 소스코드를 보니
*(--stk) = (INT32U)0x14141414L; //r14
와같이 작성되어있더군요.
제가 보기에는 0x14141414라는 주소가 arm레지스터의 r14로 mapping되어있는 거 같은데,
제가 생각하는 게 맞는건 지 궁금합니다.
메모리맵을 찾아봤지만, 이와 관련 된 정보를 찾을 수가 없어서요...
그래서 어떻게 이런식으로 동작할 수 있는 지도 궁금합니다.!
Forums:
의견
> 제가 보기에는 0x14141414라는 주소가 arm레지스터의 r14로 mapping되어있는 거 같은데,
그런식으로도 사용합니다.
일단 어드레스가 0x14141410의 CPU 내부의 Cache나 메모리에 매핑되어 있으면 문제 없습니다.
저 같은 경우에 작년에 작은 RTOS를 ( http://atomthreads.com/) 사용했는데,
특정 OS 프로세서 중 하나만 찝어서 그 stack을 CPU Internal SRAM 에 할당하여 위와 같이 사용했습니다.
그 에 따라 약간 성능 향상 효과를 보았습니다.
> 제가 보기에는 0x14141414라는 주소가
> 제가 보기에는 0x14141414라는 주소가 arm레지스터의 r14로 mapping되어있는 거 같은데,
그냥 r14에 값을 집어 넣는 것이지, 레지스터와 주소를 맵핑하는것은 아닙니다.
따라서 데이터시트에 관련내용은 없을것 같습니다.
정말로 맵핑이라면, 0x14141414 주소를 읽거나 썼을때 r14레지스터의 값을 읽거나 변경할 수 있어야 하죠.
댓글 달기