《嵌入式系统 – NUC980 IoT应用开发实战指南(基于RT-Thread系统)》第1章 NUC980 IoT移植 RT-Thread

开发环境:
IDE:RT-Thread Studio 2.1.5、ENV
开发板:NUC980 IoT

1.1 NUC980 IoT开发板简介

NUC980 IoT开发板是新塘推出的基于 ARM926EJ-S,集成 128 MB DDR-II 的处理器,主频可以达到300MHZ,有 64-pin、128-pin 和 216-pin LQFP 封装,主要应用为工业自动化控制、工业物联网闸道器 ( Gateway ) 、网路印表机设备、电表集中器、智能家居闸道。

bLmqEt.md.png

NUC980 IoT开发板资源丰富。

 32-bit ARM926EJ-STM NUC980DK61Y 微处理器核心
 内建 64 MB DDR内存,
 工作频率最高可达 300 MHz
 1 Gbit SPI-NAND Flash
 10 / 100 以太网络 x 1,
 USB 2.0 高速主机 x 1
 USB 2.0 高速主机 / 装置 x 1
 单声道麦克风输入
 立体声耳机输出
 MicroSD 卡槽
 USB Power and CDC Debug Port
 外部内存扩充接口
 Arduino 兼容接口
 UART x 3

bLmxgg.jpg

1.2 NUC980 IoT移植RT-Thread

RT-Thread中已经做好了nk-980iot的BSP,因此这里直接用就可以了。

关于RT-Thread的开发环境搭建请参看笔者博客:

Keil+env开发
RT-Thread Studio开发
Ubuntu开发

1.2.1编译RT-Thread固件

首选从下载rt-thread源码。下载完 RT-Thread 后,首先进入目录 rt-thread\bsp\nuvoton\nk-980iot,然后右键打开 RT-Thread env,或者打开 RT-Thread env,然后进入目录 rt-thread\bsp\nuvoton\nk-980iot。

bLnV8U.md.png

生成配置:

$ menuconfig –generate

bLnev4.md.png

当然啦,要想修改配置去掉‘generate’参数即可。
然后更新 rt-thread 包,并下载所使用软件包:

$ pkgs –update

bLnnKJ.md.png

然后执行 scons 指令进行编译:

$ scons

bLnlUx.md.png

等待编译完成即可。

bLn8PK.md.png

1.2.2烧写RT-Thread固件

板子上一共有2 个 micro usb 接口,一个是用于连接到 NUC980IoT USB,可以用于给 NUC980IoT下载固件,还有一个USB是连接到板子上的 USB 转 TTL,可以用于调试。在烧些RT-Thread固件前,先安装USB驱动。

下载地址

双击Driver目录下的WinUSB4NuVCOM.exe即可安装。

bLnJ2D.png

接下来就很简单,笔者就不再赘述了。成功安装后提示信息如下。

bLnNKH.md.png

这个时候插上USB,应该可以正常识别出一个设备。

bLnBIP.md.png

NuWriter烧写软件和USB驱动一样,也在OpenNuvoton的NUC980_NuWriter仓库中。

在烧写之前,还需要了解NUC980 IoT启动模式。根据NUC980的手册说明和原理图,可以看到NUC980有四种启动模式。

bLn6xg.md.png

在电路上设计了两个拨码开关用于选择和配置启动方式。

bLnfZn.md.png

接下来就正式烧写固件了。

把NUC980 IoT设置为 USB 启动进入下载模式,然后分别把这两个 USB 口都连接到 PC,使用 Xshell打开对应 COM口,打开 NuWriter,选择 NUC980DR61YC。

bLnoGT.png

连接成功后,会有板子的版本信息。

bLnqsJ.md.png

同时调试串口信息如下:

bLnXZR.md.png

1.烧写固件到SDRAM
这里让 RT-Thread 在 NUC980IoT RAM上跑。选择下载类型为DDR/SRAM。然后选择前面编译的RT-Thread固件,设置Execute Address为0,然后点击‘Download’下载即可。

bLnjd1.md.png

下载成功后就可以看到 RT-Thread 已经运行起来了。

bLuSJK.md.png

同时板子上一个 LED 也闪烁起来了。

bLuFLd.md.png

是不是很简单,赶紧去玩起来吧。

2.烧写固件到SPI NAND Flash
选择下载类型为SPI NAND,按下‘Re-Connect’,按下‘Erase’,然后选择‘Erase All’,最后按下‘OK’即可进行擦写操作。

bLuAeA.md.png

等待片刻即可擦写完成。

bLueFP.md.png

接下来选择uboot-spl.bin,选择Image Type为Loader,输入 Image Execute Address地址为0x200,按下 Program 并等待结束。

bLumJf.md.png

接下来选择uboot.bin,选择Image Type为Data,输入Image start address地址为0x100000,按下 Program 并等待结束。

bLuKSS.md.png

接下来选择rtthread.bin,选择Image Type为Data,输入Image start address地址为0x200000,按下 Program 并等待结束。

bLu3es.md.png

接下来选择env.txt,选择Image Type为Environment,输入Image start address地址为0x80000,按下 Program 并等待结束。

bLuaSU.md.png

然后设定Power-on setting to SPI NAND booting。

接下来就可以查看RT-Thread是否运行。

正常下其现象和RAM是一样的。

bLu0OJ.md.png

3.烧写固件到SD
将SD卡插到板子上,点击‘Re-Connect’连接设备,如果识别到SD卡,会有以下信息。

bLu6Fx.md.png

然后打开NuWriter,点击‘Format’。

bLuRSO.md.png

然后设置格式化大小。

bLu7kt.md.png

点击‘Set’之后,然后点击‘OK’即可格式化。

bLuLp8.md.png

格式化成功后,打印信息如下:

bLuX6g.md.png

接下来选择uboot.bin,选择Image Type为Data,输入Image Execute address地址为0xe00000,按下 Program 并等待结束。

bXsJNn.md.png

接下来选择rtthread.bin,选择Image Type为Data,输入Image start address地址为0x100000,按下 Program 并等待结束。

bXsacT.md.png

然后设定Power-on setting to SD booting。

接下来就可以查看RT-Thread是否运行。

正常下其现象和RAM是一样的。

bXsyNR.md.png

值得注意的是,以上提到的文件在rt-thread/bsp/nuvoton/nk-980iot/uboot目录下。

bXshuD.md.png

本文使用的是ENV开发,当然也可使用RT-Thread Studio。

bXsTUA.md.png

根据个人喜欢选择开发环境。


欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


欢迎订阅我的微信公众号

关注公众号[嵌入式实验楼]获取更多资源

Related posts

Leave a Comment