尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
RT-Thread 下 NUC980 系列驱动支持详解:外设矩阵、设备命名与移植配置
操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载导读NUC980 是 Nuvoton新唐推出的基于 ARM926EJ-S 内核的工业级 IoT 微处理器内置 DDR 存储并集成丰富外设。本文以 bsp/nuvoton/libraries/nuc980/README.md 记录的驱动支持矩阵为核心结合仓库中 bsp/nuvoton/libraries/nuc980/rtt_port 的驱动实现与 Kconfig 配置项系统梳理 NUC980 在 RT-Thread 设备框架下的全部已支持外设、对应设备名与注册方式并给出基于 NK-980IoT 开发板的移植、配置与固件烧录实战指引帮助开发者快速评估外设覆盖度并完成 BSP 裁剪。一、NUC980 驱动库在仓库中的位置与角色在 RT-Thread 仓库中NUC980 的驱动代码统一收敛在 bsp/nuvoton/libraries/nuc980 目录下其中README.md驱动支持清单本文核心依据rtt_port/面向 RT-Thread 的设备驱动适配层每个外设对应一个drv_*.c/drv_*.h文件SConscript将该目录下所有.c/.cpp源码编入Drivers分组并自动加入头文件搜索路径见 rtt_port/SConscript。从 bsp/nuvoton/README.md 可以看到当前仓库中以 NUC980 为核心的三块评估板 BSP 均复用该库Board NameCPU ArchitectureBSP FolderNK-980IOTARM926EJSnk-980iotNK-RTU980ARM926EJSnk-rtu980NK-N9H30ARM926EJSnk-n9h30以 nk-980iot 为例其 BSP Kconfig 通过source $(RTT_DIR)/Kconfig引入 RT-Thread 根配置再加载board/Kconfig最终由驱动库的 Kconfig 完成外设开关的声明。二、Supported drivers完整外设支持矩阵原文档以表格形式给出了 NUC980 系列在 RT-Thread 中已支持的驱动清单下表完整继承并补充设备实例数量说明Peripheralrt_device_class_typeDevice nameADCRT_Device_Class_Miscellaneous (ADC)adcCANRT_Device_Class_CANcan[0-3]CRYPTORT_Device_Class_Miscellaneous (HW Crypto)hwcrytoEBIN/AN/AEMACRT_Device_Class_NetIfe[0-1]GPIORT_Device_Class_Miscellaneous (Pin)gpioI2CRT_Device_Class_I2CBUSi2c[0-3]I2SRT_Device_Class_Soundsound0PDMAN/AN/AQSPIRT_Device_Class_SPIBUSqspi[0]RTCRT_Device_Class_RTCrtcPWMRT_Device_Class_Miscellaneous (PWM)pwm[0-1]USBHRT_Device_Class_USBHostusbhUSBDRT_Device_Class_USBDeviceusbdSC (UART function)RT_Device_Class_Charscuart[0-1]SDHRT_Device_Class_Blocksdh[0-1]SPIRT_Device_Class_SPIBUSspi[0-1]TIMERRT_Device_Class_Timertimer[0-5]UARTRT_Device_Class_Charuart[0-9]WDTRT_Device_Class_Miscellaneous (Watchdog)wdt几点值得注意的细节设备名即应用层访问句柄在 RT-Thread 中应用通过rt_device_find()以这些名字拿到设备句柄例如打开串口使用uart0访问 ADC 使用adc挂载文件系统则需sdh0/sdh1对应的块设备。设备名中的数字范围如uart[0-9]、can[0-3]与芯片实际外设实例一一对应。EBI 与 PDMA 标记为 N/A这两类外设虽提供drv_ebi.c、drv_pdma.c驱动源码但它们不以标准 RT-Thread 设备方式暴露EBI 面向外部存储扩展PDMA 作为 DMA 引擎服务于 UART/SPI/QSPI/SDH 等外设因此不注册为可枚举的设备节点。SCUART 数量差异README 中设备名为scuart[0-1]而从 Kconfig 可以看到驱动库实际提供BSP_USING_SCUART0/1/2三个开关具体可用实例取决于目标芯片封装移植时以实际 Kconfig 选项为准。三、每个驱动在 rtt_port 中的落地实现rtt_port/目录下共有 35 个文件与上表逐项对应模拟/数字转换drv_adc.c含 ADC Touch 触摸功能支持总线类drv_can.c、drv_i2c.c、drv_i2s.c、drv_spi.c、drv_qspi.c网络/存储drv_emac.c双以太网、drv_sdh.cSD/MMC 主机控制器、drv_ebi.c安全引擎drv_crypto.cAES/SHA/RNG 硬件加速通用控制drv_gpio.c、drv_pwm.c、drv_rtc.c、drv_wdt.c串行drv_uart.c、drv_scuart.c智能卡 UART时钟/定时drv_systick.c、drv_etimer.c、drv_etimer_capture.c系统支撑drv_common.c、drv_sys.c、drv_pdma.c、drv_usbd.c、drv_usbhost.c这些驱动均通过 RT-Thread 自动初始化机制挂载可从前述驱动初始化导出宏观察到统一模式INIT_BOARD_EXPORT(rt_hw_gpio_init)drv_gpio.c、INIT_BOARD_EXPORT(rt_hw_rtc_init)drv_rtc.c等在板级初始化阶段注册INIT_DEVICE_EXPORT注册的外设包括 CAN、I2C、I2S、PDMA、PWM、QSPI、SCUART、SPI、WDT 等网络协议栈依赖的 EMAC 则在INIT_APP_EXPORT(rt_hw_nu_emac_init)drv_emac.c阶段随 lwIP 一起启动。驱动是否参与编译完全由rtconfig.h中的BSP_USING_*宏控制例如drv_uart.c仅当#if defined(BSP_USING_UART)成立时才被编译见 drv_uart.c。四、Kconfig 配置项与裁剪实战开发者在menuconfig下通过 rtt_port/Kconfig 声明的开关逐项使能外设。除第二、三章涉及的外设开关外还有几类值得关注的配置UART 与 DMABSP_USING_UART0~BSP_USING_UART9各自独立且每个串口的 TX/RX DMA 可分别使能依赖RT_SERIAL_USING_DMA。串口驱动结构体struct nu_uart中为此预留了pdma_perp_tx/rx、pdma_chanid_tx/rx及 rx 描述符等 DMA 字段见 drv_uart.c。EMAC 与 PDMA 卸载BSP_USING_EMAC0/1使能两个 10/100 Mbps 网口NU_EMAC_PDMA_MEMCOPY开启后用 PDMA 搬运数据NU_EMAC_PDMA_MEMCOPY_THRESHOLD默认 128范围 32~1500 字节设定启用 PDMA memcpy 的阈值。RTC 功能扩展NU_RTC_SUPPORT_IO_RW允许通过设备 read/write 接口访问时间NU_RTC_SUPPORT_MSH_CMD使能date/time类 shell 命令drv_rtc.c。从源码可见其时间范围约束在 2000-01-01 至 2038-01-19drv_rtc.c。TIMER 三种模式BSP_USING_TMR总开关之下TIMER0~TIMER4 每个实例均可二选一为TIMER系统时钟/软件定时器或TIMER CAPTURE输入捕获依赖RT_USING_INPUT_CAPTURE。SPI/QSPI PDMABSP_USING_SPI0_PDMA、BSP_USING_QSPI0_PDMA可单独为对应总线开启 PDMA 加速。SDH 高级选项NU_SDH_USING_PDMA、NU_SDH_HOTPLUG默认开启热插拔检测、NU_SDH_MOUNT_ON_ROOTSD 卡直接挂载到根目录。CRYPTO 引擎使能后自动连带打开RT_USING_HWCRYPTO及其 AESECB/CBC/CFB/CTR/OFB、SHA1、SHA2-224/256/384/512 与 RNG 子项NU_PRNG_USE_SEED可指定 PRNG 种子值。软件 I2C 兜底BSP_USING_SOFT_I2C0/1提供无硬件 I2C 场景下的 GPIO 模拟总线默认引脚为 swi2c0SCL0x18/SDA0x17、swi2c1SCL0x0B/SDA0x0A。裁剪原则很简单按需打开BSP_USING_XXX驱动库会自动select关联的 RT-Thread 组件如BSP_USING_EMAC自动依赖RT_USING_LWIPRT_USING_NETDEVBSP_USING_CRYPTO自动依赖RT_USING_HWCRYPTO保证依赖一致。五、典型驱动工作机制速览5.1 GPIO接入 PIN 框架NUC980 的 GPIO 驱动在 drv_gpio.c 中通过rt_device_pin_register(gpio, nu_gpio_ops, RT_NULL)注册到 RT-Thread PIN 框架随后即为每个 GPIO 端口安装中断处理并设置为高电平敏感触发。此后上层可用rt_pin_mode/rt_pin_write/rt_pin_read统一操作软件 I2C 等基于 GPIO 的组件也直接受益。5.2 RTC标准设备 报警扩展rt_hw_rtc_init通过rt_device_register(device_rtc, rtc, RT_DEVICE_FLAG_RDWR)注册drv_rtc.c并实现struct rt_device_ops的control回调以响应RT_DEVICE_CTRL_RTC_GET_TIME/SET_TIME若打开RT_USING_ALARM还提供nu_rtc_alarm_reset与中断服务函数用于闹钟功能。5.3 UART轮询 DMA 双路径nu_uart_ops同时挂载了putc/getc轮询与dma_transmitDMA回调drv_uart.cstruct nu_uart在使能RT_SERIAL_USING_DMA时携带完整 PDMA 描述符与触发长度字段控制台通常 uart0与高速数据通道可分别选择合适模式。5.4 EMAC接入 lwIP 双网口drv_emac.c提供e0/e1两个网络接口设备配合RT_USING_LWIP与RT_USING_NETDEV使用其初始化位于INIT_APP_EXPORT阶段与协议栈初始化顺序匹配可用于工业网关类双网口应用。六、基于 NK-980IoT 的实践参考若需在真实硬件上验证上述驱动可参考 nk-980iot 评估板NUC980DK61YARM926EJ-S 300 MHz内置 64MB SDRAM双 10/100 以太网口SPI-NAND 与 SD 卡存储Arduino UNO 兼容接口。其板级说明README.md确认以下驱动已在该板验证Ethernet PHYIP101GR、音频 CodecNAU8822、USB 设备VCOM MStorage、双 USB HostMStorage、SPI NAND FlashW25N01GVZE1G、LED/按键等与第二章支持矩阵高度吻合。固件烧录使用 Nuvoton NuWriter要点如下SDRAM 调试类型选 DDR/SRAM指定rtthread.bin执行地址 0x0选择 Download and runSPI NOR Flash类型选 SPI镜像类型 Loader执行地址 0x0Program 后把开机设置切到 SPI NOR 启动并复位SPI NAND Flash类型选 SPINAND按顺序烧写uboot-spl.binLoader地址 0x200、uboot.binData地址 0x100000、rtthread.binData地址 0x200000与env.txtEnvironment地址 0x80000再切换为 SPI NAND 启动。串口调试建议使用 Tera Term 等终端软件连接 Nuvoton 虚拟串口需安装 VCOM 驱动即可进入 RT-Thread MSH shell 逐一验证第二章表格中的设备。七、参考资料驱动库与支持矩阵bsp/nuvoton/libraries/nuc980/README.md驱动实现源码目录bsp/nuvoton/libraries/nuc980/rtt_port外设开关配置bsp/nuvoton/libraries/nuc980/rtt_port/Kconfig评估板 BSPbsp/nuvoton/nk-980iot、bsp/nuvoton/nk-rtu980、bsp/nuvoton/nk-n9h30NUC980 全系列技术参考手册TRM可由 Nuvoton 官网按型号如 NUC980DK61Y检索下载用于核对各外设寄存器的底层细节。说明本文所述设备名、配置开关、初始化宏与时间范围等均来自当前仓库源码与文档版本迁移时请以仓库最新内容为准。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐RT-Thread 合晶 MA35D1 系列外设驱动支持矩阵与设备注册机制详解RT Thread 合晶 MA35D1 系列外设驱动支持矩阵与设备注册机制详解 本文基于 RT Thread 仓库中 bsp/nuvoton/libraries操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 下 NuMicro M460 系列驱动支持全览外设清单、设备命名与配置指南RT Thread 下 NuMicro M460 系列驱动支持全览外设清单、设备命名与配置指南 本篇技术指南以 RT Thread 开源仓库中 M460 系列操作系统嵌入式物联网嵌入式OSRTOSRT-Thread GD32 ARM 系列 BSP 开发指南支持矩阵、外设驱动使能与新 BSP 移植RT Thread GD32 ARM 系列 BSP 开发指南支持矩阵、外设驱动使能与新 BSP 移植 RT Thread 在 bsp/gd32/arm 目录下操作系统嵌入式物联网嵌入式OSRTOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

10G SFP+光模块四重匹配原理与实战选型指南

10G SFP+光模块四重匹配原理与实战选型指南

1. 这不是买U盘,选10G SFP光模块前你得先搞懂三件事“光特通信”这四个字一出来,老工程师心里就咯噔一下——不是因为技术多玄乎,而是因为太多人把光模块当成即插即用的USB闪存盘。我干这行十二年,从机房布线到核心网调测&#xf…

📅 2026/9/26 21:18:53
Halo后训练框架实战:模块化设计与工程化落地指南

Halo后训练框架实战:模块化设计与工程化落地指南

1. 从“后训练”说起:为什么 Halo 框架值得单独聊大模型这波浪潮里,预训练是烧钱的大工程,动辄千卡万卡、几千万预算,普通团队根本碰不起。但真正让模型从“能说话”变成“能干活”的,其实是后训练阶段——也就是预训练…

📅 2026/9/26 21:13:53
Substrate区块链开发框架核心原理与Pallet实战解析

Substrate区块链开发框架核心原理与Pallet实战解析

提到substrate,很多非区块链圈子的朋友第一反应是生物实验里的培养基底物,或者PCB板上那块支撑铜箔的绝缘基板。但如果你做区块链开发,这个单词几乎绕不开——它是Parity推出的区块链开发框架,Polkadot生态里绝大多数平行链都构建…

📅 2026/9/26 21:13:53
MORE NEWS

更多资讯

📰

没代码基础选外贸软件app哪家好3个真实案例拆解

没代码基础选外贸软件app哪家好3个真实案例拆解 很多老板盯着【外贸软件app】哪家好发愁,其实你最大的痛点根本不是软件好不好,而是 自己不会代码想做网站…

📰

上海英文网站建设避坑指南,选哪家好看这3点

上海英文网站建设避坑指南,选哪家好看这3点 改个按钮颜色,建站公司拖了一周还没动静?这种憋屈感,做外贸的朋友肯定懂。 很多老板找上海英文网站建设,问的第一句话往往是“哪家好”。但说实话,如果不看技术底层和响应速度,只比价格,你大概率会踩坑。…

📰

做网站怎么和广告公司合作避坑指南

做网站怎么和广告公司合作避坑指南 模板网站太丑,业务跑不动,想找广告公司定制却怕被宰,纠结做网站怎么和广告公司合作哪家好?别急,咱们不聊虚的,直接拆解一个真实踩坑后修正的案例,把合作流程、技术选型、上线细节全摊开讲。…

📰

社区团播系统选型:重建邻里信任的四大生死指标

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

MES基础业务考核试题解析:ISA-95、BOM与QMS核心考点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

百度seo优化收费标准揭秘:避坑建站报价全解析

百度seo优化收费标准揭秘:避坑建站报价全解析 找建站公司最怕什么?不是网站丑,而是报价单像天书,今天说5000,明天变1.5万,还没开工先交一半定金。这种 建站报价…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬