资源描述:
《uboot代码详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/**armboot-StartupCodeforARM920CPU-core**Copyright(c)2001MariusGr鰃er*Copyright(c)2002AlexZ黳ke*Copyright(c)2002GaryJennejohn**SeefileCREDITSforlistofpeoplewhocontributedtothis*project.**Thisprogramisfreesoftware;youcanredistributeitand/or*mod
2、ifyitunderthetermsoftheGNUGeneralPublicLicenseas*publishedbytheFreeSoftwareFoundation;eitherversion2of*theLicense,or(atyouroption)anylaterversion.**Thisprogramisdistributedinthehopethatitwillbeuseful,*butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof*MERCHANTABILITYorFITNESSFO
3、RAPARTICULARPURPOSE.Seethe*GNUGeneralPublicLicenseformoredetails.**YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense*alongwiththisprogram;ifnot,writetotheFreeSoftware*Foundation,Inc.,59TemplePlace,Suite330,Boston,*MA02111-1307USA*/#include#include/*******
4、*********************************************************************Jumpvectortableasintable3.1in[1]***************************************************************************///global声明一个符号可被其他文档引用,相当于声明了一个全局变量,.globl和.global相同。 //该部分为处理器的异常处理向量表。地址范围为0x0000 0000 ~ 0x0000 0020,
5、刚好8条指令。.globl_start_start:bresetldrpc,_undefined_instructionldrpc,_software_interruptldrpc,_prefetch_abortldrpc,_data_abortldrpc,_not_usedldrpc,_irqldrpc,_fiq// .word伪操作用于分配一段字内存单元(分配的单元都是字对齐的),并用伪操作中的expr初始化。.long和.int作用与之相同。_undefined_instruction:.wordundefined_instruction_softw
6、are_interrupt:.wordsoftware_interrupt_prefetch_abort:.wordprefetch_abort_data_abort:.worddata_abort_not_used:.wordnot_used_irq:.wordirq_fiq:.wordfiq // .align伪操作用于表示对齐方式:通过添加填充字节使当前位置满足一定的对齐方式。.balign的作用同.align。 // .align {alignment} {,fill} {,max} // 其中:alignment用于指定对齐方式,可能的取值
7、为2的次幂,缺省为4。fill是填充内容,缺省用0填充。max是填充字节数最大值,假如填充字节数超过max, // 就不进行对齐,例如: // .align 4 /* 指定对齐方式为字对齐 */.balignl16,0xdeadbeef/****************************************************************************StartupCode(resetvector)**doimportantinitonlyifwedon'tstartfrommemory!*relocatearm
8、boottoram*setupstack*jumptosecond