목차
1. codewarrior 사용법
2. codewarrior debug 사용법
3. 레지스트리 주소 확인
4. MCR 명령어의 사용법
2. codewarrior debug 사용법
3. 레지스트리 주소 확인
4. MCR 명령어의 사용법
본문내용
ary 레지스터의 접근을 위해 사용되는 부가적인 Coprocessor 레지스터의 이름이다.
c14
opcode_2
레지스터의 버전과 접근타입에 관한 추가적인 정보를 더해주기 위하여 설정되는 코드이다.
2
<표 1> MCR 레지스터 설정
즉 MMU_CleanInvalidateDCacheIndex 함수에 정의 되어 있는 mcr p15,0,r0,c7,c14,2 문장은 coprosessor를 사용해서 CPU의 r0의 값을 C7에다 보내라는 뜻이다. 추가정보 레지스터는 c14를 사용한다.
⑧ <그림 3>의 소스를 분석하면 함수에서 받은 index 의 값을 r0에 할당 받아 c7에 넣어 모든 값은 초기화 한다.
⑨ 이제 이 함수를 직접적으로 사용하는 곳을 확인해 보니 mmu.c 파일에서 사용되고 있었다. <그림 4>와 같이 DCache를 사용하기위해 클리어 하는 부분에서 호출 하였다.
<그림 4> MMU_CleanInvalidateDCacheIndex 사용
⑩ Datasheet를 확인해본 결과 DCache memory는 16kb 였다. 0번지부터 클리어하지 않고 일정 번지부터 클리어 하는 것을 for 루프로 알 수 있듯이 일정 영역에만 데이터가 쓰여지는 것 같다.
c14
opcode_2
레지스터의 버전과 접근타입에 관한 추가적인 정보를 더해주기 위하여 설정되는 코드이다.
2
<표 1> MCR 레지스터 설정
즉 MMU_CleanInvalidateDCacheIndex 함수에 정의 되어 있는 mcr p15,0,r0,c7,c14,2 문장은 coprosessor를 사용해서 CPU의 r0의 값을 C7에다 보내라는 뜻이다. 추가정보 레지스터는 c14를 사용한다.
⑧ <그림 3>의 소스를 분석하면 함수에서 받은 index 의 값을 r0에 할당 받아 c7에 넣어 모든 값은 초기화 한다.
⑨ 이제 이 함수를 직접적으로 사용하는 곳을 확인해 보니 mmu.c 파일에서 사용되고 있었다. <그림 4>와 같이 DCache를 사용하기위해 클리어 하는 부분에서 호출 하였다.
<그림 4> MMU_CleanInvalidateDCacheIndex 사용
⑩ Datasheet를 확인해본 결과 DCache memory는 16kb 였다. 0번지부터 클리어하지 않고 일정 번지부터 클리어 하는 것을 for 루프로 알 수 있듯이 일정 영역에만 데이터가 쓰여지는 것 같다.
소개글