在uboot源码中,按照uboot代码流程,进入第二阶段的入口函数,start_armboot, 慕名奇妙的来了一个变量gd, 初始化如下:
gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t));
还是真不好找到这个变量定义的地方,只有认真的阅读代码才知道。以下给出这个变量的定义。
DECLARE_GLOBAL_DATA_PTR;
//在board.c最上面
DECLARE_GLOBAL_DATA_PTR定义如下:
以下应用:http://hi.baidu.com/rwen2012/item/783c47cf40d23427e80f2e51
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")