基于S3C2410A的嵌入式系統(tǒng)的U-Boot移植
(1)跳轉(zhuǎn)到C語(yǔ)言程序之后,首先定義初始化函數(shù)表,程序在lib-arm/board.e中,如下所示:
(2)初始化FLASH設(shè)備和顯示FLASH設(shè)備信息;
(3)初始化系統(tǒng)內(nèi)存分配函數(shù);
(4)如果目標(biāo)系統(tǒng)擁有NAND設(shè)備,則初始化NAND設(shè)備;
(5)初始化顯示設(shè)備;
(6)初始化網(wǎng)絡(luò)設(shè)備,填寫(xiě)IP地址、MAC地址等信息;
(7)開(kāi)啟中斷處理;
(8)進(jìn)入命令循環(huán),接收用戶(hù)從串口的命令輸入。
3 U-Boot的移植方法
本文選用交叉編譯環(huán)境arm-linux-gcc-2.95.3,選用U-Boot-1.1.4版本作為移植平臺(tái)。為了使U-Boot支持新的開(kāi)發(fā)板,一種簡(jiǎn)便的做法是在U-Boot已經(jīng)支持的開(kāi)發(fā)板中選擇一種與目標(biāo)板接近的,在其基礎(chǔ)上進(jìn)行修改。這里選用的是smdk2410的配置。
3.1 修改cpu/arm920t/start.S文件
Start.s是采用匯編語(yǔ)言編寫(xiě)的U-Boot程序入口代碼,完成對(duì)底層硬件的初始化,其中有一個(gè)很重要的功能是從NAND FLASH中把Stage 2階段的代碼復(fù)制到SDRAM中。在此階段,涉及到對(duì)NANDFLASH的讀操作,在U-Boot中,沒(méi)有對(duì)NANDFLASH讀操作的驅(qū)動(dòng),采用以下方法實(shí)現(xiàn):
通過(guò)調(diào)用board/smdk2410/nand_read.C中的nand_read_11函數(shù)將Stage 2階段的代碼復(fù)制到ram中。
3.2 修改board/smdk2410目錄下文件
(1)增加對(duì)NANDFLASH的讀驅(qū)動(dòng)nand_read.c
評(píng)論