濰坊百度網(wǎng)站建設(shè)產(chǎn)品推廣圖片
前言
-
最近搭建了 Nuvoton NK-980IOT開發(fā)板 的開發(fā)編譯環(huán)境,記錄一下 u-boot 的 編譯流程
-
Nuvoton NK-980IOT開發(fā)板 資源還是比較的豐富的,可以用于 嵌入式Linux 或者 RT-Thread 的學(xué)習(xí)開發(fā)
-
開發(fā)板上電比較的容易,兩根 USB 線即可,不需要額外的直流電源供電,板子比較的小巧,不占用太大的空間。
-
開發(fā)板可以通過 USB 進行燒寫,默認燒寫到 SPI Flash 中,有【撥碼開關(guān)】用于切換啟動模式,燒寫時,需要切換到 USB 模式
開發(fā)環(huán)境
-
Win10 64位
-
ubuntu 20.04
-
虛擬機 VMware? Workstation 16 Pro
-
NUC980 bsp 自帶的編譯工具鏈: nuc980bsp.tar.gz,版本 gcc version 4.8.4 (GCC)
-
NUC980 uboot 2016.11 版本 :
https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11
獲取 u-boot
-
打算讓 Nuvoton NK-980IOT開發(fā)板 引導(dǎo) RT-Thread,發(fā)現(xiàn)有兩個 bin 文件, u-boot-spl 與 u-boot,所以想親自編譯出這兩個固件來
-
u-boot 下載地址:https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11
-
使用 git 拉取 u-boot 代碼到 ubuntu 主機中
git clone https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11.git
編譯工具鏈
- Nuvoton NK-980IOT 的芯片是 nuc980 32位 ARM9 系列的CPU,需要使用較老版本的gcc 交叉編譯工具鏈,這個工具鏈,在 Nuvoton 提供的 軟件包中可以找到
-
方法是 進入官方網(wǎng)站
https://www.nuvoton.com.cn/
,然后搜索 nuc980,找到 相關(guān)的軟件,下載NUC980_Linux-4.4_BSP
軟件包 -
解壓縮
NUC980_Linux-4.4_BSP_v1.05.000.zip
,然后把 解壓后的nuc980bsp.tar.gz
復(fù)制到 ubuntu Linux 主機中,在 ubuntu Linux 主機中解壓縮nuc980bsp.tar.gz
。 -
解壓縮命令:
tar xzf nuc980bsp.tar.gz -C /home/zhangsz/nuc980
,命令后面的-C /home/zhangsz/nuc980
為指定的解壓縮路徑,不指定會解壓縮在當前的目錄下。
zhangsz@zhangsz:~/nuc980d$ cd nuc980bsp/
zhangsz@zhangsz:~/nuc980d/nuc980bsp$ ls
arm_linux_4.8.tar.gz image.tar.gz install.sh rootfs.tar.gz
-
這里只需要再次解壓縮
arm_linux_4.8.tar.gz
即可,不需要使用install.sh
。 -
解壓縮
arm_linux_4.8.tar.gz
命令tar xzf arm_linux_4.8.tar.gz -C /home/zhangsz/nuc980/tools
,解壓縮到 指定目錄下 -
配置gcc 的環(huán)境變量,我這里修改
/ect/profile
的方式, -
sudo vim /etc/profile
, 文件最后追加export PATH=$PATH:/home/zhangsz/nuc980d/tools/arm_linux_4.8/bin
-
wq 保存后,然后
source /etc/profile
,交叉編譯工具鏈即可生效
- 可以輸入
$ arm-linux-gcc -v
驗證 交叉編譯工具鏈 環(huán)境變量配置成功
編譯 u-boot
-
進入 uboot 的目錄下,執(zhí)行
-
1、
$ make distclean
清理工程 -
2、
$ make nuc980_iot_defconfig
開發(fā)板默認配置 -
3、
$ make -j4
進行編譯
編譯 u-boot 產(chǎn)物
- 編譯后,有兩個產(chǎn)物,可以復(fù)制出來,用于下載到 開發(fā)板
-
1、 u-boot.bin
-
2、u-boot-spl.bin
燒寫 u-boot 與 u-boot-spl
-
如果開發(fā)板已經(jīng)燒寫過鏡像,并且已經(jīng)開機,就不需要每次都全部擦除一遍。
-
這里使用
NuWriter
進行 USB 燒寫 -
燒寫前,需要開發(fā)板 波動撥碼開關(guān),切換到 【USB 啟動】模式,點擊一下 【復(fù)位鍵】
-
u-boot-spl.bin
,bootloader 燒寫到 0x400 處
u-boot.bin
, data 方式,燒寫到 0x100000 處
- 詳細的燒寫方法參考官方的文檔:
NK-980IoT_Quick_Start_Guide_EN_Rev1.01.pdf
燒寫后啟動
- 啟動模式撥碼開關(guān),切回 SPI Flash 啟動,然后點擊【復(fù)位鍵】重啟,看一下啟動信息
- 這樣 u-boot 與 u-boot-spl 編譯并燒寫成功了
小結(jié)
- Nuvoton NK-980IOT開發(fā)板 還有 USB、網(wǎng)絡(luò)等接口,接下來可以用于嵌入式Linux 與 RT-Thread 的學(xué)習(xí)與研究