这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » VXWORKS,NUCLEUS,keil,for,arm,01a,ccd,135

共2条 1/1 1 跳转至

,VXWORKS,NUCLEUS,keil,for,arm,01a,ccd,13581980230, 启动代码

院士
2006-09-17 18:14:16     打赏
,VXWORKS,NUCLEUS,keil,for,arm,01a,ccd,13581980230, 启动代码



关键词: VXWORKS     NUCLEUS     135819802    

院士
2006-12-22 22:43:00     打赏
2楼
问 为什么这段代码可以在仿真的时候正常使用,但是下载到了EasyARM2200上就不行了呢?请指点!!


          IMPORT    |Image$$RO$$Limit|  
          IMPORT    |Image$$RW$$Base|   
          IMPORT    |Image$$ZI$$Base|   
        IMPORT    |Image$$ZI$$Limit|  

        IMPORT    Main        ; 声明C程序中的Main()函数

        AREA    Start,CODE,READONLY    ; 声明代码段Start
        ENTRY                ; 标识程序入口
        CODE32                ; 声明32位ARM指令    
        
Reset
        LDR     PC, ResetAddr
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP

ResetAddr           DCD     ResetInit
        
ResetInit

        LDR          R0,=|Image$$RO$$Limit|
        LDR        R1,=|Image$$RW$$Base|    
        LDR        R3,=|Image$$ZI$$Base|    
            
        CMP          R0,R1
        BEQ        LOOP1
LOOP0    CMP        R1,R3      
        LDRCC   R2,[R0],#4     
        STRCC   R2,[R1],#4
        BCC        LOOP0
        
LOOP1    LDR        R1,=|Image$$ZI$$Limit|
        MOV        R2,#0
LOOP2    CMP        R3,R1
        STRCC   R2,[R3],#4
        BCC        LOOP2
        
        B        Main        ; 跳转到C程序代码Main()函数
        
        END 1: re下载到FLASH里后,在FLASH里调试一下,单步跟踪,看看问题出在那里。 2: 下不了下载到FLASH,执行第一句就出错。看汇编代码,发现那里存在
LDR     PC, ResetAddr
这个指令,但是执行之后就不知道跳到哪里去了 3: 可以试试这样应该是LDR     PC, =ResetAddr 4: rePlease check the disassemble. 5: re    本人不知道你采用的是什么开发工具和仿真的模式,我原来遇到这种情况多半是地址的设置问题。也就是说,仿真时的地址和最后在Flash里面跑的地址是不同的,因此一上来肯定就飞了。 6: re所以建议LZ检查一下反汇编代码 :-)

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]