打印

arm7 伪中断问题请教?

[复制链接]
1444|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
clingos|  楼主 | 2012-3-20 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
原野之狼| | 2012-3-20 14:14 | 只看该作者
到我的博客查看一下

使用特权

评论回复
板凳
clingos|  楼主 | 2012-3-20 20:18 | 只看该作者
嗯,去楼上的博客里看了下,是使用软中断的方式来进行关中断处理。
而目前UCOS官方的方法是使用如下方法:
CPU_SR_Save
        MRS     R0, CPSR

CPU_SR_Save_Loop
                                                                ; Set IRQ & FIQ bits in CPSR to DISABLE all interrupts
        ORR     R1, R0, #CPU_ARM_CTRL_INT_DIS
        MSR     CPSR_c, R1
        MRS     R1, CPSR                                        ; Confirm that CPSR contains the proper interrupt disable flags
        AND     R1, R1, #CPU_ARM_CTRL_INT_DIS
        CMP     R1,     #CPU_ARM_CTRL_INT_DIS
        BNE     CPU_SR_Save_Loop                                ; NOT properly DISABLED (try again)
        BX      LR                                              ; DISABLED, return the original CPSR contents in R0


CPU_SR_Restore                                                  ; See Note #2
        MSR     CPSR_c, R0
        BX      LR
UCOS官方的这种方法确实可以解决关中断的问题,但是对于向量中断器可能还会无法识别中断源!
对于伪中断程序不知如何去写?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

69

帖子

1

粉丝