ARM MMU를 설치하는 코드를 작업하고있었습니다. 빠른 모델을 사용하고 있습니다. VTTBR 레지스터에 더미 값을 넣으면 데이터가 중단됩니다. 나는이 게시물을 보았습니다 How to handle this Data Abort exception in ARM 7? mode in CPSR 0x17 and board stucked at 0x10 그리고 나는 링크 레지스터를 보려고했습니다. 거기에서 나는이 명령으로 중단이 일어난 것을 발견했다 : MOVT r3,#0x8400
.ARM v7에서 데이터 유형을 찾는 방법은 무엇입니까?
하지만 이전에 이미 이동이 MOV r3,#0x9240
처럼 발생했습니다. 나는 두 번째 움직임에 무엇이 잘못되었는지에 대해 상당히 혼란 스럽다. 나는 데이터 유형이 가능한 네 가지 유형에서 일어난 중단을 정확히 알고 싶다. (1.alignment faults 2.translation faults 3.domain faults 4.permission faults.).
내 코드는 내가 MOVT 바닥 하프 워드에 영향을주지 않고 위 (위) 하프 워드에 값을 이동하는 것을 알고이
840000A4 : MOV r3,#0x9240
840000A8 : MOVT r3,#0x8400
처럼 간다.
내 LR
에는 840000A8
이 포함됩니다.
코 프로세서 설명서를 읽으면 코 프로세서에 어떤 상태가 포함되어 있는지 알려줍니다. –