• 新唐NUC980使用记录:开发环境准备与编译配置基础说明


    目的

    微处理器开发使用前需要先准备相应的开发环境,主要涉及源码获取、交叉编译工具链配置、烧录工具准备等。这篇文章将对基于新唐NUC980的相关内容做个说明。

    开发环境准备

    调试烧录环境

    如果是要烧录到Flash等需要用到新唐官方烧录工具的场合推荐在Windows中进行,需要安装相关驱动,以及下载烧录工具

    在新唐官网NUC980页面的 资源>软件 中找到开发包软件开发包进行下载:
    https://www.nuvoton.com.cn/products/microprocessors/arm9-mpus/nuc980-industrial-control-iot-series/
    在这里插入图片描述下载得到NUC980_Linux-4.4_BSP_v1.03.000.zip压缩包,解压得到的文件夹中包含BSP、Documents、Tools。
    Documents 中含有相关内容详细的中英文文档,这些文档对于入门使用非常有帮助。
    Tools中WinUSB4NuVCOM.exe是新唐设备的USB-ISP驱动,NuWriter是烧录工具。

    驱动安装完成后,如果开发板 PG[1:0] = 00 ,USB0和UART0都接到电脑上,按复位按钮复位开发板后分别可以在串口终端和设备管理器中看到信息和设备:
    在这里插入图片描述

    如果使用新唐官方的开发板的话还要下载USB-CDC串口驱动 NuvotonCDC_V1.00.001_Setup :
    https://www.nuvoton.com/resource-download.jsp?tp_GUID=SW1020160914071736

    开发编译环境

    下载安装Ubuntu Desktop(这里使用版本为20.04.4):
    https://ubuntu.com/download/desktop

    安装完成后进行基础环境安装与设置:

    sudo apt update
    sudo apt install -y build-essential
    
    sudo apt install -y git-all
    # git使用时可能需要设置用户名和邮箱
    # git config --global user.name "naisu"
    # git config --global user.email naisu@example.com
    
    sudo apt install -y libc6:i386
    sudo apt install -y lib32stdc++6
    sudo apt install -y lib32z1
    
    sudo apt install -y libusb-1.0-0-dev
    sudo apt install -y libncurses5-dev
    sudo apt install -y u-boot-tools
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    以下根据需求安装:

    # 安装SSH服务
    sudo apt install -y openssh-server
    
    # 安装编辑器 VS Code
    sudo snap install code --classic
    # VS Code中可以安装Embedded Linux Kernel Dev扩展,方便开发
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果使用虚拟机的话为了方便可以开启共享粘贴板、共享目录以及桥接网络。

    编译工具链

    编译工具链也在上面的BSP包中,我这里通过Ubuntu自带的浏览器下载,得到的 NUC980_Linux-4.4_BSP_v1.03.000.zip 文件位于 ~/Downloads/ 目录下。

    # 建立并进入工作目录
    mkdir ~/nuc980-sdk
    cd ~/nuc980-sdk/ 
    
    # 解压BSP包
    mv ~/Downloads/NUC980_Linux-4.4_BSP_v1.03.000.zip ./
    unzip NUC980_Linux-4.4_BSP_v1.03.000.zip
    
    tar xzvf NUC980_Linux-4.4_BSP_v1.03.000/BSP/nuc980bsp.tar.gz 
    # 解压得到nuc980bsp文件夹中包含 arm_linux_4.8.tar.gz  image.tar.gz  install.sh  rootfs.tar.gz
    # 分别是 编译工具链 预编译好的系统文件 安装脚本 预先准备的根文件系统
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    可以使用install.sh脚本进行安装,它会将编译工具链安装到/usr/local目录下,设置环境变量,然后解压剩余image.tar.gz和rootfs.tar.gz到指定的工作目录下的nuc980bsp目录中:(这个方式我个人并不喜欢看看就好)

    cd ~/nuc980-sdk/ 
    cd nuc980bsp/
    sudo ./install.sh 
    # 安装过程中根据提示输入工作目录,比如我这里是/home/nx/nuc980-sdk
    # 安装完成后重启系统即可使环境变量生效
    
    • 1
    • 2
    • 3
    • 4
    • 5

    官方工具的把编译工具链安装到非工作目录下,以及登录设置环境变量这种操作我个人不太喜欢,所以我一般使用下面方式:(如果使用官方方式安装下面内容可以不用查看)

    cd ~/nuc980-sdk/ 
    tar xzf nuc980bsp/arm_linux_4.8.tar.gz
    tar zxf nuc980bsp/image.tar.gz
    sudo tar zxf nuc980bsp/rootfs.tar.gz
    
    # 这种方式下可以使用下面命令临时性的将编译工具链路径设置到环境变量中
    # 注意使用自己的路径,每次打开终端都需要重新设置:
    export PATH=$PATH:/home/nx/nuc980-sdk/arm_linux_4.8/bin
    
    # 删除无用的东西
    # rm -rf nuc980bsp/
    # rm -rf NUC980_Linux-4.4_BSP_v1.03.000/
    # rm -rf NUC980_Linux-4.4_BSP_v1.03.000.zip
    # 目前工作目录中包含 arm_linux_4.8  image  rootfs 几个文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    特别需要注意的是我这里Ubuntu是64位的,而这个编译工具链是32位的,前面开发编译环境准备时相关的32位库必须完整安装,不然可能工具链无法正常使用。

    uboot 和 linux

    uboot和linux项目需要从网上下载,下载地址可以在BSP解压得到的Documents文件夹中的《NUC980 Linux 4.4 BSP User Manual》文档中找到。官方提供了github、gitee和gitlab三种链接,选择合适的进行下载即可:

    cd ~/nuc980-sdk/ 
    
    git clone --depth=1 https://github.com/OpenNuvoton/NUC970_U-Boot_v2016.11.git
    # 得到的NUC970_U-Boot_v2016.11文件夹就是uboot项目了,这个是NUC970和NUC980共用的
    # 当前版本由ychuang3在2022-01-17 10:38:53 +0800最后提交,hash为ca47203
    
    git clone --depth=1 https://github.com/OpenNuvoton/NUC980-linux-4.4.y.git
    # 得到的NUC980-linux-4.4.y文件夹就是linux项目了
    # 当前版本由mjchen在2022-03-21 14:09:54 +0800最后提交,hash为b488a698
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    buildroot

    buildroot是一个嵌入式Linux构建工具,这里使用它来构建根文件系统,通常选择下载最新的长期支持版即可:

    cd ~/nuc980-sdk/ 
    
    # 下载与解压
    wget https://buildroot.org/downloads/buildroot-2022.02.3.tar.xz
    tar -xJf buildroot-2022.02.3.tar.xz
    # rm buildroot-2022.02.3.tar.xz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    应用程序示例

    新唐官方提供了应用程序示例,和上面一样也从网上进行下载:

    cd ~/nuc980-sdk/ 
    
    git clone --depth=1 https://github.com/OpenNuvoton/NUC980_Linux_Applications.git
    # 得到的NUC980_Linux_Applications文件夹就是各种示例和工具了
    
    • 1
    • 2
    • 3
    • 4

    NUC980 NuWriter Linux command line tool

    前面提到了NuWriter这个Windows版本的烧录工具,这个工具也有Linux命令行版本的,在某些特定情况下命令行版本的工具是比较有用的,这里也对此进行安装:

    cd ~/nuc980-sdk/ 
    
    git clone --depth=1 https://github.com/OpenNuvoton/NUC980_NuWriter_CMD.git
    # 下载得到NUC980_NuWriter_CMD目录
    
    cd NUC980_NuWriter_CMD/
    # 配置、编译、安装
    ./configure --prefix=$PWD/install
    make
    make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    安装完成后会在NUC980_NuWriter_CMD目录下得到程序nuwriter,该程序接收一个配置文件,根据配置文件配置的内容进行程序烧录,比如下面方式:

    ./nuwriter run.ini
    
    • 1

    默认情况下工具安装完成后工具同目录下会有一个 run.ini 文件,可以参考这个文件中说明来编写自己的配置文件。

    编译配置基础说明

    开发编译工作目录

    经过上面的安装之后nuc980-sdk目录下应该包含下面几个内容:

    目录说明注释
    arm_linux_4.8交叉编译工具链下面方式临时添加到环境变量,注意使用自己的路径:
    export PATH=$PATH:/home/nx/nuc980-sdk/arm_linux_4.8/bin
    NUC970_U-Boot_v2016.11U-Boot源码
    NUC980-linux-4.4.y内核源码
    buildroot-2022.02.3构建工具这里用它来构建文件系统
    image预置的系统镜像其中内容没用,目录本身有用;
    默认配置下内核编译时会输出结果到内核源码目录同级的image目录中;
    rootfs预置的文件系统仅供测试使用;
    默认配置下内核编译时会将内核源码目录同级的rootfs打包到内核中;
    NUC980_Linux_Applications应用程序示例
    NUC980_NuWriter_CMD命令行烧写工具

    特别需要注意的是新唐官方提供的Linux内核项目默认配置下和其同级的image、rootfs目录会有交互。

    U-Boot

    新唐官方的 U-Boot 项目中与NUC980相关的一些目录或文件如下:
    在这里插入图片描述
    只是使用的话需要关注的主要就是 configs/ 目录和 include/configs/ 目录下的文件,两个目录下内容有一定关联,主要都是各个官方开发板的配置信息。

    Linux Kernel

    新唐官方的 Linux Kernel 项目中与NUC980相关的一些目录或文件如下:
    在这里插入图片描述
    只是使用的话需要关注的主要就是 arch/arm/configs/ 目录下的文件,主要是各个官方开发板的配置信息。

    总结

    上面为止新唐NUC980开发使用基础的准备工作了,主要都下载解压安装等内容。对于NUC980芯片本身的一些内容可以参考 《新唐NUC980使用记录:基础说明与资料索引》

  • 相关阅读:
    和我一起学 Three.js【初级篇】:1. 搭建 3D 场景
    Day56-59 进程的状态、进程控制、进程通信方式
    BRC铭文NFT铸造质押挖矿系统开发运营
    FL Studio21.2.0.3858免激活版安装下载
    FFmpeg源代码简单分析-编码-av_write_frame()
    【泛微ecology】控制文本框输入汉字数量
    三、C++ Builder XE关于intraweb开发_插入IWGrid并美化表格
    C语言之双向链表
    Spring学习|Bean的作用域、自动装配Bean、注解实现自动装配、Spring注解开发
    Java HashSet集合简介说明
  • 原文地址:https://blog.csdn.net/Naisu_kun/article/details/125315655