天嵌 ARM开发社区

 找回密码
 注册
查看: 1684|回复: 2

BL之后SP改变吗

[复制链接]
dfdfghgh 发表于 2010-3-20 20:55:19 | 显示全部楼层 |阅读模式
不知道BL之后SP值改变吗
我的程序多层调用之后不能返回最上层
在LED后面MOV PC,LR之后程序就死循环了

  AREA LEDFLASH,CODE,READONLY
        CODE32
MAIN        
           LDR        R4,=0x56000050
        MOV        R5,#0
        STR        R5,[R4]
        LDR        R4,=0x56000054
        LDR        R5,[R4]
        SUBS        R5,R5,#0x7b
        BLEQ        LED
           B        MAIN
LED
        LDR     R0,=0x56000010      ;R0设为GPBCON寄存器。此寄存器
           MOV     R1,#0x015400
           STR     R1,[R0]
           LDR     R0,=0x56000014
        LDR     R1,=0xffdf              ;
            STR     R1,[R0]             ;GPB5输出0,LED1点亮
            BL        DELAY
            LDR     R1,=0xffff
            STR     R1,[R0]
            BL        DELAY
            MOV        PC,LR
            B        MAIN
DELAY      
        MOV        R3,#10     
LOOP            
        SUBS        R3,R3,#1
        LDR        R2,=0x2000
        BNE        LOOP1
        MOV        PC,LR
LOOP1
            SUBS        R2,R2,#1
            BNE        LOOP1
            B        LOOP
    END
亚瑟王 发表于 2010-3-22 12:53:19 | 显示全部楼层
在ARM汇编指令集中 b 和 bl 跳转范围都是当前指令的前后32MB,他们的差别在于bl除去跳转外还将返回地址(bl的下一条指令的地址)保存到lr寄存器中。
你监控一下R2的值是否符合你设定的要求。
rong515 发表于 2010-12-12 08:55:41 | 显示全部楼层
2# 亚瑟王


管理员 问一下  我用ADS1.2  怎么进行变量的实时查看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-6 14:27 , Processed in 1.022500 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表