- 3
- 0
- 约8.01万字
- 约 59页
- 2016-11-22 发布于贵州
- 举报
U-Boot启动二阶段代码分析
U-Boot启动第二阶段代码分析 (2012-03-23 15:10)一键转载
标签: 二 分类: uboot
U-Boot第一阶段的启动流程。(nandflash启动,把nand的4k代码考到sram中,因为nand没址线,不能映射到内存,所以通过sram进行过度,sram中4k代码把整个uboot拷贝到sdram上,初始化好堆栈,为c语言提供条件,进入uboot的第二阶段! )这个阶段主要是初始化硬件设备,为加载U-Boot的第二阶段代码准备RAM空间最后跳转到lib_arm/board.c中start_armboot函数,这是第二阶段的入口点。
在上一篇文章中,我们介绍了u-boot启动的时候汇编语言的部分,当时我们进行了一些简单的初始化,并且为C语言的执行建立的环境(堆栈),现在我们看看当从汇编语言转到C语言的时候执行的第一个函数( start_armboot (),在lib_arm\board.c中),该函数进行了一系列的外设初始化,然后调用main_loop (),根据配置来选择是直接加载Linux内核还是进入等待命令模式。
1、在介绍该函数之前,我们需要看一看几个数据结构,这些是u-boot中几个重要的数据结构:
(1)gd_t结构体
U-Boot使用了一个结构体gd_t来存储全局数据区的数据,这个结构体在include/asm-arm/global_data.h中定义如下:
typedef struct global_data {
bd_t *bd; //与板子相关的结构,见下面
unsigned long flags;
unsigned long baudrate;
unsigned long have_console; /* serial_init() was called */
unsigned long reloc_off; /* Relocation Offset */
unsigned long env_addr; /* Address of Environment struct */
unsigned long env_valid; /* Checksum of Environment valid? */
unsigned long fb_base; /* base address of frame buffer */
#ifdef CONFIG_VFD //我们一般没有配置这个,这个是frame buffer的首地址
unsigned char vfd_type; /* display type */
#endif
#if 0
unsigned long cpu_clk; /* CPU clock in Hz! */
unsigned long bus_clk;
unsigned long ram_size; /* RAM size */
unsigned long reset_status; /* reset status register at boot */
#endif
void **jt; /* jump table */
} gd_t;
/*
* Global Data Flags
*/
#define GD_FLG_RELOC 0x00001 /* Code was relocated to RAM */
#define GD_FLG_DEVINIT 0x00002 /* Devices have been initialized */
#define GD_FLG_SILENT 0x00004 /* Silent mode */
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm (r8)
在global_data.h中U-Boot使用了一个存储在寄存器中的指针gd来记录全局数据区的地址:
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm (r8)
DECLARE_GLOBAL_DATA_PTR定
您可能关注的文档
最近下载
- 教科版一年级下册科学教学计划.docx VIP
- 早产儿脑室内出血预防专家共识(2025).pptx VIP
- 如何找回误删微信好友,微信好友一键恢复.doc VIP
- 2019年河南专升本考试公共英语(真题).pdf VIP
- 2025年房地产经纪人经纪人职业道德失范投诉处理专题试卷及解析.pdf VIP
- 2025年碳排放管理师林业碳汇区块链技术应用专题试卷及解析.pdf VIP
- 2025年拍卖师机动车拍卖成交价款支付与结算风险控制专题试卷及解析.pdf VIP
- 2025年AWS认证SQS消息多线程处理专题试卷及解析.pdf VIP
- 2025年房地产经纪人个人以不动产投资入股个税处理专题试卷及解析.pdf VIP
- 2015年河南省专升本《英语》考试真题(含解析).pdf VIP
原创力文档

文档评论(0)