ARM的启动代码为什么要用汇编语言

发布时间:2016-8-9 10:03    发布者:designapp
关键词: ARM , 汇编语言启动代码

ARM中讲到ARM的启动代码必须有汇编语言写成,一直不是很了解。

书上给的原因是

C语言不具备上电立即运行的条件:

全局变量没有初始化、系统堆栈没有初始化等。

单片机的C语言怎么就不要启动代码?(keil带有启动代码,但是处理不好会出错,一般不用也没事)

看来还是和编译器有关,今天看到了一个比较信服的答案。

编译器在编译C语言时 ,会在前加一段固定的代码**.O文件,他是编译器自带的一个文件,

即C语言执行的第一条指令不是C语言的main入口函数中,而是**.O中指令。

指令初始化后调用MAIN函数入口,但是并不能直接运行,我们必须写一段代码来取代他。

所以我们经常能看到一些超简单的启动代码:

AREA |DATA|,CODE,READONLY

ENTRY

ldr r13, =0x1000

IMPORT ledMain

b ledMain

END

如上。
本文地址:https://www.eechina.com/thread-171643-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表