You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳<br />
typedef struct global_data {<br />
bd_t *bd;<br />
unsigned long flags;<br />
unsigned long baudrate;<br />
unsigned long have_console; /* serial_init() was called */<br />
unsigned long reloc_off; /* Relocation Offset */<br />
unsigned long env_addr; /* Address of Environment struct */<br />
unsigned long env_valid; /* Checksum of Environment valid? */<br />
unsigned long fb_base; /* base address of frame buffer */<br />
#ifdef CONFIG_VFD<br />
#endif<br />
#if 0<br />
#endif<br />
} gd_t;<br />
unsigned char vfd_type; /* display type */<br />
unsigned long cpu_clk; /* CPU clock in Hz! */<br />
unsigned long bus_clk;<br />
unsigned long ram_size; /* RAM size */<br />
unsigned long reset_status; /* reset status register at boot */<br />
void **jt; /* jump table */<br />
┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻<br />
而此全局变量gd_t *gd会被其他很多文件所引用,详情自己去代码中找。<br />
.macro get_fiq_stack @ setup FIQ stack<br />
ldr sp, FIQ_STACK_START<br />
.endm<br />
此处和上面类似,把地址为FIQ_STACK_START中的内容,给sp。<br />
其中:<br />
FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;<br />
即FIQ的堆栈起始地址,是IRQ堆栈起始地址减去IRQ堆栈的大小。<br />
/*<br />
* exception handlers<br />
*/<br />
.align 5<br />
undefined_instruction:<br />
get_bad_stack<br />
bad_save_user_regs<br />
bl do_undefined_instruction<br />
.align 5