关于u-boot中gd变量
2015-06-26 08:35
225 查看
在<TOPDIR>/lib_arm/board.c中
start_armboot函数中,有一个gd变量
gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t));
gd在由该文件中的DECLARE_GLOBAL_DATA_PTR申明
DECLARE_GLOBAL_DATA_PTR在<TOPDIR>/include/asm/global_data.h中定义。
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
声明一个寄存器变量gd占用r8,因此gd不占内存。同时避免编译器把r8分配给其它的变量。所以gd就是r8,用r8来保存内存地址,达到全局使用目的。
gd_t是该文件中定义的一个global_data类型的结构体。结构中使用了bd_t结构
gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。
gd_t: global data数据结构定义,位于文件 include/asm/global_data.h。其成员主要是一些全局的系统初始化参数。
bd_t : board info数据结构定义,位于文件 include/asm/u-boot.h。保存板子参数。
start_armboot函数中,有一个gd变量
gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t));
gd在由该文件中的DECLARE_GLOBAL_DATA_PTR申明
DECLARE_GLOBAL_DATA_PTR在<TOPDIR>/include/asm/global_data.h中定义。
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
声明一个寄存器变量gd占用r8,因此gd不占内存。同时避免编译器把r8分配给其它的变量。所以gd就是r8,用r8来保存内存地址,达到全局使用目的。
gd_t是该文件中定义的一个global_data类型的结构体。结构中使用了bd_t结构
gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。
gd_t: global data数据结构定义,位于文件 include/asm/global_data.h。其成员主要是一些全局的系统初始化参数。
bd_t : board info数据结构定义,位于文件 include/asm/u-boot.h。保存板子参数。
相关文章推荐
- U-Boot源码分析及移植-fs2410
- U-BOOT源码分析及移植
- U-Boot启动过程--详细版的完全分析(二)
- U-Boot-2009-03移植笔记(移植准备)
- U-Boot-2009-03移植笔记(点亮第一展灯)
- U_boot 的 bootcmd 和bootargs参数详解
- U-Boot移植全程指导
- u-boot1.1.6-undefined reference to "raise"
- 09课01节 u-boot-1.1.16编译补丁;
- u-boot模仿
- 自定义u-boot启动logo的方法
- 2440 u-boot编译
- u-boot.lds与-Ttext $(TEXT_BASE)
- U-Boot移植(1)--在U-boot中建立自己的开发板
- 追踪uboot下tftp命令的代码执行过程-Nagul
- 嵌入式系统 Boot Loader 技术内幕
- 嵌入式linux系统log文件的几个地方
- 常用的uboot的bootargs设置
- ubuntu12.04的NFS配置
- U-boot 之TFTP服务器配置