操作系统嵌入式物联网嵌入式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点击查看免费下载LPC55S69-EVK 板级支持包BSP是 RT-Thread 针对恩智浦 NXP 基于 Arm Cortex-M33 双核架构的高性能单片机 LPC55S69 提供的完整移植工程。本文以该 BSP 的官方中文文档bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/README_zh.md为核心系统讲解在 Linux / macOS / Windows 三种平台下的源码获取、ENV 环境准备、menuconfig 芯片与外设配置、MDK/IAR/GCC 多工具链编译、烧写运行验证并结合仓库内board.c、main.c、Kconfig与驱动库源码深入剖析板级初始化流程、UART 控制台、LED 例程与各外设驱动的使能方式。读完本文你将能够独立完成从零开始在 LPC55S69-EVK 上构建、烧录并调试 RT-Thread 系统并按需裁剪使能外设驱动。1. 板级支持包概览与硬件特性LPC55S69 是恩智浦推出的基于 Cortex-M33 内核的高性能单片机也是 LPC55S6x 系列的代表型号。该 BSP 位于仓库bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/目录下同时该目录族还包含 lpc55s06 / lpc55s16 / lpc55s28 / lpc55s36 等多个同系列 BSP见 bsp/nxp/lpc/lpc55sxx驱动代码在兄弟目录 bsp/nxp/lpc/lpc55sxx/libraries 中共享。其核心硬件特性如下表| 硬件 | 描述 | | -- | -- | | 芯片型号 | LPC556x / LPC55S6x 全系列 | | CPU | Cortex-M33 Dual Core带 FPU | | 主频 | 150MHz | | 基本外设 | 8 个 Flexcomm可任意配置为 USART / SPI / I2C / I2S1 个 50MHz SPI双 USB1 高速 1 全速支持主从 | | 特色 | PowerQuad DSP 协处理器安全外设PRINCE / PUF / CASPER / AES-256 / HASH |说明Flexcomm 是 NXP LPC55S6x 系列特有的可重构通信外设同一组引脚可依据软件配置切换为 UART、SPI、I2C 或 I2S 协议这是该系列8 个串口类外设能力的基础。从 bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/Kconfig 可以看到该 BSP 选择ARCH_ARM_CORTEX_M33与ARCH_ARM_CORTEX_SECURE架构并默认选中PKG_USING_NXP_LPC55S_DRIVER软件包即 NXP LPC55S 系列 HAL 驱动包。开发板外观如下图所示2. 硬件开发环境与依赖工具官方文档给出的编译环境要求如下环境说明PC 操作系统Linux / MacOS / Windows编译器arm-none-eabi-gcc version 6.3.1 20170620 (release) / armcc / iar构建工具scons / mdk5 / iar依赖软件环境Env 工具 / (MDK 或 IAR 或 arm-none-eabi-gcc) / git / 调试器驱动也就是说该 BSP 同时支持三条构建路线SCons GCC跨平台通用Linux/macOS 上的首选Windows 上亦可配合 ENV 使用MDK5Keil uVisionWindows 下使用通过scons --targetmdk5 -s生成工程IAR EWARMWindows 下使用通过scons --targetiar -s生成工程。3. 获取源码与准备 ENV 环境3.1 下载源码git clone https://gitcode.com/gh_mirrors/rt/rt-thread说明官方原文档给出的克隆地址为 RT-Thread 上游 GitHub 仓库国内开发者亦可从镜像仓库克隆代码结构一致。3.2 进入 BSP 目录并配置工程Linux/macOS注意仓库内该 BSP 的实际路径为bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk官方文档中简写为bsp/lpc55s69_evk编译时请以实际路径为准。cd rt-thread/bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk scons --menuconfig source ~/.env/env.sh pkgs --upgrade3.3 Windows 平台Windows 用户需先从 RT-Thread 官网下载 ENV 工具包官方文档要求使用 v1.3.5 及以上版本在 ENV 终端中执行menuconfig3.4 拉取必要软件包无论使用哪种平台menuconfig 配置完成后都必须拉取依赖软件包否则编译将失败pkgs --update该命令会依据生成的.config下载并展开PKG_USING_NXP_LPC55S_DRIVER等软件包源码。从 bsp/nxp/lpc/lpc55sxx/lpc55s69_nxp_evk/rtconfig.h 可见其默认已启用PKG_USING_NXP_LPC55S_DRIVER及其 LATEST 版本。4. 通过 menuconfig 配置芯片型号与外设在 menuconfig 页面中配置并选择对应的芯片型号SOC_LPC55S69/SOC_LPC55S6X。顶层 Kconfig 将配置菜单挂接到 RT-Thread 主菜单并通过rsource引入 ../libraries/Kconfig 与 board/Kconfig。4.1 芯片型号与架构选择顶层 Kconfig 定义config SOC_LPC55S69 bool select ARCH_ARM_CORTEX_M33 select ARCH_ARM_CORTEX_SECURE select PKG_USING_NXP_LPC55S_DRIVER default y同时在 board/Kconfig 中定义SOC_LPC55S6X默认使能组件自动初始化RT_USING_COMPONENTS_INIT与用户 main 线程RT_USING_USER_MAIN。4.2 片内外设驱动开关On-chip Peripheral Driversboard/Kconfig 中提供的核心配置项如下配置项功能默认值备注BSP_USING_DMA使能 DMADMA0/DMA1关选中后自动select RT_USING_DMABSP_USING_PIN使能 GPIORT-Thread PIN 框架开自动select RT_USING_PINBSP_USING_UART使能 UART 串口框架开自动select RT_USING_SERIALBSP_USING_UART0使能 Flexcomm0 作为 UART开控制台默认串口BSP_USING_UART1使能 Flexcomm1 作为 UART关波特率可选 9600 / 115200BSP_USING_UART2使能 Flexcomm2 作为 UART关波特率可选 9600 / 115200BSP_USING_I2C/BSP_USING_I2C1/BSP_USING_I2C4使能硬件 I2C关速率可选 100kHz / 400kHzBSP_USING_SOFT_I2C使能软件 I2Cswi2c1/swi2c2关引脚号可配置BSP_USING_SPI/BSP_USING_SPI3/BSP_USING_SPI8使能 SPI关SPI8 为 High Speed SPI50MHzBSP_USING_SOFT_SPI使能软件 SPIswspi1/swspi2关SCK/MISO/MOSI 引脚可配置BSP_USING_ADC使能 ADC 通道关可选 ADC0 的 CH0/CH1/CH8/CH13/CH26BSP_USING_SDIO使能 SDIO SD 卡接口关自动select RT_USING_SDIO、RT_USING_DFS、RT_USING_DFS_ELMFATBSP_USING_RTC使能 RTC关自动select RT_USING_RTCBSP_USING_WDT使能看门狗关自动select RT_USING_WDTBSP_USING_CLOCK_TIMER使能定时器CTIMER0/3/4关自动select RT_USING_CLOCK_TIMEBSP_USING_PWM使能 PWM关CTIMER1_MAT0、CTIMER2_MAT0/1/2、CTIMER3_MAT2 等输出通道以 UART 为例board/Kconfig 允许对每个串口单独选择波特率9600 或 115200其中 Flexcomm0 默认作为 RT-Thread 控制台RT_CONSOLE_DEVICE_NAME为uart0见 rtconfig.h默认波特率 115200HW_UART0_BAUDRATE_115200。4.3 板载外设与扩展模块Onboard / Extended Driversboard/Kconfig 还提供板载与扩展模块配置BSP_USING_MMA8562使能板上 MMA8562 三轴加速度传感器自动选中BSP_USING_I2C4可配置传感器设备名默认i2c4BSP_USING_ARDUINO兼容 Arduino 生态RTduino自动选中 UART2、GPIO、ADC、PWM、I2C1 并拉取PKG_USING_RTDUINO包还可选使能 AHT10 温湿度库及其演示工程BSP_USING_NXP_LCDM_S/BSP_USING_LCD/BSP_USING_TOUCH使能 NXP LCD 屏SPI 总线默认spi3CS/RST/DC 引脚可配置与触摸默认 I2C 总线i2c1BSP_USING_LVGL使能 LVGL 图形库自动选中 LCD并默认附带 LVGL demo见 applications/lvgl。5. 生成 MDK / IAR 工程Windows若开发环境为 MDK5 或 IAR需要在 menuconfig 配置后生成对应 IDE 工程Windows IARSET RTT_CCiar scons --targetiar -sWindows MDK5scons --targetmdk5 -s注意该板级支持包不支持生成 MDK4 工程MDK 与 IAR 在生成工程之后一定要在工程中手动选择一次芯片型号否则会产生严重编译错误由于 Keil5 部分版本对 AC6armclang编译器支持存在问题官方建议将 Keil 升级到最新版本若遇到 AC6 编译报错unsupported option --c99需要调整工程中的 C99 编译选项官方文档附有论坛解决方案可按报错关键字检索。生成的工程文件模板同时保存在 BSP 目录下project.uvprojx/project.uvoptx/project.ewp/project.eww及对应template.*文件连接脚本位于 board/linker_scripts包含 GCC 的LPC55S69_cm33_core0_flash.ld、IAR 的.icf与 MDK 的.scf三种格式。6. 使用 GCC 工具链编译使用 MDK 或 IAR 的用户请参见对应 IDE 教程使用 arm-none-eabi-gcc 时按以下步骤Windows 设置 GCC 路径SET RTT_EXEC_PATH[GCC路径]Linux/macOS 设置 GCC 路径export RTT_EXEC_PATH[GCC路径]然后执行编译scons -j4也可以使用scons --exec-pathGCC工具链路径命令在指定工具链位置的同时直接编译免去手动设置环境变量。编译成功的标志性输出如下LINK rtthread-lpc55s69.elf arm-none-eabi-objcopy -O binary rtthread-lpc55s6x.elf rtthread.bin arm-none-eabi-size rtthread-lpc55s69.elf text data bss dec hex filename 41596 356 1456 43408 a990 rtthread-lpc55s6x.elf scons: done building targets.编译正确无误后会在 BSP 目录下生成rtthread-lpc55s6x.elf与rtthread.bin两个文件其中rtthread.bin即最终二进制固件可直接烧写。7. 烧写及执行验证烧写可以使用仿真器如 J-Link、CMSIS-DAP或 ISP 等多种方式。默认调试配置可参考 BSP 目录下的 flashdebug.ini 与project.ewdIAR 调试描述文件。7.1 运行结果如果编译与烧写均无误会在Flexcomm0 串口默认串口即 UART0上看到 RT-Thread 的启动 logo 信息\ | / - RT - Thread Operating System / | \ 4.0.1 build Jul 30 2019 2006 - 2019 Copyright by rt-thread team uising armclang, version: 6120001 msh /msh /提示符出现即代表 RT-Thread 的 FinSH/MSH 命令行 shell 已成功运行可通过串口输入命令交互。日志中的 uising armclang 一行来自 applications/main.c 中根据编译器宏打印的工具链版本信息armcc / armclang / iccarm / gcc 分支。8. 驱动支持情况与源码实现官方文档列出的驱动支持情况如下驱动支持情况备注UART支持UART0 / UART2GPIO支持自动根据芯片型号选择引脚布局SPI支持支持 High Speed SPI50MHzUSB Device不支持暂不支持USB Host不支持暂不支持Windowed WatchDog不支持—ADC不支持暂不支持Kconfig 中已预留 ADC0 通道选项I2C支持可配合 MMA8562 使用I2C Sensor支持获取板上 MMA8562 加速度传感器数据RTC支持RTC 时钟自动配置SDIO支持操作 SD 卡I2S不支持暂不支持注上表为 BSP 文档撰写时的支持状态从仓库源码看驱动目录中已包含drv_adc.c、drv_i2s.c、drv_wdt.c等实现文件见 bsp/nxp/lpc/lpc55sxx/libraries/drivers并在 board/Kconfig 中提供了 ADC、WDT、I2S 相关使能选项具体支持程度以实际 menuconfig 选项与驱动代码为准。驱动源码集中在 bsp/nxp/lpc/lpc55sxx/libraries/drivers主要文件包括drv_uart.c/drv_uart.hFlexcomm 串口驱动含 DMA 支持RT_SERIAL_USING_DMA默认开启见 rtconfig.hdrv_pin.c/drv_pin.hGPIO 引脚驱动配合 RT-Thread PIN 框架drv_i2c.c/drv_i2c.h、drv_mma8562.c/drv_mma8562.hI2C 总线与板上 MMA8562 加速度传感器驱动drv_spi.c/drv_spi.hSPI 驱动含 Flexcomm3 与 High Speed SPI8drv_rtc.c/drv_rtc.hRTC 驱动时钟自动配置drv_sdif.cSDIO SD 卡接口驱动drv_adc.c、drv_pwm.c、drv_timer.c、drv_wdt.c、drv_i2s.cADC / PWM / 定时器 / 看门狗 / I2S 驱动drv_gt911.c、drv_st7796.c、drv_sound_wm8904.c触摸屏、LCD、音频编解码相关板载扩展驱动sample/驱动使用示例。此外 board/ports 中还提供了 EasyFlashFAL 移植、rw007 WiFi 模块等组件移植文件applications/arduino_pinout 则提供了 RTduino Arduino 生态的引脚映射。9. 板级初始化与启动流程剖析结合源码可以更清晰地理解系统启动链路。9.1 板级初始化board.cboard/board.c 中的rt_hw_board_init()依次完成BOARD_InitPins()初始化引脚复用使能 InputMux、GPIO0/GPIO1 时钟并初始化 GPIO 端口DMA_Init(DMA0)/DMA_Init(DMA1)初始化双 DMA 控制器配置 VTOR 向量表地址默认 Flash 启动时位于0x00000000若使用 TF-MTrustZone 安全固件PKG_USING_TFM则设置到0x00020000若VECT_TAB_RAM定义则放到0x10000000配置时钟BOARD_BootClockPLL150M()将系统主频提升到 150MHz未使用 TF-M 时执行TF-M 场景下该初始化已由安全侧完成并可通过切换注释启用BOARD_BootClockFROHF96M()96MHz FROSysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND)配置系统节拍中断SysTick_Handler中调用rt_tick_increase()驱动内核时钟见 board.cRT_TICK_PER_SECOND默认为 10001ms 节拍初始化 UART 设备并设置控制台设备uart0执行组件初始化rt_components_board_init()初始化系统堆内存并打印堆区起始地址。9.2 用户入口与 LED 例程main.capplications/main.c 演示了最基本的 GPIO 使用方式将板载蓝色 LEDGPIO1_IO4宏LEDB_PIN配置为输出并循环闪烁/* defined the LED pin: GPIO1_IO4 */ /* GPIO1_4 is Blue LED */ #define LEDB_PIN GET_PINS(1, 4) rt_pin_mode(LEDB_PIN, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LEDB_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LEDB_PIN, PIN_LOW); rt_thread_mdelay(500); }当使能RT_USING_SDIO时main 函数还会在 2 秒后尝试将 SD 卡挂载到根目录dfs_mount(sd, /, elm, 0, NULL)成功则打印sd mounted to /这对应驱动支持表中的 SDIO 能力。9.3 默认内核与组件配置rtconfig.hrtconfig.h 是 menuconfig 生成的默认配置关键项包括线程优先级数 32、系统节拍 1000Hz、软件定时器、信号量/互斥量/事件/邮箱/消息队列全套 IPC、小内存管理堆、设备框架与控制台RT_CONSOLE_DEVICE_NAME uart0缓冲 256 字节、MSH shell命令历史 5 条、命令长度 80、串口设备框架含 DMA、PIN 框架、RT_VER_NUM 0x50300对应 RT-Thread 5.0.3 版本号等。这些配置均可通过 menuconfig 调整后由pkgs --update同步。10. 注意事项与常见问题ENV 版本Windows 下请使用最新版 ENV 工具官方文档标注 v1.3.5请以 RT-Thread 官网发布为准避免旧版本软件包管理不兼容问题Keil 版本若使用 Keil 开发建议使用 5.30 及以上版本由于 Keil5 部分版本对 AC6 编译器支持有问题请尽量将 Keil 升级到最新版以避免unsupported option --c99等编译报错芯片型号选择MDK 与 IAR 生成工程后必须在 IDE 中手动选择一次芯片型号否则会产生严重编译错误软件包依赖menuconfig 配置后务必执行pkgs --update拉取PKG_USING_NXP_LPC55S_DRIVER等依赖否则无法通过编译TF-M 场景启用 TF-M 后向量表地址会偏移到0x00020000且 PLL150M 等时钟初始化改由安全侧完成普通非安全工程无需关注默认串口控制台与启动日志输出默认走 Flexcomm0uart0使用串口调试时请将串口工具波特率设置为 115200。11. 维护信息该 BSP 维护人magicoe163.comalex.yangnxp.com如有问题可结合 README.md英文版与上述驱动源码定位也欢迎在 RT-Thread 社区交流反馈。赞分享操作系统嵌入式物联网嵌入式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点击查看免费下载相关推荐旅游场景的即时翻译基于hf_mirrors/ai-gitcode/seamless-m4t-v2-large的离线翻译解决方案旅游场景的即时翻译基于hf_mirrors/ai gitcode/seamless m4t v2 large的离线翻译解决方案 在全球化旅行日益普及的今天语操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 在 ACM32F4xx 上的板级支持包BSP开发指南编译、烧写与驱动配置RT Thread 在 ACM32F4xx 上的板级支持包BSP开发指南编译、烧写与驱动配置 本篇技术指南围绕 RT Thread 仓库中 bsp/acm操作系统嵌入式物联网嵌入式OSRTOSRT-Thread LPC55S69-EVK 板级支持包详解从编译烧写到外设驱动开发RT Thread LPC55S69 EVK 板级支持包详解从编译烧写到外设驱动开发 本篇技术指南围绕 RT Thread 仓库中的 LPC55S69 EVK操作系统嵌入式物联网嵌入式OSRTOS上一篇Cellpose项目中3D图像分割的优化策略与实践下一篇Home Assistant Android应用GPS定位数据重复上报问题解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Abaqus-Simpack联合仿真在车桥耦合振动分析中的应用 1. 车桥耦合与地震波浪荷载联合仿真概述在轨道交通和桥梁工程领域,车桥耦合振动分析是一个经典但极具挑战性的课题。当车辆在桥上行驶时,车辆与桥梁之间会产生复杂的动力相互作用,这种相互作用会显著影响桥梁的振动特性和车辆的运行安全性。而… · 2026/9/25 5:30:31
NodeGui DockWidgetArea 枚举详解:停靠区域位标志定义、源码实现与主窗口应用场景 桌面应用跨平台 【免费下载链接】nodegui A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org 项目地址: https://git… · 2026/9/25 5:55:02
google-api-python-client 贡献指南:从开发环境搭建、测试矩阵到代码风格全解析 后端 【免费下载链接】google-api-python-client 🐍 The official Python client library for Googles discovery based APIs. 项目地址: https://gitcode.com/gh_mirrors/go/google-api-python-client 点击查看 免费下载 导读
本文以 google-api-pyth… · 2026/9/25 5:54:56
智慧医院PPT落地指南:从架构图到可执行技术参数 简介:本资源是一份面向医院基建、智能化工程设计与医疗信息化从业者的三级甲等智慧医院智能化系统全流程规划设计方案PPT,共134页,系统回应了医疗现代化、建筑智能化与病房家庭化三大核心诉求。方案紧扣智慧医院建设实际痛点,深度… · 2026/9/25 5:54:56
Ubuntu安装全攻略:从镜像下载到双系统分区及初始化配置 /* 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 5:54:56
创维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 /* 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