NUC972的BSP包的使用

一、NUC972的BSP包安装好后内容如下:

applications:示例程序以及开源软件,例如busybox, wireless tool…

buildroot:可用来编译内核,交叉编译工具,应用程序...等的集合

image/kernel:使用默认设置预先编译好的内核

image/U-Boot:使用默认设置预先编译好的支持NAND或SPI flash的U-Boot执行档及环境变量env.txt档。其中U-Boot的默认执行地址为0xE00000。

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

应该能正常执行,如果不行,参考:https://bbs.csdn.net/topics/390999780

如果怎么样都不行,可能就要换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

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qlexcel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值