用keil3仿真LPC2148的奇怪现象

[复制链接]
3164|1
 楼主| mildlioncn 发表于 2009-8-8 09:05 | 显示全部楼层 |阅读模式
本帖最后由 mildlioncn 于 2009-8-8 09:07 编辑

请教各位大虾。我用LPC2148跑ucosii没有问题,开发环境是keil3。
我在系统里添加了一个实时时钟任务,RTC没有初始化成功。
然后我用仿真器单步运行代码,观察状态。一个奇怪的现象困扰我很久:比如:
YEAR  = 2007;
明明给YEAR这个寄存器送2007这条语句执行了,为什么keil3
仿真界面上就没有赋值成功呢,还依然显示0???
后来瞎折腾,仿真到ucosii的关中断这个步骤:
NOINT   EQU 0xc0

OSCPUSaveSR
        mrs r1,CPSR
        orr r0,r1,#NOINT
        msr CPSR_c,r0
        MRS R1,CPSR                     
       AND R1,R1,#NOINT
        CMP R1,#NOINT
        BNE OSCPUSaveSR
        mov pc,lr

在msr CPSR_c,r0指令执行时,应该是把r0低8位赋给CPSR的低8位,
仿真界面中r0低8位明明显示0xd0,而这条指令执行之后,CPSR的低
8位依然还是原来的0x10,没有改变,没有赋值成功。
很疑惑,不知道为什么?
请教各位大侠。


 楼主| mildlioncn 发表于 2009-8-8 13:36 | 显示全部楼层
算了,我自己顶一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

22

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部