Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897
1) Как из супервизора обратиться к пользовательским CPSR и SP? 2) Можно ли как-нибудь отследить обращение пользователя к определенным адресам памяти? Ассемблер и компилятор RV, ядро ARM7TDMI без MMU (SAM7..LPC). Буду благодарен за любую информацию по теме.
1). CPRS у Вас будет в SPSR. А SP можно получить так - переключиться обратно в User mode сохранить SP и вернуться в режим супервизора. e.g:
.. сохранить R0 и R14
__asm{ MRS R0, CPSR}; __asm{ BIC R0, R0, #0x03 }; // Clear SV-mode bits __asm{ MSR CPSR_c, R0 }; // Enter USER mode // тут уже можно сохранять SP. // Перейти из User mode в SV-mode - по SWI инструкции. __asm{ MOV R0, R13 }; // store user SP __asm{ SWI <код вашего обработчика> }; // call SV