[Arm프로세서] Armv7: 데이터 어보트(Data Abort) 익셉션이 발생하는 사례

Guillermo Austin Kim|2020년 12월 28일
Posts

[Arm프로세서] Armv7: 데이터 어보트(Data Abort) 익셉션이 발생하는 사례

Guillermo Austin Kim|2020년 12월 28일

데이터 어보트는 명령어를 실행할 수 없은 상황에서 ARM 코어가 유발합니다. 그렇다면, 다음 명령어의 01번째 줄에서 데이터 어보트가 발생할 수 있을까요? 01 0xc000d000: e5925000 ldr r5, [r2]02 0xc000d004: e2855004 add r5, r5, #0x403 0xc000d008: e3550000 cmp r5, #0x0 만약 r2 레지스터가 0x0과 같은 주소를 담고 있으면, 데이터 어보트가 유발될 수 있습니다. 'ldr r5, [r2]' 명령어는 r2 레지스터가 담고 있는 주소에 엑세스해서 해당 주소에 있는 데이터를 r5 레지스터에 로딩하는 동작입니다. 그런데 r2 레지스터가 0x0을 담고 있으면, 유효하지 않는 메모리로 판단하므로 ARM 코어는 데이터