U-BOOT源码分析及移植
3)gd->bd = (bd_t*)((char*)gd - sizeof(bd_t));
分配板子数据区bd首地址。
这样结合start.s中栈的分配,
stack_setup:
ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */
sub r0, r0, #CFG_MALLOC_LEN /* malloc area */
sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfoCFG_GBL_DATA_SIZE =128B */ #ifdef CONFIG_USE_IRQ
sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
#endif
sub sp, r0, #12 /* leave 3 words for abort-stack */
不难得出上文所述的内存分配结构。
下面几个函数是初始化序列表init_sequence[]中的函数:
4)cpu_init();定义于cpu/arm920t/cpu.c

