NUC980 IoT移植 RT-Thread

Posted Bruceoxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ) 、网路印表机设备、电表集中器、智能家居闸道。

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

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。

生成配置:

$ menuconfig --generate

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

$ pkgs --update

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

$ scons

等待编译完成即可。

1.2.2烧写RT-Thread固件

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

下载地址

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

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

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

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

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

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

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

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

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

同时调试串口信息如下:

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

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

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

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

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

等待片刻即可擦写完成。

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

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

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

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

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

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

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

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

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

然后设置格式化大小。

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

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

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

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

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

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

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

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

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

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




欢迎访问我的网站

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


欢迎订阅我的微信公众号

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

以上是关于NUC980 IoT移植 RT-Thread的主要内容,如果未能解决你的问题,请参考以下文章

NUC980 IoT I2C实践

NUC980 DIY项目大挑战 - EtherCAT实现

NUC980 IoT 使用WiFi联网

NUC980开发板DIY项目大挑战串口服务器

NUC980开发板DIY项目大挑战:车间数据采集方案

NUC980开发板DIY项目大挑战:室内环境采集监测系统