bootloader详解(ARM学习计划)

本文详细介绍了ARM处理器从Nor Flash和Nand Flash启动的流程,重点解析了bootloader的工作原理。在Nor Flash启动时,程序直接运行;而在Nand Flash启动时,启动代码首先被加载到SRAM,然后分阶段执行,包括硬件初始化、bootloader拷贝到SDRAM、设置堆栈等步骤。此外,文章还提到了针对S3C2410A处理器的启动代码s3c2410a.s在启动过程中的作用。
摘要由CSDN通过智能技术生成

参考http://blog.csdn.net/jianchi88/article/details/7061089

分析ARM的两种启动方式

从Nor Flash启动:

Nor Flash一般为1M空间,程序可直接在Nor Flash中运行,地址映射为0

只需保证bootloader放在Nor Flash的0地址,ARM一上电会从Nor Flash的0地址执行


从Nand Flash启动:

ARM一上电Nand Flash的最前4k的内容会被写进soc的sram(起步阶石,大小4k)

地址映射为0,ARM从0地址取指执行,而一般的bootloader会大于4k,所以bootloader

会被分成stage1与stage2。



一.stage1分析

1.无论bootloader的大小,前4k会被拷进sram,完成硬件初始化


2.拷贝整个bootloader至sdram,如:从地址0x40000000开始放


3.设置堆栈


4.pc跳转至sdram执行stage2(多为c函数)

需要设置跳转到相对地址

	__asm__ __volatile__ (
		"ldr r0, =main\n"
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值