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