Pho*_*non 3 assembly android arm
我正在使用ARM Assembly尝试访问多个协处理器寄存器.每当我有类似的东西
mcr p15, #1, r1, c1, c0
Run Code Online (Sandbox Code Playgroud)
要么
mrc p15, #0, r0, c1, c0
Run Code Online (Sandbox Code Playgroud)
我得到signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 80400d00错误,这意味着某些东西正在获得非法(不存在,我假设)操作代码(指令).有几种可能性.在mrc和mcr指令本身可能是非法的,但代码编译没有投诉.如果这是特权模式问题,我希望看到ILL_PRVOPCSIGILL.
另一种可能性是作为mrc和mcr(语法MRC{2}<c><q> <coproc>, #<opc1>, <Rt>, <CRn>, <CRm>)的一部分的操作码可能是非法的.我尝试过可能的操作码,但我仍然得到相同的错误和相同的堆栈转储.
Android通常是否允许有指令,或者我正在做的事情是错的?还有什么我应该看的调试?
这确实是由于证据不足.您不能从用户模式执行此操作,它会导致未定义的指令异常转换为SIGILL/ILL_ILLOPC.grep -Hr PRVOPC <path-to-linux-kernel>/arch/arm什么都不产生,而为ILLOPC做同样的事情会让你失望do_undefinstr().
| 归档时间: |
|
| 查看次数: |
7357 次 |
| 最近记录: |