首页/新闻资讯/正文详情

LPC54114-Lite 开发板 RT-Thread BSP 使用指南:双核语音开发板的快速上手与进阶驱动开发

发布时间:2026/9/25 3:03:58 来源:云帆数科 栏目:资讯中心
LPC54114-Lite 开发板 RT-Thread BSP 使用指南:双核语音开发板的快速上手与进阶驱动开发
操作系统嵌入式物联网嵌入式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 仓库中 bsp/nxp/lpc/lpc54114-lite/README.md 为核心系统讲解万利电子 LPC54114-Lite即 NXP LPC54110 Board开发板 BSP 的板载资源、外设支持现状、从零上电到系统运行的完整流程并结合仓库源码逐层剖析 GPIO、UART、SPI、I2C、SD 卡、SPI Flash 与音频WM8904 PDM 麦克风驱动的实现原理与配置方法。读完本文你将能够独立完成该开发板的 MDK5/IAR/GCC 编译下载、串口调试、文件系统挂载以及音频编解码功能的启用与验证。开发板概览面向双核语音应用的 LPC54110 BoardLPC54114-Lite 开发板由万利电子提供是一块主打双核高性能、专注语音应用的测试开发板卡。它围绕 NXP LPC54114J256BD64 双核 MCU 设计其 BSP 说明位于 bsp/nxp/lpc/lpc54114-lite 目录。LPC54114-Lite 开发板实物图.jpg)核心 MCULPC54114J256BD64LPC54114J256BD64 是一颗Cortex-M4 / Cortex-M0 双核 MCU主频 100MHz内置 256KB FLASH 与 192KB RAM。双核架构使其可以在 M4 内核上运行主业务逻辑同时用 M0 内核专门承担低功耗语音采集、传感器管理等负载较轻的任务这一特性正是该板卡面向语音应用场景的核心优势。需要特别强调的是当前 BSP 仅支持 M4 内核见 README「注意事项」M0 内核的使用需要开发者自行移植配置。板载资源一览资源类别具体资源说明MCULPC54114J256BD64Cortex-M4/M0 双核100MHz256KB FLASH192KB RAM外部 FLASHMD25D16SIG16Mbit通过 SPI 挂载LED8 个LD4-LD7 绿色PIO0_30、PIO0_29、PIO0_26、PIO0_25LD8-LD11 红色PIO0_22、PIO0_21、PIO0_19、PIO0_15按键4 个PB2-PB5PIO1_8、PIO1_9、PIO1_10、PIO1_11常用接口USB、TF、音频接口Micro USBCN1兼作调试与串口、TF 卡座、音频输入/输出调试接口SWD支持 CMSIS-DAP 仿真器下载外设支持情况当前 BSP 的驱动覆盖矩阵BSP 的 README 明确给出了当前外设支持矩阵这是评估该板卡可用性的第一手依据按“板载外设 / 片上外设 / 板外外设”三个维度划分板载外设支持情况备注SPI Flash支持-SPI TF 卡支持-I2C 温度传感器PCT2075DP支持-I2S 音频输入/输出接口WM8904支持仅支持解码播放PDM 数字麦克风SPH0641LM4H支持-片上外设支持情况备注GPIO支持PIO0_0 ... PIO1_31 → PIN: 0, 1 ... 63UART支持UART0SPI支持暂时只支持 SPI2I2C支持暂时只支持 I2C4ADC暂不支持即将支持PWM暂不支持即将支持USB Device暂不支持即将支持IWG暂不支持即将支持板外外设支持情况备注Arduino 扩展接口暂不支持-从这张表可以看出该 BSP 的驱动生态正处于“核心外设已就绪、部分外设规划中”的阶段GPIO、UART、SPI、I2C 四大基础外设全部可用存储与音频两大板载功能也已打通而 ADC、PWM、USB Device 等仍处于“即将支持”状态属于可预期但尚未落地的能力。外设支持与源码配置的对应关系外设支持情况并非停留在文档层面而是由 BSP 的 Kconfig 配置树真实驱动。查看 drivers/Kconfig 可以看到每个外设开关与依赖关系BSP_USING_UART0UART0 串口驱动开关默认开启BSP_USING_SPI2SPI2 总线驱动开关默认开启并被 SD 卡、SPI Flash 两个功能select依赖BSP_USING_I2C4I2C4 总线驱动开关默认开启同时被音频解码功能BSP_USING_AUDIO_REPLAY依赖BSP_USING_ROMFSROMFS 只读文件系统默认开启自动select RT_USING_DFS与RT_USING_DFS_ROMFSBSP_USING_SDCARDSD 卡支持默认开启select BSP_USING_SPI2BSP_USING_SPIFLASHSPI Flash 支持默认开启select BSP_USING_SPI2BSP_USING_AUDIO音频功能WM8904 与 SPH0641LU4H 麦克风默认关闭开启后还可细分为BSP_USING_AUDIO_REPLAYWM8904 播放与BSP_USING_AUDIO_RECORDSPH0641LU4H 录音。同时Kconfig 中的SOC_LPC54114配置项会强制select ARCH_ARM_CORTEX_M4、RT_USING_COMPONENTS_INIT、RT_USING_USER_MAIN以及PKG_USING_NXP_LPC_DRIVERNXP LPC 驱动包由 ENV 的pkgs --update拉取这解释了为什么编译前必须先更新软件包——底层fsl_*HAL 驱动库均来自该软件包。而默认使能的配置组合最终会固化到 rtconfig.h其中可以看到BSP_USING_UART0、BSP_USING_SPI2、BSP_USING_I2C4、BSP_USING_ROMFS、BSP_USING_SDCARD、BSP_USING_SPIFLASH均已定义与 README 的外设支持表完全吻合。快速上手让 RT-Thread 在开发板上跑起来环境准备本 BSP 同时提供MDK5 工程project.uvprojx、IAR 工程project.ewp并支持GCC 开发环境。下面以 MDK5 为例介绍完整流程IAR 与 GCC 的步骤逻辑相同仅工程文件与工具链不同。硬件连接与工具安装是第一步使用Micro USB 数据线连接开发板CN1接口到 PC安装 mbedSerial 驱动——该驱动是板载 CMSIS-DAP 调试器与虚拟串口正常工作所必需的若使用 MDK5还需安装 LPC54114 相关的 pack否则工程无法识别器件型号。编译下载编译前有一个关键步骤必须先打开 ENV 工具执行pkgs --update该指令用于拉取 BSP 依赖的 NXP LPC 驱动软件包即上文提到的PKG_USING_NXP_LPC_DRIVER否则底层fsl_*HAL 库缺失工程无法通过编译pkgs --update随后双击project.uvprojx打开 MDK5 工程直接编译并下载程序。工程默认配置使用CMSIS-DAP 仿真器下载因此在完成 Micro USB 连接后点击 MDK 的下载按钮即可将固件烧录进开发板。运行结果验证下载成功后系统会自动运行最直观的现象是编号为 LD4 的绿色 LED 开始闪烁。这一现象的代码依据位于 applications/main.c#define LED4_PIN 30 /* PIO0_30 */ int main(void) { /* user app entry */ rt_pin_mode(LED4_PIN, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LED4_PIN, !rt_pin_read(LED4_PIN)); rt_thread_delay(1000); } }主线程将引脚 30即 PIO0_30对应 LED4配置为推挽输出随后每秒翻转一次电平实现 1Hz 闪烁。rt_thread_delay(1000)依赖内核节拍其频率由 rtconfig.h 中的RT_TICK_PER_SECOND 10001ms 一个 tick决定。与此同时将开发板串口连接到 PC在终端工具中打开对应串口115200-8-1-N即波特率 115200、8 数据位、1 停止位、无校验复位设备后可以看到 RT-Thread 的启动 banner 与 msh 命令行提示符\ | / - RT - Thread Operating System / | \ 3.1.1 build Nov 19 2018 2006 - 2018 Copyright by rt-thread team msh 串口控制台的内核级实现串口输出并非“黑盒魔法”其底层由 drivers/drv_uart.c 实现。该驱动将 USART0Flexcomm0注册为 RT-Thread 标准串口设备uart0rt_hw_uart_init()完成时钟挂载CLOCK_AttachClk(kFRO12M_to_FLEXCOMM0)、引脚复用PIO0_0 配置为 FC0_RXD_SDA_MOSI、PIO0_1 配置为 FC0_TXD_SCL_MISO与中断使能随后通过rt_hw_serial_register()注册设备lpc_configure()将串口参数波特率、8 位数据、1 停止位、无校验写入 USART 硬件寄存器默认波特率由RT_SERIAL_CONFIG_DEFAULT提供中断服务函数FLEXCOMM0_IRQHandler()中调用rt_hw_serial_isr()将接收事件上报给串口框架。控制台设备名在 rtconfig.h 中定义为RT_CONSOLE_DEVICE_NAME uart0并在 drivers/board.c 的rt_hw_board_init()中通过rt_console_set_device()完成绑定。板级初始化还完成了系统时钟配置BOARD_BootClockFROHF48M()、SysTick 节拍配置SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND)以及堆内存初始化。进阶使用用 ENV 配置开启更多板载资源快速上手解决了“跑起来”的问题进阶使用则面向需要在 RT-Thread 上驱动更多板载资源的开发者。核心工具是ENV通过menuconfig图形化配置界面修改 BSP 的 Kconfig 配置重新生成rtconfig.h后即可裁剪或开启驱动。文件系统SPI Flash 与 SD 卡的自动挂载BSP 默认开启了 SPI FlashBSP_USING_SPIFLASH与 SD 卡BSP_USING_SDCARD支持二者共用 SPI2 总线。挂载逻辑位于 applications/mnt.c#define BSP_FLASH_MOUNT_PATH /mnt/flash #define BSP_SDCARD_MOUNT_PATH /mnt/sd int mnt_init(void) { #if defined(BSP_USING_SPIFLASH) if(dfs_mount(flash0, BSP_FLASH_MOUNT_PATH, elm, 0, 0) ! 0) { rt_kprintf(spi flash mount %s failed.\n, BSP_FLASH_MOUNT_PATH); } #endif #if defined(BSP_USING_SDCARD) if(dfs_mount(sd0, BSP_SDCARD_MOUNT_PATH, elm, 0, 0) ! 0) { rt_kprintf(sdcard mount %s failed.\n, BSP_SDCARD_MOUNT_PATH); } #endif return 0; } INIT_APP_EXPORT(mnt_init);该初始化函数通过INIT_APP_EXPORT宏在系统组件初始化阶段自动执行SPI Flash 设备flash0挂载到/mnt/flashSD 卡设备sd0挂载到/mnt/sd文件系统格式为 elm 兼容的 FATRT_USING_DFS_ELMFAT已在 rtconfig.h 中使能RT_DFS_ELM_DRIVES为 2支持两个 FAT 卷。挂载失败时会通过串口打印明确的错误提示便于定位。SPI 总线驱动要点drivers/drv_spi.c 是 SPI 功能的底层实现有两个值得注意的工程细节最大时钟限制spi_init()中若配置的max_hz超过 12MHz会被钳制到 12MHz即 SPI2 的实际最高波特率受限于 12MHz 的 Flexcomm 时钟数据位宽校验仅接受 8 位与 16 位两种数据宽度其他值返回-RT_EINVAL模式映射RT-Thread 的RT_SPI_MSB、RT_SPI_CPHA、RT_SPI_CPOL标志会分别映射到 NXP HAL 的 MSB/LSB 优先、时钟相位与极性配置。GPIO 引脚编号映射README 中外设表中注明“PIO0_0 ... PIO1_31 → PIN: 0, 1 ... 63”其转换规则在 drivers/drv_gpio.c 中清晰可见#define get_port(x) (x / 32) #define get_pin(x) (x % 32) #define PIN_MAX_VAL 63引脚编号pin 32 * hw_port_num hw_pin_num即 PIO 端口号乘 32 再加引脚号PIO0_0 对应 PIN 0PIO0_30 对应 PIN 30即 main.c 中 LED4 使用的编号PIO1_11 对应 PIN 43。该驱动同时实现了 RT-Thread PIN 框架的输入输出、中断最多 8 个 IRQ 槽位IRQ_MAX_VAL 8能力。音频子系统WM8904 解码与 PDM 麦克风音频是本板卡区别于普通开发板的特色功能README 明确标注“I2S 音频输入/输出接口WM8904仅支持解码”。音频驱动的完整实现位于 drivers/audio/drv_sound.c其架构值得展开硬件通路WM8904 音频编解码芯片通过 I2C4 总线完成寄存器配置CODEC_I2C_NAME默认i2c4音频数据经 I2S1 发送I2S_TX配合 DMA0 通道 15 实现无 CPU 干预的数据搬运I2S 主时钟 MCLK 由系统 PLL 提供pll_setup中pllRate 24576000U注释明确其为“16 bits × 2 channels × 44.1 kHz × 16”的计算结果即默认支持 44.1kHz/16bit/双声道播放。RT-Thread 音频框架接入驱动通过struct rt_audio_ops完整实现getcaps、configure、init、start、stop、transmit、buffer_info七类回调lpc_audio_init()配置 PLL 与引脚复用Flexcomm7 的 SCK/SDA/WS、PIO1_17 的 MCLK 输出初始化 WM8904通过rt_device_find(i2c4)获取 I2C 总线设备配置 I2S 发送与 DMAlpc_audio_configure()支持AUDIO_MIXER_VOLUME音量调节实际写入 WM8904 的增益寄存器与AUDIO_DSP_PARAM/AUDIO_DSP_SAMPLERATE按采样率重算 I2S 分频CLOCK_GetPllOutFreq() / samplerate / 16 / 2lpc_audio_buffer_info()上报 4KB TX FIFO分为 2 个 2KB 块供音频框架做双缓冲播放调度默认配置为 44100Hz 采样率、双声道、16bit音量 30设备注册名为sound0。音频功能在 drivers/Kconfig 中默认关闭default n开发者需要在 ENV 中执行menuconfig进入LPC54110 Bsp Config→ 开启Enable Audio(WM8904SPH0641LU4H)视需求勾选Enable WM8904(only replay)自动选中 I2C4与Enable SPH0641LU4HPDM 麦克风录音保存退出后重新编译下载即可通过 RT-Thread Audio 设备框架进行播放/录音应用开发。注意事项与常见问题排查README 中明确列出了三条注意事项实际开发中也是最高频的排障入口必须安装 mbedSerial 驱动否则 PC 无法识别板载 CMSIS-DAP 调试器与虚拟串口表现为设备管理器无串口、下载失败MDK5 需要安装对应的 pack缺少 pack 时 MDK 无法识别 LPC54114 器件工程报器件相关错误BSP 仅支持 M4 内核当前驱动与链接脚本均面向 Cortex-M4 构建不要试图在 M0 内核工程上直接套用本 BSP。此外还有两个编译前置条件先执行pkgs --update拉取 NXP LPC 驱动包跳过此步必然编译失败以及工程默认使用 CMSIS-DAP 下载换用 J-Link 等仿真器时需要同步修改调试配置。总结LPC54114-Lite BSP 为双核语音应用开发提供了一个开箱即用的 RT-Thread 平台GPIO、UART、SPI、I2C 四大基础外设驱动齐备SPI Flash 与 SD 卡自动挂载、WM8904 音频解码、PDM 麦克风等特色功能均有源码级实现支撑。通过 ENV 工具的menuconfig配置开发者可以在不修改代码的前提下按需开启或裁剪驱动实现从“点亮一颗 LED”到“完成一个语音应用原型”的平滑进阶。对于需要进一步探究源码的读者建议按 applications/main.c入口应用→ drivers/board.c板级初始化→ drivers各外设驱动的路径顺序阅读并结合 drivers/Kconfig 与 rtconfig.h 对照理解配置与实现的映射关系。赞分享操作系统嵌入式物联网嵌入式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 AIR105 开发板 BSP 快速上手与进阶使用指南RT Thread AIR105 开发板 BSP 快速上手与进阶使用指南 AIR105 是合宙推出的一款基于 ARM Cortex M4 内核的高集成度 MCU操作系统嵌入式物联网嵌入式OSRTOSRT-Thread N32H488ZEL7 开发板 BSP 快速上手与进阶外设开发指南RT Thread N32H488ZEL7 开发板 BSP 快速上手与进阶外设开发指南 本篇技术指南以 RT Thread 仓库中 N32H488ZEL7 开发操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 小华 HC32F467 EV_F467_LQ144 开发板 BSP 快速上手与进阶使用指南RT Thread 小华 HC32F467 EV_F467_LQ144 开发板 BSP 快速上手与进阶使用指南 本篇指南围绕 RT Thread 仓库中 bsp操作系统嵌入式物联网嵌入式OSRTOS上一篇F´ FatalHandler 组件深度解析FATAL 事件接收、进程终止与平台定制实现下一篇vLLM部署A.X-K2教程实现高并发长文本推理的最佳实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

使用 OpenTelemetry 完整接入 Python 可观测性:highlight.io 全栈监控实战指南
使用 OpenTelemetry 完整接入 Python 可观测性:highlight.io 全栈监控实战指南

可观测性后端 【免费下载链接】highlight highlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more. 项目地址: https://gitcode.com/gh_mirrors/hi/highlight 点击查看 免费下… · 2026/9/25 3:03:58

WorkBuddy 12个Skill实战:让AI自动化处理文件与数据
WorkBuddy 12个Skill实战:让AI自动化处理文件与数据

前阵子把 WorkBuddy 的 12 个官方 Skill 挨个试了一遍,从安装到把一堆乱糟糟的表格变成可视化报告,前后折腾了两个晚上。说实话,一开始我以为这又是个套壳聊天框,真用下来才发现,Skill 机制的作用比想象中大得多——它… · 2026/9/25 3:03:52

Umi-OCR 离线 OCR:截图、扫描件、PDF 转文字,解压即用免费开源
Umi-OCR 离线 OCR:截图、扫描件、PDF 转文字,解压即用免费开源

Umi-OCR 离线 OCR:截图、扫描件、PDF 转文字,解压即用免费开源 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成… · 2026/9/25 3:03:52

RisingWave 开发者文档体系:构建 rustdoc 索引页与核心 crate 导航指南
RisingWave 开发者文档体系:构建 rustdoc 索引页与核心 crate 导航指南

数据库流处理后端数据工程 【免费下载链接】risingwave Event streaming platform for agentic AI. Continuously ingest, transform, and serve event streams in real time, at scale. 项目地址: https://gitcode.com/gh_mirrors/ri/risingwave 点击查看 免费下载… · 2026/9/25 3:30:49

苹果CMS+油条视频模板视频站搭建全攻略:从宝塔部署到上线备份
苹果CMS+油条视频模板视频站搭建全攻略:从宝塔部署到上线备份

简介:油条视频是一套基于苹果CMS系统的视频建站完整解决方案,面向需要快速搭建影视资源站的站长、运营者及PHP二次开发学习者。系统后台内置自定义参数,可灵活对应会员升级与积分充值页面;视频、演员、专题、收藏、会员等模块齐全… · 2026/9/25 3:30:49

OpenTTD 编译实战:依赖库、CMake 构建流程与 Windows/多平台调试选项
OpenTTD 编译实战:依赖库、CMake 构建流程与 Windows/多平台调试选项

游戏开发 【免费下载链接】OpenTTD OpenTTD is an open source simulation game based upon Transport Tycoon Deluxe 项目地址: https://gitcode.com/gh_mirrors/op/OpenTTD 点击查看 免费下载 OpenTTD(基于 Transport Tycoon Deluxe 的开源运输模拟游… · 2026/9/25 3:30:49

CRM云端部署与Excel迁移避坑指南
CRM云端部署与Excel迁移避坑指南

1. DeskcommCRM不是“另一个Excel插件”,而是客户数据主权的重建起点你有没有过这样的经历:销售同事发来一份标着“最新客户清单_V12_终版_真的终版.xlsx”的文件,里面混着三张工作表——一张是去年的线索池,一张是今年Q1跟进记录… · 2026/9/25 3:30:43

azidentity Breaking Changes 深度解读:Managed Identity 错误行为与 IMDS 探测机制变更
azidentity Breaking Changes 深度解读:Managed Identity 错误行为与 IMDS 探测机制变更

云原生CI/CDDevOps后端 【免费下载链接】pipeline A cloud-native Pipeline resource. 项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline 点击查看 免费下载 本指南以 Azure Go SDK azidentity 模块的 BREAKING_CHANGES.md 为核心,完整解读 … · 2026/9/25 3:30:36

Skia Job Analysis 指南:用 jq + Miller 审计 jobs.json,找出 CI 测试覆盖缺口
Skia Job Analysis 指南:用 jq + Miller 审计 jobs.json,找出 CI 测试覆盖缺口

图形学图像处理 【免费下载链接】skia Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. 项目地址: https://gitcode.com/gh_mirrors/skia1/skia 点击查看 免费下载 本文围绕 Skia 仓库中 infra/bots/analysis/README.md 所描述的… · 2026/9/25 3:30:36

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码