Chinaunix首页 | 论坛 | 博客
  • 博客访问: 862580
  • 博文数量: 156
  • 博客积分: 6553
  • 博客等级: 准将
  • 技术积分: 3965
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-22 18:36
文章存档

2012年(3)

2011年(43)

2010年(110)

分类: LINUX

2010-10-16 23:14:20

Smdk2410默认情况下是从nor flash里面启动,但可修改源码让uboot支持从nand flash启动

 

根据board/samsumg/smdk2410下的u-boot.lds这个链接脚本知道u-boot启动的第一阶段函数是在cpu/arm920t/start.S。完成的功能主要包括

大概的代码运行流程如下:

源码中提供的启动方式是从nor flash

1:异常向量表重定位,cpu进入管理模式,重定向异常向量表

2. 关闭看门狗,屏蔽所以中断,初始化时钟频率,(如果有低水平的初始化,还包括关闭mmccache,初始化sdram内存控制器)

3:重定位uboot:把nor flashuboot搬到SDRAM

 

4:在sdram上分配 堆(malloc空间)栈(irqfiq栈空间)和全局变量空间,设置堆栈指针

 

5:清零BSS数据段

 

6:跳转到第二阶段入口函数 start_armboot (调至sdram中执行,函数在board.c文件中)。

 

阅读(913) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~