Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
nuc980
RT-Thread Studio
【NK-980IoT评测】基于RT-Thread Studio建立工程与烧写固件
发布于 2022-04-02 14:54:40 浏览:1463
订阅该版
[tocm] # 0. 开发板简介 > NK-980IoT是一块基于NUC980DK61Y微处理器(内核为ARM® ARM926EJ-S)的开发板,> 它具有非常丰富的外设,可以帮助用户轻松设计他们的产品或应用系统。 开发板的正面美图如下所示。 ![0-NK-980IoT美图.png](https://oss-club.rt-thread.org/uploads/20220402/25c3c7e73ddf4e7722c49a8e57972328.png.webp) 关于开发板的板载资源,Nuvoton官方提供了一份开发板配套的“User Manual”,详细地介绍了板载硬件及其连接的GPIO引脚。具体见下方的腾讯文档链接: 【腾讯文档】User_Manual_NK-980IoT_EN_Rev1.00 https://docs.qq.com/pdf/DWmhEZW1rbXVoVnBm # 1. 物料准备 ## 1.1 硬件 ● NK-980 IoT 开发板 1 块 ● Micro-USB 连接线 2 根 ## 1.2 软件 ● IDE:RT-Thread Studio ● BSP:Nuvoton NK-980IoT for RT-Thread ● Programmer:Nuvoton NuWriter V1.16 ● Bootloader:uboot for NUC980DK61Y(位于rt-thread\bsp\nuvoton\nk-980iot\uboot) ● UART Console:MobaXterm # 2. 建立工程 ## 2.1 建立RT-Thread标准工程 打开RT-Thread Studio,依次选择“File”->“New”->“RT-Thread Project”建立RT-Thread标准工程,如下图所示。 ![1-建立RT-Thread标准工程.jpg](https://oss-club.rt-thread.org/uploads/20220402/55ce1f652b16d05ca9d61272e777a9e2.jpg.webp) ## 2.2 基于BSP建立工程 目前RT-Thread已支持 NK-980IoT 开发板,Nuvoton已为我们制作了该开发板的BSP,并已加入RT-Thread源码。 基于BSP开发使我们可以不必关心底层寄存器的细节,对于掌握RT-Thread内核的熟手而言更加得心应手。 基于BSP建立工程的配置细节见下图。 ![2-基于板建立工程-BaseOnBoard.jpg](https://oss-club.rt-thread.org/uploads/20220402/26aa232ef7c9c957f449c49cce6dddd2.jpg.webp) ## 2.3 工程架构概览 建立好的工程见下图,Nuvoton针对NK-980 IoT开发板移植的BSP源码位于下图中箭头所指文件夹。 ![3-工程架构.jpg](https://oss-club.rt-thread.org/uploads/20220402/b034726d69883c778105aa7a2e96821d.jpg.webp) ## 2.4 编写测试程序 NK-980IoT开发板上配置了3个用户LED灯,具体如下所示。 ![4-板载用户LED引脚分配.jpg](https://oss-club.rt-thread.org/uploads/20220402/af8807fd2ff47972049cbae4192cc9b8.jpg) 接下来编写测试程序,实现流水灯效果,并每隔一段时间在控制台输出下列字符串: ```c Hello Nuvoton NK-980 IoT && RT-Thread. ``` 打开“application”文件夹下的“main.c”,修改代码如下: ```c #include
#include
#if defined(RT_USING_PIN) #include
/* defined the LED_R pin: PB13 */ #define LED_R NU_GET_PININDEX(NU_PB, 13) /* defined the LED_G pin: PG15 */ #define LED_G NU_GET_PININDEX(NU_PG, 15) /* defined the LED_Y pin: PB8 */ #define LED_Y NU_GET_PININDEX(NU_PB, 8) #endif int main(int argc, char **argv) { #if defined(RT_USING_PIN) rt_uint32_t counter = 0; /* set LED_R pin mode to output */ rt_pin_mode(LED_R, PIN_MODE_OUTPUT); /* set LED_G pin mode to output */ rt_pin_mode(LED_G, PIN_MODE_OUTPUT); /* set LED_Y pin mode to output */ rt_pin_mode(LED_Y, PIN_MODE_OUTPUT); while (counter++) { rt_pin_write(LED_R, PIN_HIGH); rt_thread_mdelay(100); rt_pin_write(LED_G, PIN_HIGH); rt_thread_mdelay(100); rt_pin_write(LED_Y, PIN_HIGH); rt_thread_mdelay(100); rt_pin_write(LED_Y, PIN_LOW); rt_thread_mdelay(100); rt_pin_write(LED_G, PIN_LOW); rt_thread_mdelay(100); rt_pin_write(LED_R, PIN_LOW); rt_thread_mdelay(100); rt_kprintf("Hello Nuvoton NK-980 IoT Board.\r\n"); } #endif return 0; } ``` ## 2.5 编译工程 点击“Project”菜单下的“Build Project”完成工程的编译(快捷键:CTRL+B),即可在Debug文件夹下生成“rtthread.bin”固件,可在后续步骤烧录进开发板中运行。 ![5-编译工程.jpg](https://oss-club.rt-thread.org/uploads/20220402/3216798a9adb63157613dcbb6fb932d8.jpg.webp) # 3. 烧录固件 ## 3.1 连接Micro-USB线 将两条Micro-USB线连接PC机与开发板上的“CON4”和“CON9”,如下图所示。 ![标识-连接两条Micro-USB以及拨码开关.jpg](https://oss-club.rt-thread.org/uploads/20220402/0e5a8038003e46009f9adb3cdf8f1321.jpg.webp) ## 3.2 拨码配置为“USB”启动 根据官方的“User Manual”文件,“SW1”拨码开关控制了开发板的启动介质,具体见下图。 ![f4924f50abc9cb151ed6da61753a6881.jpg.webp](https://oss-club.rt-thread.org/uploads/20220402/f4924f50abc9cb151ed6da61753a6881.jpg.webp) 如图3-1所示,将“SW1”上的两个拨码都拨至“ON”位置。 ## 3.3 通过NuWriter连接开发板 打开NuWriter软件,选择“NUC980DK61Y”配置文件,并点击“Continue”按键,如下图所示。 ![7-NuWriter起始界面.jpg](https://oss-club.rt-thread.org/uploads/20220402/99351d228f1366d71a65939a5ae3f441.jpg) 打开MobaXterm软件,根据“设备管理器”中VCOM的编号,建立相应的“串口控制台”。 进入主界面后,点击“Reconnect”按键,连接开发板,如下图所示。 ![59c0d6aaaae7f9843fa5ebf862dd697e.jpg.webp](https://oss-club.rt-thread.org/uploads/20220402/59c0d6aaaae7f9843fa5ebf862dd697e.jpg.webp) 此时查看MobaXterm的“串口控制台”,将会看下以下启动信息。 ![3d21c957023e61d8e98a8fe7d4ccb424.jpg.webp](https://oss-club.rt-thread.org/uploads/20220402/3d21c957023e61d8e98a8fe7d4ccb424.jpg.webp) ## 3.4 烧写固件至QSPI Flash NK-980 IoT开发板上配置了容量为 1G-bit 的QSPI Flash,本教程将演示如何将程序烧写至其中并固化。整个烧写过程分为以下四个步骤: ### 3.4.1 烧写uboot-spl 遵循下图的配置烧写uboot-spl文件。 ![9-uboot-SPL烧录.jpg](https://oss-club.rt-thread.org/uploads/20220402/772ec824f6f513cef924b227ff0afb21.jpg.webp) ### 3.4.2 烧写uboot 遵循下图的配置烧写uboot。 ![9-uboot.jpg](https://oss-club.rt-thread.org/uploads/20220402/e8d04975f162eb4629e30dbc88cbb7b4.jpg.webp) ### 3.4.3 烧写rtthread.bin固件 遵循下图的配置烧写rtthread.bin固件(上述工程编译的结果)。 ![9-rtthraed-bin文件.jpg](https://oss-club.rt-thread.org/uploads/20220402/1074e9955bbe50d537224280c1fc078d.jpg.webp) ### 3.4.4 烧写env环境变量 遵循下图的配置烧写env环境变量。 ![9-env环境变量.jpg](https://oss-club.rt-thread.org/uploads/20220402/61eeb4adf9e5919b6292d7af0bdfd80d.jpg.webp) ## 3.5 拨码配置为“SPI NAND”启动 将“SW1”的两个拨码配置为“OFF”,按下开发板上的“RESET”按键,系统将从SPI NAND启动。 开发板上3个LED将依次点亮和熄灭,同时在MobaXterm软件的控制台中将输出以下字符串: Hello Nuvoton NK-980 IoT && RT-Thread. 具体如下图所示。 ![10-SPINand启动信息.jpg](https://oss-club.rt-thread.org/uploads/20220402/1e87220f437ce39d491a6d244224707e.jpg.webp) ======================== [Gitee代码仓库链接](https://gitee.com/mxdx-aiot/nk980iot-rtt-std)
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
iotfans
满血工作中……
文章
3
回答
1
被采纳
0
关注TA
发私信
相关文章
1
rt_thread studio 啥时候能用呢
2
RT_Thread使用反馈帖子
3
RTT studio 下的 AT指令问题。
4
什么时候RTT Sdudio支持Ubuntu,Deepin和UOS操作系统
5
rt thread Studio 关于J-LINK下载问题
6
RT-Thread studio 调试设置问题
7
RTT-Studio 如何设置调试配置参数?
8
rt_thread studio 软件包配置
9
RT-Studio目前只能开发STM32的项目吗?
10
rtt studio 生成hex名字修改
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部