历史上的今天
返回首页

历史上的今天

今天是:2025年04月15日(星期二)

正在发生

2018年04月15日 | TQ2440之uboot---7.start.S中关于bl指令的理解

2018-04-15 来源:eefocus

编译u-boot时,在Makefile 的ALL变量最后加上$(obj)u-boot.dis,会编译出u-boot.dis,u-boot.dis是通过arm-linux-objdum –d 生成u-boot的每一条指令的反汇编。

33d80080:    e59f13f4     ldr    r1, [pc, #1012]    
33d80084:    e59f03f4     ldr    r0, [pc, #1012]    
33d80088:    e5801000   str    r1, [r0] 
33d8008c:     eb000015   bl     33d800e8

………

33d800e8 : 
33d800e8:    e3a00000     mov    r0, #0    ; 0x0

上面的bl指令,从表面上看 bl 33d800e8,好像是跳到了绝对地址0x33d800e8处,此时是运行在绝对0x0地址处,然后用bl一下子跳到了内存地址0x33d800e8处,可是此时内存都还没有初始化就运行,这怎么可能?

这好像是很矛盾,但仔细分析一下,原来是这样的:

将 eb000015  转为二进制:

1110  1011  0000  0000 0000 0000  0001  0101

branch_format

看一下它的具体含义,下面是b/bl 指令的格式-- 出自《ARM Instruction Set》

31-28 –> cond

27-25 –> 101

24     --> L

23-0 –> offset

    "Branch instructions contain a signed 2's complement 24 bit offset. This is shifted left two bits, sign extended to 32 bits, and added to the PC. The instruction can therefore specify a branch of +/- 32Mbytes. The branch offset must take account of the prefetch operation, which causes the PC to be 2 words (8 bytes) ahead of the current instruction. Branches beyond +/- 32Mbytes must use an offset or absolute destination which has been previously loaded into a register. In this case the PC should be manually saved in R14 if a Branch with Link type operation is required.“ 出自《ARM Instruction Set》


1110 –> cond –> always 无条件跳转

27-25 –> 说明是B 跳转指令

24 –> L位 Branch with Link, 跳转时将下一条指令的地址拷贝到R14(lr)中

23-0 –> offset=0x15

执行bl后:pc = 当前pc + ( offset<<2 + 8 ) = 0x8c+(0x15<<2+8)= 0xE8

跳到偏移地址为0xE8的地方,也就是 cpu_init_crit函数中。


推荐阅读

史海拾趣

Gravitech公司的发展小趣事

对于电子猜数玩具电路的网友可能提出的问题,我整理了一些常见问题及其回答:

一、电路设计相关问题

  1. 问题:电子猜数玩具电路的基本组成部分有哪些?
    回答:电子猜数玩具电路通常由触摸控制器、多谐振荡器、LED驱动电路和受控声、光电路等部分组成。具体来说,包括时基集成电路(如NE555)、非门集成电路(如CD4069)、计数分配器集成电路(如CD4017)、音乐集成电路、继电器、二极管、发光二极管、电阻器、电容器等元器件。

  2. 问题:如何设计电路以确保游戏能够正确运行?
    回答:设计电路时,需要确保各个部分能够协调工作。例如,触摸控制器负责检测玩家的输入,多谐振荡器产生计数脉冲,LED驱动电路控制LED的显示,受控声、光电路则在玩家猜中数字时发出声音和光信号。设计时还需要注意电路的稳定性和可靠性,避免信号干扰和元件损坏。

  3. 问题:电路中的LED如何布局以实现数字显示?
    回答:LED的布局通常根据要显示的数字范围进行设计。例如,如果要显示0-9的数字,可以使用7段LED数码管或分散的LED灯。7段LED数码管内部含有8个LED小灯(7个用于显示数字段,1个用于小数点或原点),通过控制这些LED的亮灭来显示不同的数字。如果是分散的LED灯,则需要根据数字的形状来布置LED,并通过编程控制它们的亮灭。

二、元件选择与参数设置问题

  1. 问题:如何选择适合的集成电路和元器件?
    回答:选择集成电路和元器件时,需要考虑电路的需求、元器件的性能参数以及成本等因素。例如,时基集成电路可以选择NE555,因为它具有成本低、易于获取和使用的优点;非门集成电路可以选择CD4069,因为它提供了多个非门输出,方便电路设计;发光二极管则需要选择高亮度的型号以确保显示效果良好。

  2. 问题:电阻器和电容器的参数如何设置?
    回答:电阻器和电容器的参数设置需要根据电路的具体需求来确定。电阻器的阻值会影响电流的大小和LED的亮度,因此需要根据LED的电流需求和驱动电压来选择合适的阻值。电容器的容量则会影响多谐振荡器的振荡频率和电路的响应时间,需要根据实际需要进行调整。

三、调试与故障排除问题

  1. 问题:如何调试电子猜数玩具电路?
    回答:调试电路时,可以按照以下步骤进行:首先检查电路连接是否正确,包括电源连接、信号连接和地线连接等;然后使用万用表等工具测试电路中的电压和电流是否正常;最后观察LED的显示和声音输出是否符合预期。如果出现问题,可以逐步排查各个部分,找出故障点并进行修复。

  2. 问题:电路中出现LED不亮或声音不响的故障怎么办?
    回答:如果LED不亮或声音不响,首先需要检查电源是否正常供电;然后检查相关元器件是否损坏或接触不良;最后检查控制信号是否正确传输。如果以上都正常,可能是程序设计或电路布局存在问题,需要进一步检查和调整。

四、拓展与改进问题

  1. 问题:如何增加电子猜数玩具的趣味性和挑战性?
    回答:可以通过增加游戏难度、丰富游戏模式或添加互动元素等方式来增加电子猜数玩具的趣味性和挑战性。例如,可以设置不同的难度等级、增加倒计时功能、设置奖励机制或添加与手机等设备的互动功能等。

  2. 问题:如何对电子猜数玩具电路进行改进以降低成本或提高性能?
    回答:降低成本可以通过选择性价比更高的元器件、优化电路设计、减少不必要的元器件数量等方式实现;提高性能则可以通过升级元器件、改进电路设计、优化算法等方式实现。具体改进方案需要根据实际情况和需求进行制定。

东科半导体(DK)公司的发展小趣事

面对电源管理芯片市场需求的不断增长,东科半导体(DK)公司决定投资扩产。公司投资数亿元建设新的生产线和研发基地,提升产能和研发能力。同时,公司还加大了对新技术、新产品的研发投入,不断推出具有竞争力的新产品。通过投资扩产和加大研发投入,东科半导体(DK)公司进一步巩固了其在电源管理芯片市场的领先地位。

以上五个故事从不同角度展现了东科半导体(DK)公司在电子行业中的发展历程和成就。这些故事不仅记录了公司的成长轨迹,也反映了公司在技术创新、产学研合作、市场拓展和品牌建设等方面的努力和成果。

GSN Electronics公司的发展小趣事

东科半导体(DK)公司自创立之初,就专注于电源管理芯片的研发与生产。公司初期面临资金紧张、技术储备不足等挑战,但凭借对技术的执着追求和对市场的敏锐洞察,东科逐步在行业中崭露头角。公司创始人带领团队夜以继日地研发,成功推出了一系列具有竞争力的电源管理芯片产品,赢得了市场的认可。

AdaptivEnergy公司的发展小趣事

东科半导体(DK)公司自创立之初,就专注于电源管理芯片的研发与生产。公司初期面临资金紧张、技术储备不足等挑战,但凭借对技术的执着追求和对市场的敏锐洞察,东科逐步在行业中崭露头角。公司创始人带领团队夜以继日地研发,成功推出了一系列具有竞争力的电源管理芯片产品,赢得了市场的认可。

ETC公司的发展小趣事

在ETC领域,速通科技始终保持着技术创新的步伐。公司不断投入研发资源,致力于提高ETC系统的性能、稳定性和安全性。经过多年的努力,速通科技成功研发出了基于国标ETC的自由流收费技术,并获得了多项发明专利。这一技术的推出,大大提高了车辆的通行效率,减少了交通拥堵现象。

台湾义隆电子(ELAN)公司的发展小趣事

作为一家有社会责任感的企业,义隆电子一直关注可持续发展问题。公司积极推广绿色生产理念,采取环保措施减少生产过程中的污染排放。同时,义隆电子还关注社会公益事业,积极参与各种慈善活动,回馈社会。这些举措不仅提升了公司的品牌形象,也为公司的长期发展奠定了坚实基础。

请注意,以上故事框架仅供参考,具体的故事内容需要根据义隆电子的实际情况进行撰写。

问答坊 | AI 解惑

开关电源滤波器选择与使用

开关电源滤波器选择与使用…

查看全部问答>

ppp协议求教

3f01在ppp协议中代表哪一类字协议?我在进行gprs拨号后收到7e ff 7d 23 3f 7d 21 7d 22 7d 20 7d 33 7d 22 7d 26 7d 20 7d 20 7d 20 7d 20 7d 23 7d 25 3f 7d 25 7d 27 7d 22 7d 28 7d 22 6f 7d 31 7e 7e ff 7d 23 3f 7d 21 7d 22 7d 20 7d 33 7d 2 ...…

查看全部问答>

求S3C2440的引导注释或翻译!

求S3C2440的引导注释,或者求语言达人给出下面韩文的翻译。先谢谢了! 文章地址:http://hompy.nugu.com/board/board_template.aspx?idx=18810&folder=0&list=0&bt=read&word=&field=content&page=1&pagesize=10&hcid=kbuilder&cid=…

查看全部问答>

浮点数格式化字符串

有一浮点数:4.12345,要格式化输出“+04.123\",即一位符号,两位整数,三位小数。 …

查看全部问答>

Error 0x80000200/-1135 Fatal Error

Error connecting to the target: Error 0x80000200/-1135 Fatal Error during: OCS,  Unrecoverable emulation error 晶振应该是起振的,不知道还应该检查什么地方?…

查看全部问答>

通过加速度计算倾角的方法

    这几天也买了几片MMA7455片子,还没有开始玩;一直在找资料;突然看到这里有个专区讨论很是高兴;不过也可惜的就是问的多答得少。做出来的多;开源的少。     也可能是出来不懂,也后多学学了;     我从网 ...…

查看全部问答>

ARM教材,不知有人发过没

本帖最后由 paulhyde 于 2014-9-15 08:53 编辑 传说是浙大ARM教材,分享一下,赚点芯币······  …

查看全部问答>

电动汽车充电站控制系统分析

  电动汽车作为一种发展前景广阔的绿色交通工具,今后的普及速度会异常迅猛,未来的市场前景也是异常巨大的。在全球能源危机和环境危机严重的大背景下,我国政府积极推进新能源汽车的应用与发展,充/换电站作为发展电动汽车所必须的重要配套基 ...…

查看全部问答>

这个芯片谁认识?----DSP5402外围

上面第一行,标志 V04 第二行,746 谢谢…

查看全部问答>

18.8元的WIFI+BT模块——SWB-A31

这个模块挺划来,就是外围电路要自己做,不知有没有高手有兴趣,因为天线需要自己接,感觉万用板焊的噪音有点大 …

查看全部问答>