uboot第一阶段代码概要分析
2012-11-12 13:36
281 查看
Smdk2410默认情况下是从nor flash里面启动,但可修改源码让uboot支持从nand flash启动
根据board/samsumg/smdk2410下的u-boot.lds这个链接脚本知道u-boot启动的第一阶段函数是在cpu/arm920t/start.S。完成的功能主要包括
大概的代码运行流程如下:
源码中提供的启动方式是从nor flash
1:异常向量表重定位,cpu进入管理模式,重定向异常向量表
2. 关闭看门狗,屏蔽所以中断,初始化时钟频率,(如果有低水平的初始化,还包括关闭mmc,cache,初始化sdram内存控制器)
3:重定位uboot:把nor flash中uboot搬到SDRAM 中
4:在sdram上分配 堆(malloc空间)栈(irq和fiq栈空间)和全局变量空间,设置堆栈指针
5:清零BSS数据段
6:跳转到第二阶段入口函数 start_armboot (调至sdram中执行,函数在board.c文件中)。
<IMG onload="javascript:if(this.width>500)this.width=500;" border=0 src="http://blogimg.chinaunix.net/blog/upfile2/101016231324.jpg">
根据board/samsumg/smdk2410下的u-boot.lds这个链接脚本知道u-boot启动的第一阶段函数是在cpu/arm920t/start.S。完成的功能主要包括
大概的代码运行流程如下:
源码中提供的启动方式是从nor flash
1:异常向量表重定位,cpu进入管理模式,重定向异常向量表
2. 关闭看门狗,屏蔽所以中断,初始化时钟频率,(如果有低水平的初始化,还包括关闭mmc,cache,初始化sdram内存控制器)
3:重定位uboot:把nor flash中uboot搬到SDRAM 中
4:在sdram上分配 堆(malloc空间)栈(irq和fiq栈空间)和全局变量空间,设置堆栈指针
5:清零BSS数据段
6:跳转到第二阶段入口函数 start_armboot (调至sdram中执行,函数在board.c文件中)。
<IMG onload="javascript:if(this.width>500)this.width=500;" border=0 src="http://blogimg.chinaunix.net/blog/upfile2/101016231324.jpg">
相关文章推荐
- 五、uboot第一阶段代码分析 (2011-03-11 09:51)
- Uboot优美代码赏析2:第一阶段_硬件平台启动start.s分析
- Uboot优美代码赏析2:第一阶段_硬件平台启动start.s分析 .
- uboot第一阶段代码分析
- 六、uboot第二阶段代码简要分析
- uboot启动第一阶段详细分析
- uboot源码分析-第一阶段(汇编部分)
- uboot源码分析-第一阶段(汇编部分)
- uboot分析第一阶段学习笔记
- UBoot启动代码第一阶段流程
- uboot第一阶段分析(目前还有很多不懂的地方)
- uboot分析之第一阶段源码
- U-Boot启动第一阶段代码分析
- U-Boot启动第一阶段代码分析
- Uboot优美代码赏析2:第一阶段_硬件平台启动start.s分析
- 六、uboot第二阶段代码简要分析 (2011-03-11 16:21)
- uboot第一阶段详细分析
- uboot_1.1.6源码分析——第一阶段
- uboot 2013.01 代码简析(2)第一阶段初始化
- uboot第一阶段start.s简单分析