在这里插入图片描述
开发环境:

  • 1.硬件环境预备

    新唐NUC980开发板+spinor flash+usb0(烧录)+uart0(调试)
    
  • 2.软件环境预备

    ubuntu20.04+buildroot代码
    

一. 代码下载

   新唐官网下载 5.10内核的buildroot
   git clone https://github.com/OpenNuvoton/buildroot_2024.git

二. 固件构建

构建支持NUC980 SPI NOR的初始镜像(构建完可以在output/images/目录下找到镜像)

首先选择配置文件,因这里使用的开发板对应的配置是nuvoton_nuc980_defconfig

make nuvoton_nuc980_defconfig
make

三. 创建jffs2文件系统的步骤

  1. 修改buildroot的配置

    在buildroot根目录下执行 make menuconfig
    

在这里插入图片描述
2. 修改kernel的配置

make linux-menuconfig

(1)取消 RAM根文件系统设置,见下图。

先取消
[ ] Boot config support,
再取消
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support
在这里插入图片描述

(2)新增jffs2系统设置,取消ubifs文件系统设置,见下图
在这里插入图片描述(3)取消980 FMI设置
在这里插入图片描述
(4)取消CONFIG_MTD_SPI_NAND和CONFIG_MTD_RAW_NAND的配置
在这里插入图片描述
(5)取消CONFIG_MTD_SPI_NOR_USE_4K_SECTORS的配置
在这里插入图片描述
(6)修改spi Quad mode
在这里插入图片描述
(7)Use MTD partition command in u-boot
在这里插入图片描述
3. 修改uboot的配置

make uboot-menuconfig

(1) 取消SPL设置
在这里插入图片描述
(2) 取消UBI设置
在这里插入图片描述
在这里插入图片描述

(3) uboot命令,增加spi、sf命令,取消nand命令
在这里插入图片描述
(4) Device Drivers增加spi nor flash支持
在这里插入图片描述
(5) Device Drivers增加spi support支持
在这里插入图片描述
4. 修改设备树

(1) 修改linux-custom/arch/arm/boot/dts/nuc980.dtsi文件
在这里插入图片描述
(2) 修改 linux-custom/arch/arm/boot/dts/nuc980-dev-v1.0.dts文件
在这里插入图片描述
在这里插入图片描述
5. 修改 nuc980_evb.h文件

#define CONFIG_SYS_USE_SPIFLASH
/* #define CONFIG_SYS_USE_NANDFLASH  
#define CONFIG_ENV_IS_IN_NAND */
#define CONFIG_ENV_IS_IN_SPI_FLASH
/*#define CONFIG_ENV_IS_IN_MMC */

四 重新构建固件

make
构建成功之后,在output/images/ 下找到以下文件
u-boot.bin  uImage  rootfs.jffs2  nuc980-dev-v1.0.dtb

五. 烧录固件到开发板

烧录需要参考官网文章Power-On-Setting切换到USB启动,使用NuWriter烧录,这里不再赘述。

文件 类型                       image start offset
u-boot.bin                        0xe00000
uImage                            0x100000
rootfs.jffs2                      0x800000
nuc980-dev-v1.0.dtb               0xF00000
env                               0x80000

环境变量env文件如下:

baudrate=115200
bootdelay=1
ethact=emac
ethaddr=00:00:00:11:66:88
stderr=serial
stdin=serial
stdout=serial
bootcmd=sf probe 0 30000000\; sf read 0x7FC0 0x100000 0x400000\; sf read 0x1400000 0xF00000  0x10000\; bootm 0x7fc0 - 0x1400000
watchdog=off

六.开发板选择spinor启动,部分log如下:

  spinor需要参考官网文章Power-On-Setting切换到spinand启动。

在这里插入图片描述

以上文章纯属个人学习心得,若有疑问以及错误之处,在所难免,欢迎留言,谢谢!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐