一、nuc972的bsp包安裝好後內容如下:
buildroot:可用來編譯核心,交叉編譯工具,應用程式...等的集合
image/kernel:使用預設設定預先編譯好的核心
linux-3.10.x:核心原始碼
rootfs(rootfs_48):根檔案系統(arm_linux_4.8環境使用)
rootfs_eth2uart:根檔案系統(eth2uart開發板使用)
rootfs_tomato:根檔案系統 (tomato開發板使用)
uboot:u-boot v2013rc4原始碼
uboot.v2016.11:u-boot v2016.11 原始碼
二、編譯前的準備
nuc972的bsp自帶了交叉編譯器,安裝完了bsp包,交叉編譯器也隨著被安裝了,路徑在/usr/local/arm_linux_4.8/usr/bin。把這個路徑加入$path中,執行:
gedit /etc/profile
在profile中加入:
path="$path:/usr/local/arm_linux_4.8/usr/bin"
export path
儲存退出。
執行
source /etc/profile
讓其生效,現在執行
echo $path
可以看到path已經更新了。再執行
arm-linux-gcc -v
可以看到arm-linux-gcc的版本號,說明交叉編譯器已經沒問題了。
因為nuc972的bsp包是在32位系統下生成的,如果你的系統是64位的,那麼就還需要安裝32位的相容包才可以使用bsp包中的二進位制工具。執行
apt-get install libgtk2.0-0:i386 libxtst6:i386 gtk2-engines-murrine:i386 lib32stdc++6 libxt6:i386 libdbus-glib-1-2:i386 libasound2:i386
再執行
apt-get install g++
安裝完成後,進入bsp包中的uboot資料夾
cd uboot
執行
make distclean
應該能正常執行,如果不行,參考:
如果怎麼樣都不行,可能就要換32位的系統了。(本人就是先裝的64位的ubuntu18.04,然後搜遍了網上也沒有辦法執行bsp包中的32位工具,所以只好重新裝了32位的ubuntu14.04)
三、編譯uboot
進入bsp包中的uboot資料夾
cd uboot
先清除以前編譯留下的殘留檔案,執行
make distclean
把uboot的設定恢復為出廠設定(不需要恢復出廠設定的,跳過本步),執行
make nuc970_config
編譯uboot,執行
make all
編譯過程中好像會提示找不到rootfs資料夾,把bsp目錄下的rootfs_48資料夾改為rootfs就可以了。
編譯成功後,會生成u-boot.bin和u-boot-spl.bin。
u-boot.bin在uboot目錄下:
u-boot-spl.bin在uboot/nand_spl目錄下:
u-boot-spl.bin的功能是:把u-boot.bin從nand flash中複製到ddr中執行,因為uboot不能直接在nand flash中執行。
u-boot.bin才是真正的uboot檔案。
因此,如果要讓nuc972從nand flash中啟動,那就需要同時燒錄u-boot-spl.bin和u-boot.bin。如果是從spi flash或emmc中啟動,那就只需要燒錄u-boot.bin,因為uboot可以直接在spi flash或emmc中執行。
四、編譯linux核心
uboot編譯後會在uboot/tools資料夾下生成mkimage工具,而編譯核心時需要使用它,所以執行:
cp uboot/tools/mkimage /bin
把它複製到/bin中,以便後面使用。
首先執行
apt-get install libncurses5-dev
安裝libncurses5-dev軟體包。然後進入核心目錄
cd linux-3.10.x
把核心配置恢復成出廠:
make nuc972_defconfig
編譯:
make uimage
NUC972 VI編輯器的使用
vi 的工作模式可分為命令模式和輸入模式,兩者之間可以任意切換 命令模式 從鍵盤上輸入的任何字元都被作為編輯命令來解釋,vi 下很多操作如配置編輯器 文字查詢和替換 選擇文字等都是在命令模式下進行的。輸入模式 從鍵盤上輸入的所有字元都被插入到正在編輯的緩衝區中,被當作正文。啟動 vi 後處於命令模式...
NUC972 Linux核心的編譯
總覽 編譯需求 原始碼 home qlqcetc nuc970bsp 02.linux核心3.10.x 編譯工具鏈 arm linux gcc 核心打包工具 mkimage 生成檔案 1.970uimage 1.檢視 home qlqcetc nuc972bsp路徑下是否有image資料夾,若沒有,...
BSP概念以及能更好的使用
板級支援包 bsp 是介於主機板硬體和作業系統中驅動層程式之間的一層,一般認為它屬於作業系統一部分,主要是實現對作業系統的支援,為上層的驅動程式提供訪問硬體裝置暫存器 的函式包,使之能夠更好的執行於硬體主機板。在嵌入式系統軟體的組成中,就有bsp。bsp是相對於作業系統而言的,不同的作業系統對應於不...