历史上的今天
返回首页

历史上的今天

今天是:2024年09月28日(星期六)

2021年09月28日 | ARM未定义指令异常学习中关于字节对齐的心得

2021-09-28 来源:eefocus

今天学习jz2440开发板的未定义指令异常这一节课程,跟随韦东山老师编写代码编译烧写后程序老师无法正常运行,经过仔细排查发现是字节未4字节对齐导致的,之前的程序中start.S文件如下开始:


_start:

/* 关闭看门狗 */

ldr r0, =0x53000000

ldr r1, =0

  str r1, [r0]


指令从开始就是按照4字节对齐排放的,这样运行程序没有问题。但当在_start标签后增加未定义指令异常处理语句后,代码如下:


_start:

     b reset

     b do_und

 

 do_und:

     ldr sp, =0x34000000

 

     stmdb sp!, {r0-r12, lr}

     mrs r0, cpsr

     ldr r1, =und_string

     bl printException

  

     ldmia sp!, {r0-r12, pc}^

 

  und_string:

     .string "underdefined instruction exception"

     

 .align 4                                                                     

 reset:

     /* 关闭看门狗 */

     ldr r0, =0x53000000

     ldr r1, =0

     str r1, [r0]


如果不在reset标签前增加.align 4语句,那么编译后的reset段代码的地址为0x300000043,就不是4字节对齐的,所以程序启动后无法正常跳转执行。

推荐阅读

史海拾趣

Barnbrook Systems Limited公司的发展小趣事

为了保持技术上的领先地位,Barnbrook积极寻求与高校、研究机构的合作。通过与这些机构的深入合作,Barnbrook不仅获得了最新的科研成果和人才支持,还成功研发出了一系列具有创新性的电子产品。这些产品不仅提升了公司的技术实力,也为公司的长期发展注入了新的活力。

Astec [Astec America, Inc]公司的发展小趣事

随着技术的不断成熟和市场的不断扩大,Astec开始积极寻求市场拓展的机会。公司不仅加大了在国内市场的宣传力度,还通过参加国际电子展会等方式,将产品推向了国际市场。同时,Astec还注重品牌形象的建立,通过提供优质的产品和服务,逐渐树立了良好的品牌形象。

GigPeak公司的发展小趣事

随着业务的不断扩展,GigPeak意识到国际化战略的重要性。在2015年,公司开始积极布局海外市场,先后在北美、欧洲和亚洲等地设立了研发中心和销售分支机构。通过深入了解当地市场需求和文化背景,GigPeak成功推出了一系列符合当地市场需求的定制化产品。这些举措不仅提升了GigPeak在全球市场的知名度和影响力,还为其带来了稳定的海外收入来源。

Elpaq公司的发展小趣事
Fong Ya Enterprise Co Ltd公司的发展小趣事
Fortiming Corporation公司的发展小趣事

背景:随着电子技术的快速发展,客户对频率控制产品的要求越来越高。

发展:Fortiming不断投入研发资源,进行技术创新和产品升级。公司成功开发出了一系列高精度、高稳定性的晶振产品,满足了市场对高品质频率控制产品的需求。同时,Fortiming还积极探索新的应用领域,如通信、汽车电子、物联网等,不断拓展市场边界。

问答坊 | AI 解惑

智能手机上可以使用的3G模组都有哪些?

我们现在需要用ARM的CPU做两款产品,一个是Netbook,一个是Barcode scanner,都需要加上CDMA2000/EVDO/HSxPA的3G模组,其中Netbook使用Android系统,Barcode scanner使用WM6.5系统,请问大家在开发类似产品的时候使用的都是哪家的3G模组呢? 我有 ...…

查看全部问答>

为什么将GPIO配置成中断模式后,GPGDAT就不能读了??

    将GPIO如GPG端口中的GPG1配置成中断模式(GPGCON中配的),这样的话GPGDAT就不能读了吧(至少2440的datasheet上是这么说的)?     但是我看别人写的驱动怎么将GPG配成了中断模式,却用读取GPGDAT的相应位来判断是否产 ...…

查看全部问答>

Windows Mobile 5.0,Windows Mobile 60设备,如何在我的程序运行过程中禁用上面的Power电源按钮

Windows Mobile 5.0,Windows Mobile 60设备,如何在我的程序运行过程中禁用上面的Power电源按钮…

查看全部问答>

如何上传图片?ADS调试C和汇编混合编程 只显示反汇编内容 怎么按照C逐行调试

就这么多分了   如题问题 不知道怎么上传图片 知道告诉一声…

查看全部问答>

源码请教,关于Tab Ctrl 的多对话框共享从串口采集的数据,怎么实现啊?

现在有个项目,28号就要,很急,没实现Tab Ctrl 的多对话框共享从串口采集的数据,有四个对话框,每个对话框分别有很多的控件,要显示从串口采集来的数据,怎么样才能实现共享啊,请大家帮帮忙!!! 其中Tab Ctrl 的多对话框主要使用下面的方案5实 ...…

查看全部问答>

ST32X103做电机控制好得不得了,服务也天下第一好.

                                 ST32X103做电机控制好得不得了,服务也天下第一好.…

查看全部问答>

stm32f107phy搭配问题

                                 最近想寻找一款PHY,工业级要求,10-100M的,dp83848或者类似产品,想找一款价格和货期合适的,不知道大家有什么建 ...…

查看全部问答>

建议增加psoc版块

  psoc是赛普拉斯半导体公司生产的可编程片上系统,具有模拟系统和数字系统,学校做工程实践时候用到,现在正在学习,希望本论坛能够增加这个版块给大家学习交流。…

查看全部问答>

无线通信模块在M2M领域的应用(四)

无线通信模块在M2M领域的应用(四) 传统农业生产的物质技术手段落后,主要依靠人力、畜力和各种手工工具以及一些简单机械。在现实中主要存在农业科技含量低,装备水平低,农业污染和水资源浪费严重,农业产出少,农民收入低,农产品品种少等问题。 ...…

查看全部问答>

F28027用SPI操作SD卡

大家好,最近在做一个比赛,需要使用SD卡来记录工作状态下的数据。但是对于文件系统和怎样对于SD卡进行操作不是很了解,所以和大家商讨一下。我先把我的两个函数放上来,大家帮我看看。 了、我没有使用FIFO功能,因为我觉得对于SD卡返回的信息的读 ...…

查看全部问答>