| 
 
| 总体感受: 新唐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工具,告别移植各种库和配置文件的痛苦。
 
 
 
 | 
 |