[uCOS/uCGUI] ARM7移植uCos操作系统遇到的一个问题

johnychoi   2008-6-4 11:10 楼主
OSIntCtxSw
                                                
        LDR     R2, [SP, #20]                  
        LDR     R12, [SP, #16]                  
        MRS     R0, CPSR

        MSR     CPSR_c, #(NoInt | SYS32Mode)
        MOV     R1, LR
        STMFD   SP!, {R1-R2}                       
        STMFD   SP!, {R4-R12}                     

        MSR     CPSR_c, R0
        LDMFD   SP!, {R4-R7}                       
        ADD     SP, SP, #8                        
        
        MSR     CPSR_c, #(NoInt | SYS32Mode)
        STMFD   SP!, {R4-R7}                     
        
        LDR     R1, =OsEnterSum                  
        LDR     R2, [R1]
        STMFD   SP!, {R2, R3}                     
以上为保存任务环境的移植代码
        MSR     CPSR_c, R0
        LDMFD   SP!, {R4-R7}                       
        ADD     SP, SP, #8   
这三句是怎么获取R0~R3寄存器,并出栈R12,PC,一直不解, 希望有做过这方面的朋友帮忙看看。

回复评论 (2)

弄错了吧 最后一条句不是中断返回指令就应该是出栈到PC,不然不可能切换任务
点赞  2008-6-4 19:59
弄错了吧 最后一条句不是中断返回指令就应该是出栈到PC,不然不可能切换任务
点赞  2008-6-4 19:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复