1 / 18
文档名称:

at91bootstrap nandflash引导代码分析.pdf

格式:pdf   大小:119KB   页数:18页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

at91bootstrap nandflash引导代码分析.pdf

上传人:977562398 2019/8/18 文件大小:119 KB

下载得到文件列表

at91bootstrap nandflash引导代码分析.pdf

相关文档

文档介绍

文档介绍:AT91BootStrap--,入口为reset,包含text,dummy,data,bss段。.=ALIGN(4);.text:{_stext=.;*(.text)*(.rodata)/*read-onlydata(constants)*/*(.rodata*).=ALIGN(4);*(.glue_7).=ALIGN(4);*(.eh_frame).=ALIGN(4);_etext=.;}/**//*.data:AT(ADDR(.text)+SIZEOF(.text)SIZEOF(.ARM.*){*/.=ALIGN(4);.dummy:{_edummy=.;}.data:AT(LOADADDR(.dummy)){_sdata=.;*(.vectors)*(.data)_edata=.;}/**/.bss(NOLOAD):{.=ALIGN(4);_sbss=.;*(.bss)_ebss=.;}2./,第一阶段初始化,汇编代码reset:/*程序入口*/_exception_vectors:/*异常向量表,必须放置跳转指令,使得芯片检测为有效代码*/breset_vector/*reset*/bundef_vector/*UndefinedInstruction*/bswi_vector/*SoftwareInterrupt*/bpabt_vector/*PrefetchAbort*/bdabt_vector/*DataAbort*/.word_edata/*文件大小,SAM-BA以此校验程序SizeoftheimageforSAM-BA*/birq_vector/*IRQ:readtheAIC*/bfiq_vector/*FIQ*/…reset_vector:/*初始化堆栈*/_init_stack:/*TOP_OF_MEMORY在/board/at91sam9x5ek/at91sam9x5nf_defconfig中定义CONFIG_TOP_OF_MEMORY="0x308000",即内部32KRAM的末尾*/ldrsp,=TOP_OF_MEMORY/*执行时钟初始化,函数在/driver/*/ldrr4,=lowlevel_clock_initmovlr,pcbxr4/**/_init_data:/*从_lp_data读入内存地址分配,_lp_data在文件末尾定义如下_lp_data:.*/ldrr2,=_lp_dataldmiar2,{r1,r3,r4}/*r1=_edummy,r3=_sdata,r4=_edata*/1:cmpr3,r2,[r1],#r2,[r3],#1b/*初始化BSS数据段,全部用零填充Initializethebsssegment*/_init_bss:/*从_lp_bss读入BSS段的内存地址,_lp_bss在文件末尾定义如下_lp_bss:.*/adrr2,_lp_bssldmiar2,{r3,r4}movr2,#01:cmpr3,r2,[r3],#1b/*跳转到C代码的Main函数执行第二阶段初始化(withinterworking)*/_branch_main:ldrr4,=mainmovlr,pcbxr4/*main函数会把用户程序载入到RAM中并返回,到此跳转至用户程序执行*/_go:/*CONFIG_MACH_TYPE在/board/at91sam9x5ek/at91sam9x5nf_defconfig中定义CONFIG_MACH_TYPE="3373"*/ldrr1,=MACH_TYPEmovlr,pcbxr0/*main函数会返回用户程序在内存中的加载地址,存在r0中*//*第一阶段的时钟初始化函数*/voidlowlevel_clock_init(){unsignedlongtmp;tmp=read_pmc(PMC_MCKR);tmp&=~AT91C_PMC_CSS;tmp|=AT91C_PMC_CSS_MAIN_CLK;write_pmc(PMC_MCKR,tmp);while(!(read_pmc(PMC_SR)&AT91C_PMC_MCKRDY));if(!(r

最近更新