PXA272啟動引導程序的實現和功能擴展
系統存儲器初始化:通過配置功能寄存器來實現;在Pxa272上電后,SDRAM處于睡眠無時鐘狀態,初始化必須完成SDRAM狀態機轉化過程,相關的寄存器:MDREFR、MDCNFG等。SDRAM的狀態轉換通過配置存儲器的相應位,產生對應的命令實現狀態機轉換[1]。
4.2內核加載(Loader)
為加載內核,需初始化必要設備:網絡接口、串行接口、Flash等;PXA272支持BTUART(藍牙)、FFUART(全功能串口)、 STUART(標準串口)。可以通過串口實現與終端用戶的交互,終端打印信息是非常重要的調試手段。片載的Flash遵循CFI規范(Common Flash Interface)。
內核加載前規劃好內存空間:設置內存大小和起始地址,BootLoader、內核、ramdisk、root鏡像在flash和SDRAM中的存放區域、大小。在這里確定好下載各個鏡像文件存放的地址以及鏡像加載后釋放的位置。內存地址的安排關系到操作系統能否正常的啟動、運行。
Parts[i].name = XXXX; //鏡像名(Boot/Kernal/Ramdisk)
Parts[i].sramb = XXXX_SRAM_BASE;//在flash中的基地址
Parts[i].srams = XXXX_MAX_SIZE; //在flash中鏡像大小
Parts[i].dramb = XXXX_DRAM_BASE; //在DRAM中的基地址
Parts[i].drams = 0;
Parts[i].maxs = XXXX_MAX_SIZE; //鏡像大小
這里基本確定flash和DRAM的地址映射。
評論