由于Uboot2011.06對S3C6410有了很好的支持,所以采用Uboot2011.06版本。
一、 移植環(huán)境
主 機(jī):VMWare-ubuntu
開發(fā)板:ok6410—512M nandflash,Kernel:2.6.30.4
u-boot:u-boot-2011.06
二、 源碼獲得
Uboot源碼到:ftp://ftp.denx.de/pub/u-boot/下載
三、 本次移植的功能實現(xiàn)
· 支持Nand Flash讀寫
· 支持從Nand Flash/SD啟動(SD卡啟動只在uboot1.1.6中完成)
· 支持CS8900或者DM9000網(wǎng)卡
· 支持Yaffs文件系統(tǒng)
· 支持USB下載
四、 移植步驟
1. 建立自己的開發(fā)板項目并測試編譯
目前u-boot對很多CPU直接支持,可以查看board目錄的一些子目錄,如:board/samsung/目錄下就是對三星一些ARM處理器的支持,有smdk2400、smdk2410和smdk6400,但沒有6410,所以我們就在這里建立自己的開發(fā)板項目。
1)因6410和6400的資源差不多,主頻和外設(shè)有點差別,所以我們就在board/samsung/下建立自己開發(fā)板的項目,取名叫smdk6410
#tar -jxvf u-boot-2011.06.tar.bz2 //解壓源碼
#cd u-boot-2011.06/board/samsung/ //進(jìn)入目錄
#mkdir smdk6410 //創(chuàng)建smkd6410文件夾
2)因6410和6400的資源差不多,所以就以6400項目的代碼作為模板,以后再修改
#cp -ar smdk6400/* smdk6410/ //將6400下所有的代碼復(fù)制到6410下
#cd smdk6410 //進(jìn)入smdk6410目錄
#mv smdk6400.c my6410.c //將smdk6410下的smdk6400.c改名為smdk6410.c
#cd ../../../ //回到u-boot根目錄
#cp include/configs/smdk6400.h include/configs/smdk6410.h //建立6410配置頭文件
注:把新建smdk6410下smdk6400_nand_spl.c更名位smdk6410_nand_spl.c,并且把smdk6410_nand_spl.c和makefile文件中的6400改為6410。其他文件不需要改動。
3)修改u-boot跟目錄下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立smdk6410_config的編譯選項,另外還要指定交叉編譯器
#vim Makefile
CROSS_COMPILE ?= arm-linux- //指定交叉編譯器為arm-linux-gcc
smdk6410_noUSB_config
smdk6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/smdk6410 // 注意@前不是空格,是Tab鍵
@mkdir -p $(obj)nand_spl/board/samsung/smdk6410
@echo '#define CONFIG_NAND_U_BOOT' > $(obj)include/config.h
@if [ -z '$(findstring smdk6410_noUSB_config,$@)' ]; then
echo 'RAM_TEXT = 0x57e00000' >> $(obj)board/samsung/smdk6410/config.tmp; //前面兩個Tab鍵
$(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx;
else
echo 'RAM_TEXT = 0xc7e00000' >> $(obj)board/samsung/smdk6410/config.tmp;
$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx;
fi
@echo 'CONFIG_NAND_U_BOOT = y' >> $(obj)include/config.mk
*說明:arm :CPU的架構(gòu)(ARCH)
arm1176:CPU的類型
smdk6410 :對應(yīng)在board目錄下建立新的開發(fā)板項目的目錄
samsung:新開發(fā)板項目目錄的上級目錄,如直接在board下建立新的開發(fā)板項目的目錄,則這里就為NULL
s3c64xx:CPU型號
*注意:編譯選項格式的第二行要用Tab鍵開始,否則編譯會出錯
4)進(jìn)入頂層目錄nand_spl/board/samsung目錄新建目錄smdk6410,并將smdk6400下的文件復(fù)制到剛剛新建的smdk6410下
#cd nand_spl/board/samsung //
#cp –ar smdk6400/* smdk6410/
注:修改目此6410目錄下的makefile文件,把里面的6400改為6410
5)測試編譯新建的smdk6410開發(fā)板項目
#make smdk6410_config //如果出現(xiàn)Configuring for smdk6410 board...則表示設(shè)置正確
#make //編譯后在根目錄下會出現(xiàn)u-boot.bin和u-boot-nand.bin文件,則u-boot移植的第一步就算完成了
由于此版本的u-boot對于串口和時鐘在開始配置文件中就已經(jīng)初始化,對于ARM1176有很好的支持,利用從SD卡啟動的uboot將u-boot-nand.bin下載到nand flash中,同時將開發(fā)板上SW2設(shè)置到從Nand flash啟動位置。利用SecureCRT.exe軟件觀察串口打印信息如下:
可以看到移植在tq6410上移植uboot已經(jīng)成功??墒荖or flash是2M可是信息上顯示為0,是因為沒有添加Nor flash的驅(qū)動引起的,而且開發(fā)板上自帶的是DM9000AE的100M網(wǎng)卡,而uboot默認(rèn)支持CS8900所以開始添加uboot的相關(guān)功能。
移植是采用SD燒寫nand flash的uboot,為了方便燒寫和調(diào)試首先移植網(wǎng)卡實現(xiàn)tftp下載。
上一篇:Centos 上搭建nfs且可掛載到6410開發(fā)板
下一篇:編譯可加載觸摸屏驅(qū)動的uImage內(nèi)核
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 一種用于 LED 照明的 LED 大功率 LED 驅(qū)動器
- LT4276BIUFD 90W LTPoE++ 電源在正向模式下的典型應(yīng)用電路,具有 12V、7A 輸出
- OM7863: BGA3015演示板,5 MHz至300 MHz 15 dB增益逆向放大器應(yīng)用
- NHS3100UCODEADK: NHS3100 - UCODE-I2C
- 基于STM32L4和ST4SIM的蜂窩狀物聯(lián)網(wǎng)探索套件
- 用于手機(jī)的 5-LED 通用 LED 驅(qū)動器
- NUCLEO-L496ZG,STM32 Nucleo-144開發(fā)板,帶STM32L496ZGT6 MCU,支持Arduino、ST Zio和Morpho
- 適用于 36V SLA 電池充電器的 LT3791MPFE-1 2.5A 降壓-升壓 LED 驅(qū)動器的典型應(yīng)用電路
- 使用 Analog Devices 的 LTC1771ES8 的參考設(shè)計
- 用于便攜式的 1.4 至 18V 模擬放大器
- 蜂巢能源2025年試產(chǎn)半固態(tài)電池,2027年大批量供貨
- 激光雷達(dá)進(jìn)化論:RoboSense如何持續(xù)領(lǐng)跑?
- 法雷奧-全景顯示技術(shù) Panovision | 申報2025第七屆金輯獎中國汽車新供應(yīng)鏈百強(qiáng)
- 公安部:目前我國市售汽車搭載的“智駕”系統(tǒng),都不具備“自動駕駛”功能
- 德賽西威-旗艦級AI智能座艙域控制器 | 申報2025第七屆金輯獎中國汽車新供應(yīng)鏈百強(qiáng)
- Mobileye推出駕駛員監(jiān)測系統(tǒng)(DMS)技術(shù) ,實現(xiàn)人與車輛協(xié)同駕駛
- 第三屆安富利汽車生態(tài)圈峰會盛大啟幕,雙城聯(lián)動激發(fā)智慧出行產(chǎn)業(yè)新動能
- Vicor Corporation 2025年第二季度財報:專利訴訟和解推動強(qiáng)勁增長
- 智能底盤2.0競賽,這家外資巨頭按下加速鍵
- GaN技術(shù)如何應(yīng)用到人形機(jī)器人執(zhí)行關(guān)節(jié)?