打印

哪位大侠对mdk和proteus熟?请教个问题

[复制链接]
2990|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaoyu2005|  楼主 | 2009-10-23 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhaoyu2005|  楼主 | 2009-10-24 11:11 | 只看该作者
今天又看了下,好像直接加载hex文件的话,程序就没有运行到main函数,端口没有初始化成低电平。不知咋回事

使用特权

评论回复
板凳
zhaoyu2005|  楼主 | 2009-10-26 08:31 | 只看该作者
刚才试了下,进入软中断了,不管用mdk的还是周立功的startup.s,将程序加载到proteus里直接运行,都进入软中断死循环,请高手解释下咋处理

使用特权

评论回复
地板
zhaoyu2005|  楼主 | 2009-10-26 09:15 | 只看该作者

增加信息

本帖最后由 zhaoyu2005 于 2009-10-26 09:26 编辑

不好意思,看错了,不是进入软中断了,是进入 Undefined 也就是 在死到在0x00000040了
代码如下:
AREA    RESET,CODE,READONLY
        ENTRY

;interrupt vectors
;中断向量表
Reset
        LDR     PC, ResetAddr
        LDR     PC, UndefinedAddr
        LDR     PC, SWI_Addr
        LDR     PC, PrefetchAddr
        LDR     PC, DataAbortAddr
        DCD     0xb9205f80
        LDR     PC, [PC, #-0xff0]
        LDR     PC, FIQ_Addr

ResetAddr              DCD     ResetInit
UndefinedAddr       DCD     Undefined     
SWI_Addr              DCD     SoftwareInterrupt
PrefetchAddr          DCD     PrefetchAbort
DataAbortAddr       DCD     DataAbort
Nouse                    DCD     0
IRQ_Addr               DCD     0
FIQ_Addr               DCD     FIQ_Handler


;未定义指令
Undefined
        B       Undefined      ;死在这里了,我将Undefined换成ResetInit后,执行正常

;软中断
SoftwareInterrupt                        
        B       SoftwareInterrupt        

;取指令中止
PrefetchAbort
        B       PrefetchAbort

;取数据中止
DataAbort
        B       DataAbort

;快速中断
FIQ_Handler
        STMFD   SP!, {R0-R3,R12, LR}
        BL      FIQ_Exception
        LDMFD   SP!, {R0-R3, LR}
        SUBS    PC,  LR,  #4

使用特权

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

本版积分规则

78

主题

2940

帖子

9

粉丝