DECLARE_GLOBAL_DATA_PTR; 这个宏在include/global_data.h中
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
/* 声明一个寄存器变量gd占用r8。这个宏在所有需要引用全局数据指针gd_t *gd的源码中都有声明 * 这个声明也避免编译器把r8分配给其他的变量,所以gd就是r8,这个指针变量不占用内存。 *//* 定义gd为gd_t类型指针,存储在寄存器r8中 *//* register:表示变量对于执行速度非常重要,因此应该放在机器的寄存器中(寄存器独立于内存,通常在处理器芯片上) *//* volatile:用于指定变量的值可以由外部过程异步修改,例如中断例程 */