1,为什么我在用户末时下无法修改sp,我用的是sdt调试,程序如下<br /><br />msr cpsr,#0x10<br />ldr r0,=usr_stack+1024<br />mov sp,r0<br />编译能通过,但是单步运行后发现用户模式下sp=0.用下面的两行程序也是这样:<br />msr cpsr,#0x10<br />ldr sp,=usr_stack+1024<br />老是不能修改用户模式的sp,我怎么想都想不通!<br /><br />2,从中断处理程序退出时,树上说执行<br />subs pc,r14,#4<br />我试过的确可用,但是我不明白的是,为什么中断处理退出之前,程序中并没有手动将终端模式更换成其它模式,难道执行subs pc,r14,#4的时候,cpu就知道这个是中断退出的指令?至于用户模式的切换完全是cpu自动完成的?<br /> |