移植篇(一)-----修改Makefile,生成編譯目標(biāo)---S3C6410
----------------------------------------------------------
使用環(huán)境
PC: Centos5.4
kernel: 3.0.1
corss: arm-linux-gcc 4.4.1
arm: s3c6410
uboot: uboot-2010-03
----------------------------------------------------------
開(kāi)始教程之前.你需要下載源碼,解壓....此處略過(guò)千萬(wàn)行~~源碼為uboot2010.03這個(gè)..別整錯(cuò)了.錯(cuò)了也沒(méi)事,都差不多~
這里,我們直接打開(kāi)Makefile,找到smdk6400_config,根據(jù)6400 添加6410 的目標(biāo)......如下:
#########################################################################
## ARM1176 Systems
#########################################################################
smdk6400_noUSB_config
smdk6400_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/smdk6400
@mkdir -p $(obj)nand_spl/board/samsung/smdk6400
@echo '#define CONFIG_NAND_U_BOOT' > $(obj)include/config.h
@if [ -z '$(findstring smdk6400_noUSB_config,$@)' ]; then
echo 'RAM_TEXT = 0x57e00000' >> $(obj)board/samsung/smdk6400/config.tmp;
$(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx;
else
echo 'RAM_TEXT = 0xc7e00000' >> $(obj)board/samsung/smdk6400/config.tmp;
$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6400 samsung s3c64xx;
fi
@echo 'CONFIG_NAND_U_BOOT = y' >> $(obj)include/config.mk
smdk6410_noUSB_config
smdk6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/smdk6410
@mkdir -p $(obj)nand_spl/board/samsung/smdk6410
@echo '#define CONFIG_NAND_U_BOOT' > $(obj)include/config.h
@if [ -z '$(findstring smdk6400_noUSB_config,$@)' ]; then
echo 'RAM_TEXT = 0x57e00000' >> $(obj)board/samsung/smdk6410/config.tmp;
$(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
接著修改交叉編譯器:
# set default to nothing for native builds
ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE ?= arm-linux-
endif
下面先編譯試下...肯定很多錯(cuò)誤喔~~~
好了,那我這里就犯?jìng)€(gè)傻.來(lái)Make下,首先你得Make smdk6410_config
我這第一個(gè)錯(cuò)誤是如下:
fatal error: configs/smdk6410.h: No such file or directory
為啥呢?為什么會(huì)出現(xiàn)這個(gè)文件沒(méi)有呢?到底哪個(gè)文件里面居然能未卜先知,知道我們要添加smdk6410.h呢?
我自問(wèn)自答吧...你可以看分析篇中,mkconfig中最后有寫(xiě)入config.h中的一句話,有這么一句#include $1 沒(méi)錯(cuò),就是我們板級(jí)的名字smdk6410 這樣uboot就有了未卜先知的能力...具體查看分析篇 好.我們復(fù)制smdk6400.h cp include/configs/smdk6400.h include/configs/smdk6410.h 好,我們繼續(xù)make,接著是我的第二個(gè)錯(cuò)誤.沒(méi)有smdk6410這個(gè)目錄...哎~~這里就不分析為什么會(huì)冒出來(lái)smdk6410這個(gè)目錄了..請(qǐng)看分析篇 make -C board/samsung/smdk6410/ make[1]: 正在進(jìn)入目錄 `/home/LinuxProject/u-boot/u-boot-2010.03/board/samsung/smdk6410' make[1]: *** 沒(méi)有指明目標(biāo)并且找不到 makefile。 停止。 make[1]:正在離開(kāi)目錄 `/home/LinuxProject/u-boot/u-boot-2010.03/board/samsung/smdk6410' make: *** [board/samsung/smdk6410/libsmdk6410.a] 錯(cuò)誤 2 我們依舊復(fù)制smdk6400的.不過(guò)得稍微修改下里面的文件喔~~把smdk6400 都改成smdk6410 cd board/samsung/ cp smdk6400 smdk6410 -rf cd smdk6410/ 修改smdk6400.c 為smdk6410.c 打開(kāi)smdk6410.c 修改頭文件#include 沒(méi)錯(cuò),這個(gè)頭文件是沒(méi)有的,一會(huì)自己復(fù)制下....依舊是復(fù)制s3c6400.h cp include/asm-arm/arch-s3c64xx/s3c6400.h include/asm-arm/arch-s3c64xx/s3c6410.h 這里為什么復(fù)制的路徑不是asm/arch請(qǐng)看分析篇,在make smdk6410_config的時(shí)候.會(huì)根據(jù)參數(shù)建立軟連接,最后就是這個(gè)目錄 該目錄下的其他文件也得看看有沒(méi)有這個(gè)頭文件.需要修改呦~~~ 好了.最后剩下Makefile需要修改了.在編譯錯(cuò)誤中說(shuō),libsmdk6410.a 這個(gè)沒(méi)有...對(duì)滴..需要把Makefile中的smdk6400.o 改成smkd6410.o 因?yàn)槲覀兊脑次募忠呀?jīng)改了... 咱們繼續(xù)編譯Make咯~~~ 哎呀媽呀..又是錯(cuò)...這又是啥呢?沒(méi)有cpu_init.o庫(kù)? 我們直接進(jìn)這個(gè)目錄下一看究竟 arm-linux-ld: cannot find cpu/arm1176/s3c64xx/cpu_init.o 直接打開(kāi)Makefile發(fā)現(xiàn)啥?COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o 居然跟我們玩條件編譯喔~~~但是不對(duì)啊...CONFIG_S3C6400是定義的啊,,在include/configs/smdk6410.h 中是有的.那為什么沒(méi)有編譯呢? 哈哈~~其實(shí)只要重新選擇板級(jí)make smdk6410_config 重新生成config.mk (在下一篇修改/include/configs/smdk6410.h 的時(shí)候, 最后一步說(shuō)要把所有的6400改為6410,其實(shí)不然,在下面這一步就不能改,否則會(huì)出現(xiàn)上面那個(gè)cpu_init.o not find 的現(xiàn)象,而且用上面的方法是行不通的。 Smdk6410.h #define CONFIG_S3C6400 ) 繼續(xù)編譯....還是有錯(cuò)~~~瘋了沒(méi)?別著急,快了哈~~~ make -C nand_spl/board/samsung/smdk6410 all make[1]: 正在進(jìn)入目錄 `/home/LinuxProject/u-boot/u-boot-2010.03/nand_spl/board/samsung/smdk6410' make[1]: *** 沒(méi)有規(guī)則可以創(chuàng)建目標(biāo)“all”。 停止。 make[1]:正在離開(kāi)目錄 `/home/LinuxProject/u-boot/u-boot-2010.03/nand_spl/board/samsung/smdk6410' make: *** [nand_spl] 錯(cuò)誤 2 這個(gè)問(wèn)題簡(jiǎn)單了吧....當(dāng)然是沒(méi)有這個(gè)目錄了...咱們還是去復(fù)制吧 cp nand_spl/board/samsung/smdk6400 nand_spl/board/samsung/smdk6410 -rf cd nand_spl/board/samsung/smdk6410/ 繼續(xù)修改頭文件,還有Makefile 還有文件名字對(duì)吧...沒(méi)錯(cuò)...聰明~~~~ 進(jìn)去一看...傻了?沒(méi)什么好修改的嘛....那就不改唄~~~繼續(xù)編譯吧... 天哪~~好了....編譯出了uboot.bin 了 開(kāi)心吧~~~今天教程就到這了...我們已經(jīng)達(dá)成目的了.到底怎么添加我們需要的目標(biāo),以及目標(biāo)的編譯,需要修改哪些文件,需要添加哪些目錄.. 我這里總結(jié)下: 1:修改Makefile ->交叉編譯器 ->添加smdk6410_config目標(biāo) 2:添加configs/smdk6410.h頭文件 3:添加board/samsung/smdk6410 目錄,并修改該目錄內(nèi)文件,以及Makefile 4:添加include/asm-arm/arch-s3c64xx/s3c6410.h頭文件 5:添加nand_spl/board/samsung/smdk6410目錄
上一篇:TQQ2440第三節(jié):串口
下一篇:基于ok6410的韋東山驅(qū)動(dòng)視頻簡(jiǎn)要分析--USB驅(qū)動(dòng)
推薦閱讀最新更新時(shí)間:2025-06-11 09:34

[030][<font color='red'>U-Boot</font>工作流程分析]](https://6.eewimg.cn/news/statics/images/loading.gif)
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- GD32E231的熏香機(jī)控制板
- ±6kV-24VDC
- L6225 DMOS雙路全橋驅(qū)動(dòng)器評(píng)估板
- DER-960 - 使用 InnoSwitch4-Pro PowiGaN、ClampZero、HiperPFS-5 和英集芯 USB Type-C PD 控制器的 100 W USB PD 3.0 + PPS 電源,帶 ZVS
- 數(shù)字時(shí)鐘
- LTC3401EMS 演示板、2 個(gè)電路、1W/3W 同步升壓穩(wěn)壓器、1V 至 4.5V 輸入、3.3V 或 5V @ 0.2A、3.3V 或 5V @ 0.6A
- AM20EW-2415DZ 雙路輸出、20 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- Smarthome-dashbutton:智能家居控制按鈕
- LT1761-3.3、低噪聲、低壓差微功率穩(wěn)壓器
- Kinetis? KM3x_256 MCU三相電表參考設(shè)計(jì)
- 賽昉科技發(fā)布并開(kāi)源基于Yocto的昉·天樞Linux SDK
- 三星2021年芯片生產(chǎn)減碳近70萬(wàn)公噸
- 東芝新型IC芯片,可大幅提升可穿戴設(shè)備與物聯(lián)網(wǎng)設(shè)備續(xù)航
- Qorvo? 推出首款單個(gè)模塊即可支持 5.1 至 7.1 GHz 頻段的 FEM
- 萬(wàn)用表測(cè)芯片特性
- 89C51單片機(jī)怎么樣?89C51單片機(jī)過(guò)時(shí)了嗎
- 芯片工程師,是時(shí)候了解GAA晶體管了
- MI2492手持式三相電能質(zhì)量分析儀的特點(diǎn)和應(yīng)用場(chǎng)景
- 蜂巢能源2025年試產(chǎn)半固態(tài)電池,2027年大批量供貨
- 激光雷達(dá)進(jìn)化論:RoboSense如何持續(xù)領(lǐng)跑?
- 法雷奧-全景顯示技術(shù) Panovision | 申報(bào)2025第七屆金輯獎(jiǎng)中國(guó)汽車(chē)新供應(yīng)鏈百?gòu)?qiáng)
- 公安部:目前我國(guó)市售汽車(chē)搭載的“智駕”系統(tǒng),都不具備“自動(dòng)駕駛”功能
- 德賽西威-旗艦級(jí)AI智能座艙域控制器 | 申報(bào)2025第七屆金輯獎(jiǎng)中國(guó)汽車(chē)新供應(yīng)鏈百?gòu)?qiáng)
- Mobileye推出駕駛員監(jiān)測(cè)系統(tǒng)(DMS)技術(shù) ,實(shí)現(xiàn)人與車(chē)輛協(xié)同駕駛
- 第三屆安富利汽車(chē)生態(tài)圈峰會(huì)盛大啟幕,雙城聯(lián)動(dòng)激發(fā)智慧出行產(chǎn)業(yè)新動(dòng)能
- Vicor Corporation 2025年第二季度財(cái)報(bào):專(zhuān)利訴訟和解推動(dòng)強(qiáng)勁增長(zhǎng)
- 智能底盤(pán)2.0競(jìng)賽,這家外資巨頭按下加速鍵
- GaN技術(shù)如何應(yīng)用到人形機(jī)器人執(zhí)行關(guān)節(jié)?
- “天問(wèn)一號(hào)”成功發(fā)射,長(zhǎng)春光機(jī)所等展示科研實(shí)力
- 從150億元到218億元?芯恩項(xiàng)目總投資額或增68億元
- 力芯微科創(chuàng)板IPO申請(qǐng)獲受理 打造國(guó)際一流模擬芯片供應(yīng)商
- 京東方計(jì)劃1億元受讓北方華創(chuàng)持有的電控產(chǎn)投16.67%股權(quán)
- 安森美將攜全新聯(lián)接和感知方案亮相深圳會(huì)展中心
- stm8s 定時(shí)器1 延時(shí)_STM8S_庫(kù)函數(shù)_定時(shí)器自動(dòng)裝載TIM1
- STM8S定時(shí)器概述及TIM1配置
- S3C2440裸機(jī)------觸摸屏_校準(zhǔn)原理
- S3C2440裸機(jī)------觸摸屏_校準(zhǔn)與畫(huà)線編程
- 國(guó)產(chǎn)128層QLC閃存即將量產(chǎn) 實(shí)測(cè):密度超過(guò)三星、美光