IAR汇编程序调试

charon2   2009-4-26 15:21 楼主
一段IAR编写的arm汇编代码,但是跑到红色的地方就跑不下去了,希望大家帮分析一下!

;汇编指令实验       
;定义端口E寄存器预定义

rPCONE   EQU    0x56000010   
rPDATE   EQU    0x56000014
rPUPE    EQU    0x56000018

RSEG        ICODE:CODE:ROOT(2)
PUBLIC        __iar_program_start
        
        LTORG
        ARM       
__iar_program_start:
ResetEntry
    ;下面这三条语句,主要是用来设置I/O口GPE7为输出属性
    ldr  r0,=rPCONE            ;将寄存器rPCONE的地址存放到寄存器r0中
    ldr  r1,=0x1555
    str  r1,[r0]               ;将r1中的数据存放到寄存器rPCONE中
   
    ;下面这三条语句,主要是禁止GPE端口的上拉电阻
    ldr  r0,=rPUPE
    ldr  r1,=0xffff
    str  r1,[r0]
   
    ldr  r2,=rPDATE            ;将数据端口E的数据寄存器的地址附给寄存器r2
     
ledloop
    ldr  r1,=0xffff            
    str  r1,[r2]              ;使GPE7输出高电平,D9灯会灭
    bl   delay                ;调用延迟子程序
       
    ldr r1,=0x0
    str r1,[r2]               ;使GPE7输出低电平?D9灯亮
    bl  delay                 ;调用延迟
    b  ledloop                ;不断的循环,D9将不停的闪烁
   
;下面是延迟子程序
delay
        ldr r3,=0xfff           ;设置延迟的时间
delay1
        sub r3,r3,#1              ;r3=r3-1            
        cmp r3,#0x0               ;将r3的值与0相比较
        bne delay1                ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句
        mov pc,lr                 ;返回
  
    LTORG  
    END                       ;程序结束符
   
  

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复