新唐nuc980使用记录:开发环境准备与编译配置基础说明(代码片段)

NaisuXu NaisuXu     2022-10-20     441

关键词:

文章目录

目的

微处理器开发使用前需要先准备相应的开发环境,主要涉及源码获取、交叉编译工具链配置、烧录工具准备等。这篇文章将对基于新唐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

以下根据需求安装:

# 安装SSH服务
sudo apt install -y openssh-server

# 安装编辑器 VS Code
sudo snap install code --classic
# VS Code中可以安装Embedded Linux Kernel Dev扩展,方便开发

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

编译工具链

编译工具链也在上面的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
# 分别是 编译工具链 预编译好的系统文件 安装脚本 预先准备的根文件系统

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

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

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

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 几个文件夹

特别需要注意的是我这里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

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

应用程序示例

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

cd ~/nuc980-sdk/ 

git clone --depth=1 https://github.com/OpenNuvoton/NUC980_Linux_Applications.git
# 得到的NUC980_Linux_Applications文件夹就是各种示例和工具了

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

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

./nuwriter run.ini

默认情况下工具安装完成后工具同目录下会有一个 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使用记录:基础说明与资料索引》

新唐nuc980使用记录:在驱动程序中使用gpio(代码片段)

...。这篇文章中内容均在下面的开发板上进行测试:《新唐NUC980使用记录:自制开发板(基于N 查看详情

新唐nuc980使用记录:自制开发板(基于nuc980dk61yc)

文章目录前言成品展示项目地址与介绍Introduction3DViewsWhatistheNUC980原理图rootsheetPowerMPUSPI_FlashSD_CardUSBUART0_2_USBRMII_ETHRemaining_IO前言使用新的MPU或是MCU这些而言首先需要准备一个开发板,通常芯片厂家对于主要推的芯片都是有开... 查看详情

新唐nuc980使用记录:向内核添加usb无线网卡驱动(基于rtl8188eus)(代码片段)

...;。这篇文章中内容均在下面的开发板上进行测试:《新唐NUC980使用记录:自制开发板(基于NUC980DK 查看详情

新唐nuc980使用记录:在用户应用中使用gpio(代码片段)

...。这篇文章中内容均在下面的开发板上进行测试:《新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)》开发板中提供了两组共四个直连到GPIO 查看详情

新唐nuc980使用记录:访问以太网(lan8720a)&启用ssh(代码片段)

...H。这篇文章中内容均在下面的开发板上进行测试:《新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)》开发板上NUC980RMII0接口通过LAN8720A࿰ 查看详情

新唐nuc980使用记录:使用wpa_supplicant访问无线网络(代码片段)

...。这篇文章中内容均在下面的开发板上进行测试:《新唐NUC980使用记录:自制开发板(基于NUC980DK61YC)》这篇文章主要是在下面文章基础上进行的:《新唐NUC980使用记录:向内核添加USB无线网卡驱动(... 查看详情

嵌入式linux驱动开发01:基础开发与使用(代码片段)

...。这篇文章中内容均在下面的开发板上进行测试:《新唐NUC980使用记录:自制开发板(基于NUC98 查看详情

nuc980iot移植rt-thread

开发环境:IDE:RT-ThreadStudio2.1.5、ENV开发板:NUC980IoT1.1NUC980IoT开发板简介NUC980IoT开发板是新塘推出的基于ARM926EJ-S,集成128MBDDR-II的处理器,主频可以达到300MHZ,有64-pin、128-pin和216-pinLQFP封装 查看详情

nuc980diy项目大挑战-ethercat实现(代码片段)

...M4的芯片,主要用FreeRTOS,最近也开始用RT-Thread。新唐官方也推出了NUC980的RT-Thread版BSP,对开发者非常友好,最终决定了NUC980+RT-Thread的方案。刚好最近官方有个DIY项目官方活动,就报了名。2. 查看详情

nuc980使能串口与测试(代码片段)

...核二、方法2修改设备树查看电路原理图,查找到需要使用的串口引脚号在设备树文件中找到对应的串口项将status=“disabled”;修改为pinctrl-names="default"; pinctrl-0=<&pinctrl_uart1_PF>; pdma-enable=<0>; sta... 查看详情

nuc980开发板diy项目大挑战串口服务器

...类似的串口服务器。二,DIY过程1.工程创建开发工具使用rtthreadstdio(2.2.3),基于开发板,选择NK-980IOt。新安装的需要在RT-ThreadSDK管理器中安装板卡的bsp安装完成后选择基于开发板创建工程。如下图所示点击完... 查看详情

nuc980调用gpio口出现被复用错误(代码片段)

...a;官方提供的虚拟机镜像包(里面包含linux内核及交叉编译工具链)在调用PB4口时,发现此功能已经被复用为uart7解决方法通过定位发现GPIO口控制程序位于此文件中找到配置程序后,在uart7引脚数组中屏蔽PB4对应的0... 查看详情

nuvoton新唐单片机使用入门

文章目录0准备工作1开发环境搭建2配置Nu-Link_Keil_Driver3安装烧录工具3.1下载烧录工具3.2如单片机型号为MS51FB9AE(80511T系列)3.2.1ISPTool3.2.2ICPTool3.2.3ISPcode3.2.4烧录程序4下载相应单片机的资源4.1下载单片机MS51FB9AE数据手册4.2下... 查看详情

nuvoton新唐单片机使用入门

文章目录0准备工作1开发环境搭建2配置Nu-Link_Keil_Driver3安装烧录工具3.1下载烧录工具3.2如单片机型号为MS51FB9AE(80511T系列)3.2.1ISPTool3.2.2ICPTool3.2.3ISPcode3.2.4烧录程序4下载相应单片机的资源4.1下载单片机MS51FB9AE数据手册4.2下... 查看详情

nuc980调用gpio口出现被复用错误(代码片段)

NUC980调用GPIO口出现被复用错误错误提示PleaseCheckGPIOB4’smulti-function=0x5can’tcreate/sys/class/gpio/gpio36/direction:nonexistentdirectory情况说明Arm主控芯片:NUC980DK61Y官方提供的linux内核包:官方提供的虚拟机镜像包(里 查看详情

mac平台androidffmpeg编译与集成实践(代码片段)

...3.完整的脚本4.FQA编译小结在AndroidStudio中的集成集成问题记录写在最后FFmpeg是什么FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,他为开发者提供了丰富的音视频处理的... 查看详情

mac平台androidffmpeg编译与集成实践(代码片段)

...3.完整的脚本4.FQA编译小结在AndroidStudio中的集成集成问题记录写在最后FFmpeg是什么FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,他为开发者提供了丰富的音视频处理的... 查看详情

1.flutter开发工具准备与开发环境搭建(代码片段)

... Studio3.为了Android Studio 安装Flutter和Dart插件3 二、Android开发环境配置 1.安装Android模拟(1) 创建AVD(2)开启硬件加速 (3)无法启动模拟器2.Android开发环境配置三、设置F 查看详情