O�渖系��用�碚f,�@些引�аb�d程序都�@得�^于�碗s和冗�L。E300系列�理芯片,�O�了一款小型BootLoader程序,并命名��Genesis。本文中�_�l的硬件�h境如下:�理器采用MPC83xx系列;�却娌捎�512M的DDR2�却�;�W存采用8MB的�W存;串口采用uart16550;波特率采用115200。序在mvl-linux、linux-kernal-2.6.10和gcc��g器�h境下��g。code程序:entry.S;board.c;cpu.c;console.c;main.c。�@里,entry.S是程序的入口。@�@些�R�代�a展�_。D[0:31]=0x00000000,�泶_定它的��B。如果CPU在�x取��值�r,信�引�_RSTCONF#�榈碗�平,�t硬件�臀慌渲米�(HRCW)�目��上�x取;若RSTCONF#�楦唠�平,�tHRCW�x用�炔康哪��J值。0x00000100,�_始�x第1�l指令。在Genesis中,�@�l指令���于entry.S中_start:�颂��。代�a段如下。P�]CPU的看�T狗。M入第二�A段的CPU初始化,即C�Z言�h境:setup_stack_in_data_cache_on_r1:堆�=�立好以后,�R上�M入步�ES1,它跳�D到cpu.c里面的cpu_init()函��。在�@段代�a里面,配置所有的CPU控制寄存器。cpu_init。��配置�Y束以后,�M入步�ES2,指�返回到entry.S。�o接著�绦姓{用board_init函��,�M入步�ES3,跳�D到board.c里面,�绦�board_init()函��。初始化CPU的PLL和系�y�r�寄存器。serial_init()�{用的是console.c。CSB_CLK�r�分�l得到的。DDR2�型的�却�l。大大�p少��DDR�却娴呐渲霉ぷ�。y里,就是通�^I2C�碜x取DDR�却�l上的基本信息,然后根���@些信息正�_配置CPU的DDR控制器。�M入步�ES4,返回entry.S。后�绦胁襟ES5,�{用main.c里面的函��run_into_ram(),目的是���F代�a的搬移。relocate_code。RAM里面,然后直接跳�D到�地址,�_始�绦胁襟ES7。(*)(void))dest_addr;(*jImage)();在程序流程�D里面�有步�ES8、S9。r候的指�跳�D方向。吉ICP��06005989。