新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > OK6410-A編譯u-boot時遇到的問題及解決

OK6410-A編譯u-boot時遇到的問題及解決

作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏

以下紅色是Shell操作, #是終端提示符一般不用手動輸入
Ubuntu是最新版本V11
我的交叉編譯器下的文件列表:
root@ubuntu:/usr/local/arm/4.3.2/bin# ls
arm-linux-addr2linearm-none-linux-gnueabi-addr2line
arm-linux-ar arm-none-linux-gnueabi-ar
arm-linux-as arm-none-linux-gnueabi-as
arm-linux-c++ arm-none-linux-gnueabi-c++
arm-linux-c++filt arm-none-linux-gnueabi-c++filt
arm-linux-cpp arm-none-linux-gnueabi-cpp
arm-linux-g++ arm-none-linux-gnueabi-g++
arm-linux-gcc arm-none-linux-gnueabi-gcc
arm-linux-gcc-4.3.2arm-none-linux-gnueabi-gcc-4.3.2
arm-linux-gcov arm-none-linux-gnueabi-gcov
arm-linux-gdb arm-none-linux-gnueabi-gdb
arm-linux-gdbtui arm-none-linux-gnueabi-gdbtui
arm-linux-gprof arm-none-linux-gnueabi-gprof
arm-linux-ld arm-none-linux-gnueabi-ld
arm-linux-nm arm-none-linux-gnueabi-nm
arm-linux-objcopy arm-none-linux-gnueabi-objcopy
arm-linux-objdump arm-none-linux-gnueabi-objdump
arm-linux-ranlib arm-none-linux-gnueabi-ranlib
arm-linux-readelf arm-none-linux-gnueabi-readelf
arm-linux-size arm-none-linux-gnueabi-size
arm-linux-sprite arm-none-linux-gnueabi-sprite
arm-linux-strings arm-none-linux-gnueabi-strings
arm-linux-strip arm-none-linux-gnueabi-strip

按照文檔Make配置文件的時候

本文引用地址:http://butianyuan.cn/article/201611/319458.htm

# make smdk6410_config

顯示
/usr/local/arm/4.3.2/bin/arm-linux-gcc: line 3: exec: arm-none-linux-gnueabi-gcc: not found
Configuring for smdk6410 board which boot from...

而我將Makefeile文件中的路徑改寫:
CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-linux-改成CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
然后make clean之后編譯 仍然出錯:
末尾如下錯誤
/forlinx/uboot1.16/include/configs/smdk6410.h:347:2:error: #error RAM size must be defined
/forlinx/uboot1.16/include/configs/smdk6410.h:522:3: error: #error Define one of CONFIG_BOOT_{NAND|MOVINAND|ONENAND|ONENAND_IROM}
make[1]: *** No rule to make target `.depend, needed by `_depend.Stop.
make[1]: Leaving directory `/forlinx/uboot1.16/post/cpu
make: *** [depend] Error 2

后來在QQ群big_fish和砂鍋米線的幫助下找到問題。原來是OK6410里自帶光盤的u-boot編譯使用的命令參數(shù)和論壇里最新版及操作手冊的命令參數(shù)不一樣。
最新版的命令操作是#make forlinx_nand_ram256_config
老版本是#make smdk6410_config
也希望以后論壇Relese的時候能將操作手冊和鏡像打包在一個壓縮包里

----------------------------------------------------------------------------------

另外,也可以通過如下命令將交叉編譯器中的所有的arm-none-linux-gnueabi-* 鏈接成arm-linux-*:

#ls-sarm-none-linux-gnueabi-gccarm-linux-gcc

將路徑加入到環(huán)境變量時也可以使用如下命令:
#PATH=/usr/local/arm/4.3.2/bin:$PATH
總結(jié):
1. 末尾如下錯誤
/forlinx/uboot1.16/include/configs/smdk6410.h:347:2:error: #error RAM size must be defined
/forlinx/uboot1.16/include/configs/smdk6410.h:522:3: error: #error Define one of CONFIG_BOOT_{NAND|MOVINAND|ONENAND|ONENAND_IROM}
make[1]: *** No rule to make target `.depend, needed by `_depend.Stop.
make[1]: Leaving directory `/forlinx/uboot1.16/post/cpu
make: *** [depend] Error 2
一般是編譯時編譯config文件的參數(shù)用錯了,確定一下u-boot 是較早還是較新的,分別選擇#make smdk6410_config或#make forlinx_nand_ram256_config
2. 編譯時顯示如下錯誤
顯示
/usr/local/arm/4.3.2/bin/arm-linux-gcc: line 3: exec: arm-none-linux-gnueabi-gcc: not found
Configuring for smdk6410 board which boot from...
將路徑加入到環(huán)境變量時也可以使用如下命令:
#PATH=/usr/local/arm/4.3.2/bin:$PATH



關(guān)鍵詞: OK6410-A編譯u-boo

評論


技術(shù)專區(qū)

關(guān)閉