uboot的启动第二阶段
代码所在文件名为:board.c
typedef int (init_fnc_t) (void);
/*
这是一个函数类型。
*/
//代码70行
DECLARE_GLOBAL_DATA_PTR //#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
/*
*定义了一个全局变量gd(是一个指针类型的,占4个字节)。
*volatile修饰表示可变。
*用register修饰表示这个变量尽可能的放在寄存器中。
*asm("r8")是gcc支持的一种语法,作用是将gd放在寄存器r8中。
*gd_t是一个结构体,里面的内容是uboot中常用的全局变量(定义在include/asm-arm/global_data.h中)
*/
typedef struct global_data {
bd_t *bd;
unsigned long flags; // struct board_info指针,保存板子信息
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
unsigned char vfd_type; /* display type */
#endif
#if 0
unsigned long cpu_clk; /* CPU clock in Hz! */
unsigned long bus_clk;
phys_size_t ram_size; /* RAM size */
unsigned long reset_status; /* reset status register at boot */
#endif
void **jt; /* jump table */
} gd_t;
参考博文
https://blog.youkuaiyun.com/wendellluntan/article/details/74227799
https://blog.youkuaiyun.com/wowricky/article/details/83281040