arm中引导主程序的汇编引导代码init.s分析

原创 2013年12月04日 13:48:50

C语言程序的入口都是main(),在调用它之前总要有一段初始化程序,用于准备堆栈、中断向量和程序变量等,完成所谓的

low level initialization,然后才能调用main()函数,因此这段代码的实现必须用汇编来写。

注意Init.s代码不顶格书写

大写的伪代码“AREA|DATA|,CODE,READONLY”开头的程序在SDRAM中可以运行,此段代码在汇编中调用C程序,需要用到IMPORT,b跳转到C代码段,EXPORT表示本程序段用到的变量提供给其他函数调用。

init.s:

       AREA |DATA|,CODE,READONLY   //表示下面引出的是名字为|DATA|的代码,属性为只读     

       ENTRY                  //ENTRY和END伪代码成对对齐出现,汇编程序段

       ldr r13,=0x1000            //将立即数存到r13,arm的堆栈指针,相当于SP

       IMPORT main                //IMPORT表示这是一个外部变量的标号,不在本程序

       b main                 //跳转到程序

       END

相关文章推荐

2440init.s 汇编代码分析

板子上电后就会从这里开始执行,主要完成基本初始化,还有判断是从nor还是nand启动,再实现把程序搬到SDRAM当中,在搬运成功后再跳到main函数里面执行。 我们现在开始来看看它的具体代码吧! ...

ARM 代码init.s

  • 2012年10月22日 16:16
  • 5KB
  • 下载

TX2440 项目实战-2440init.s 祥解 (ADS1.2编译) arm汇编基础学习终结

TX2440 项目实战-2440init.s 祥解 (ADS1.2编译) arm汇编基础学习终结   2440init.s启动,我分成九大部分,如下: ***第一步***:关看门狗,关中断. ...

【ARM】2440init.s文件分析(1)

;=========================================; NAME: 2440INIT.S; DESC: C start up codes;       Configur...

【ARM】2440init.s文件分析(2)

;这里引入一些在其它文件中实现在函数,包括为我们所熟知的main函数 ;IMPORT MMU_SetAsyncBusMode ;IMPORT MMU_SetFastBusMode ;hzh IMPOR...

ARM启动文件2440init.s分析

;========================================= ; NAME: 2440INIT.S ; DESC: C start up codes ;      Con...
  • chyMX
  • chyMX
  • 2016年01月21日 09:15
  • 676

arm启动文件2440init.s分析

最近整理电脑,找到了一些当初学习嵌入式linux时的资料,现在共享出来。方便大家学习之用,无所谓原创,无非就是在前人的基础上,进行了系统化的分析和综合而已。不过,还是加入了不少个人学习的思路跟方法,我...

ARM常用汇编及start.s初步分析

B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子 程序执行之前,将其下一条指令的地址拷贝到R14(LR,链接寄存器)。由于BL指令保存了下条指令的地 址,因...

mini2440开发板中启动代码2440INIT.S分析

声明:文章转自别处,非本人自创 http://hi.baidu.com/haijie0707/blog/item/6ff41a3bff7ccef93a87ced5.html ;==========...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:arm中引导主程序的汇编引导代码init.s分析
举报原因:
原因补充:

(最多只允许输入30个字)