打印
[应用方案]

NUC970 官方buildroot工具使用过程

[复制链接]
1930|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
观海|  楼主 | 2021-8-1 17:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
总体感受
新唐nuvoton最新 NUC970 NUC980 arm9处理器:
LQFP128 封装很友好,内嵌DDR RAM,外接SPI flash就可以运行;
官方资料全,适合初学者入门,适合中低复杂程度的物联网产品;
秒三星2440系列,最小系统的简约程度媲美STM32。

背景:
手里有NuMaker-Tomato-IoT开发板、新唐官方buildroot,试试构建一个完整的Linux系统。



过程:
一、安装VMWARE+UBUNTU18.04虚拟机开发平台,过程略,官方提供的直接拿来用;
http://www.nuvoton.com.cn/products/microprocessors/arm9-mpus/nuc970-industrial-control-series/?group=Software&tab=2

二、获取最新buildroot(官方镜像的/home/user目录就有现成的文件夹NUC970_Buildroot-master):
git clone https://github.com/OpenNuvoton/NUC970_Buildroot.git

进入NUC970_Buildroot目录,安装NUC970bsp:
(1)install_nuc970_bsp.sh

(2)查看官方提供的默认配置:
root@ubuntu:/home/work/NUC970_Buildroot-master# ls configs/nuc
configs/nuvoton_nuc970_defconfig configs/nuvoton_nuc980_chili_defconfig
configs/nuvoton_nuc972_defconfig configs/nuvoton_nuc980_defconfig
configs/nuvoton_nuc972_eth2uart_defconfig configs/nuvoton_nuc980_eth2uart_defconfig
configs/nuvoton_nuc973_defconfig configs/nuvoton_nuc980_iot_defconfig
configs/nuvoton_nuc976_defconfig configs/nuvoton_nuc980_lorag_defconfig
configs/nuvoton_nuc976_tomato_defconfig configs/nuvoton_nuc980_mbed_cloud_defconfig
configs/nuvoton_nuc977_defconfig

(3)设置交叉环境变量(每次打开新终端,都要export一下):
export PATH=$PATH:/usr/local/arm_linux_4.8/usr/bin

将export PATH=$PATH:/usr/local/arm_linux_4.8/usr/bin放入/etc/profile,下次使用source命令使交叉环境变量生效:
source /etc/profile

(4)载入默认配置: make nuvoton_nuc976_tomato_defconfig
修改配置后保存,然后编译:
make menuconfig
make

(5)烧写镜像文件:
(注意:tomato配置的uboot.bin 用nuvoton nu-writer工具,烧入SPI flash的起始地址为0x2000000,而不是0xe00000)

使用Tomato内核配置,生成用于SD卡内核启动的SHA文件;
进入内核代码文件夹:
/home/work/NUC970_Buildroot-master/output/build/linux-master
执行:
/home/work/NUC970_Buildroot-master/output/build/uboot-master/tools/mkimage -A arm -O linux -T kernel -S sha1 -a 0x7fc0 -e 0x8000 -d …/image/970image …/image/970image.sha

**插曲:**似乎使用上述SHA校验的 970image.sha 镜像,内核不能启动。。。
(后来解决了,原因是输入镜像应该选择NUC970_Buildroot-master/output/images/目录中的uImage,而不是Image)

或者,干脆不用SHA校验,直接用默认的CRC32校验;

uboot源码修改地方:board/nuvoton/nuc970/Kconfig
config NUC970_HW_CHECKSUM
        bool
        default n


kernel源码直接用生成的默认镜像uImage
注:修改了uboot代码,使用buildroot重新编译方法:
先删除 .stamp_target_installed 和 .stamp_builted
在buildroot根目录执行 make; 生成uboot镜像;否则uboot镜像不会重新生成。

结论:
uboot 和 内核 用默认的 支持CRC32 校验即可;
用buildroot可以方便地添加各种linux工具,告别移植各种库和配置文件的痛苦。


使用特权

评论回复
沙发
weifeng90| | 2021-8-4 08:08 | 只看该作者
这个系列的片子太老了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

4133

帖子

1

粉丝