
Zephyr 中 NXP LPCXpresso55S06 开发板支持详解硬件资源、引脚映射、构建烧录与调试实战【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr本文以 Zephyr 仓库中 boards/nxp/lpcxpresso55s06/doc/index.rst 板卡文档为核心完整覆盖 LPCXpresso55S06 评估板的硬件规格、连接与 IO 映射、系统时钟与串口配置并结合仓库中的设备树DTS、defconfig、board.cmake 等实际源码文件讲解该板在 Zephyr 中的分区布局、引脚复用IOCON/pinctrl、默认内核配置以及使用 LinkServer/J-Link 完成烧录与调试的完整流程。读完本文你可以直接在 Zephyr 中选中lpcxpresso55s06构建应用、烧录 hello_world 并进入调试会话。板卡概述LPC55S06 Cortex-M33 评估平台LPCXpresso55S06 是 NXP 面向 LPC55S0x/LPC550x MCU 家族的评估平台SoC 基于 Arm Cortex-M33 架构。板载的扩展能力是其一大亮点提供与 Arduino UNO 兼容的 shield 扩展接口并在 Arduino 焊盘外围布置了额外的扩展引脚提供 PMod/主机接口端口提供 MikroElektronika Click 模块插槽。在 Zephyr 中该板由 board.yml 声明厂商为nxp关联的 SoC 为lpc55s06Kconfig.lpcxpresso55s06 中BOARD_LPCXPRESSO55S06选项进一步select SOC_LPC55S06与SOC_PART_NUMBER_LPC55S06JBD64说明 Zephyr 针对的是 64 引脚封装的 LPC55S06JBD64 器件。硬件清单官方文档列出的完整硬件配置如下硬件项说明主控LPC55S06 Cortex-M33 MCU主频最高 96 MHz存储片上 256 KB Flash 96 KB SRAM调试探针LPC-Link2 高速 USB 调试器带 VCOM 串口扩展MikroElektronika Click 接口扩展兼容 Arduino UNO 的 LPCXpresso 扩展接口扩展PMod 兼容扩展/主机接口按键Reset、ISP、Wake、User 四个功能按键指示灯三色 LED红/绿/蓝串口外接 USB 转串口线缆的 UART 排针外设CAN 收发器外设NXP FXOS8700CQ 加速度计板卡文档同时提示对于尚未在本板启用的功能可参考 NXP LPC55xx 系列中的超集板lpcxpresso55s69——NXP 优先为超集板提供 Full Platform Supportlpcxpresso55s69上已支持的特性往往也能复用到lpcxpresso55s06。引脚映射Connections and IOs 与设备树相互印证LPC55S06 的 SoC 提供 IOCON 寄存器用于配置每个引脚的功能复用。板级文档给出的关键 IO 分配为引脚功能用途PIO0_5GPIOISP 按键 SW4PIO0_29USARTUSART RXPIO0_30USARTUSART TXPIO1_4GPIO红色 LEDPIO1_6GPIO蓝色 LEDPIO1_7GPIO绿色 LEDPIO1_9GPIO用户按键 SW3PIO1_18GPIO唤醒按键 SW1值得注意的是这份表格与仓库中的设备树定义可以互相印证。在 lpcxpresso55s06_common.dtsi 中按键定义与文档完全对应ISP 按键btn_isp接gpio0 5即 PIO0_5用户按键btn_usr接gpio1 9PIO1_9唤醒按键btn_wk接gpio0 28三者均配置为GPIO_ACTIVE_LOW低电平有效并分别映射到INPUT_KEY_1、INPUT_KEY_0、INPUT_KEY_WAKEUP输入事件码三色 LED 定义为gpio-leds节点蓝色blue_ledgpio0 22、红色red_ledgpio0 21、绿色green_ledgpio0 18并通过aliases暴露为led0/led1/led2可以直接用led0、led1等别名在驱动代码中引用按键同样有别名sw0指向唤醒键、sw1指向用户键、sw2指向 ISP 键同时mcuboot-button0别名指向唤醒键用于 MCUBoot 的按钮升级机制。板级 DTS 还定义了 MikroBuscompatible mikro-bus与 Arduino 扩展接口compatible arduino-header-r3两组gpio-map将 Click/Arduino 排针逐脚映射到具体 GPIO例如 Arduino D13 →gpio1 2、A0 →gpio0 16、MikroBus SCK →gpio1 2、SDA →gpio0 25等。应用程序侧可以直接使用DT_ALIAS(arduino_header)/DT_ALIAS(mikrobus_header)这类宏拿到引脚号无需手写物理引脚。系统时钟与串口控制台配置系统时钟板级文档说明LPC55S06 默认使用内部 FRO自由运行振荡器96 MHz 作为系统时钟源SoC 内还提供其他时钟源可根据系统需求切换。串口控制台LPC55S06 提供 8 个 FLEXCOMM 接口用于串口通信。本板将其中一个配置为 USART 作为 Zephyr 控制台其余未使用。这一点在设备树中体现得非常直接flexcomm0 { status okay; compatible nxp,lpc-usart; current-speed 115200; pinctrl-0 pinmux_flexcomm0_usart; pinctrl-names default; };即控制台绑定flexcomm0驱动 compatible 为nxp,lpc-usart波特率 115200。chosen节点同时把zephyr,console、zephyr,shell-uart、zephyr,uart-mcumgr三个别名都指向flexcomm0意味着控制台、Shell 和 MCUmgr 数据通道共用同一串口。引脚复用由 lpcxpresso55s06-pinctrl.dtsi 定义该文件由gen_board_pinctrl.py从 NXP 的.mex设计文件生成#include nxp/lpc/lpc55xxx/pinctrl/LPC55S06JBD64-pinctrl.hpinmux_flexcomm0_usartFC0_RXD_SDA_MOSI_DATA_PIO0_29RX与FC0_TXD_SCL_MISO_WS_PIO0_30TX与文档中 PIO0_29/PIO0_30 的分配一致slew-rate standardpinmux_can0CAN0_RD_PIO1_3RD与CAN0_TD_PIO1_2TD服务板载 CAN 控制器。控制台连接方式将 USB 线从 PC 接到板上的 J1LINK2即 LPC-Link2 的 VCOM 端口然后用任意串口终端minicom、putty 等按下述参数连接波特率115200数据位8校验None停止位1存储布局256 KB Flash 的分区设计256 KB Flash 的分区在 lpcxpresso55s06_common.dtsi 中以fixed-partitions形式定义分区标签起始地址大小用途boot_partitionmcuboot0x0000000032 KBMCUBoot 引导程序slot0_partitionimage-00x0000800096 KB主镜像slot1_partitionimage-10x0002000096 KB备用镜像storage_partitionstorage0x0003800020 KB存储区未显式定义—末段12 KB文档注明为 PFR 保留区chosen节点将zephyr,flash指向片上flash0、zephyr,sram指向sram0、zephyr,flash-controller指向iap片上应用编程接口并且zephyr,code-partition默认指向slot0_partition——即不做 MCUBoot 时应用直接烧录进 image-0 分区。此外设备树还启用了can0can-transceiver节点声明max-bitrate 5000000、crc、rngzephyr,entropy、ctimer0~4、gint0/gint1GPIO 中断控制器并在主 DTS lpcxpresso55s06.dts 中显式打开wwdt0窗口看门狗。默认内核配置defconfiglpcxpresso55s06_defconfig 非常精简体现了评估板的基线能力CONFIG_CONSOLEy CONFIG_UART_CONSOLEy CONFIG_SERIALy CONFIG_UART_INTERRUPT_DRIVENy CONFIG_GPIOy CONFIG_ARM_MPUy CONFIG_RUNTIME_NMIy控制台默认走 UART 且串口为中断驱动保证 115200 波特率下的实时输出默认开启ARM_MPUCortex-M33 的内存保护单元与RUNTIME_NMI体现该板安全特性的默认使能GPIO 默认开启支撑 LED/按键类演示。MCUBoot 相关的约束在两处 Kconfig 中声明Kconfig.defconfig 与 Kconfig.sysbuild 都把 MCUBoot 默认模式设为MCUBOOT_MODE_OVERWRITE_ONLY覆盖升级板级文档注释说明该板仅支持 MCUBoot 的 upgrade only 方式这与 32 KB 双 96 KB slot 的分区规划相吻合。编程与调试LinkServer 烧录和 J-Link 调试板级文档中 Programming and Debugging 章节给出了该板支持的 runner并指出LinkServer 是默认 runner。仓库中的 board.cmake 精确地固化了这一点board_runner_args(linkserver --deviceLPC55S06:LPCXpresso55S06) board_runner_args(jlink --deviceLPC55S06 --reset-after-load) include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)LinkServer runner 使用设备参数--deviceLPC55S06:LPCXpresso55S06芯片:板卡并复用通用的boards/common/linkserver.board.cmake逻辑J-Link runner 使用--deviceLPC55S06并附加--reset-after-load加载后复位。调试探针的使用方式分两种默认板载 MCU-Link 的 CMSIS-DAP 模式。板子默认配置为使用集成的 MCU-Link 在线调试探针CMSIS-DAP 模式。要配合 Zephyr 使用需安装 LinkServer 调试主机端工具并确保其在系统搜索路径PATH中可用可选将 MCU-Link 固件刷成 J-Link 兼容模式。板载 MCU-Link 硬件在更新固件后可以作为 J-Link 探针使用此时需要使用 J-Link 调试主机端工具jlinkrunner 的命令行参数已在上文 board.cmake 中就绪。两种模式都可用于烧录flash和调试debug从源码结构看选择 runner 后 Zephyr 会透传上述--device参数因此无需再手工指定芯片型号。烧录示例hello_world以仓库中的 samples/hello_world 为例按标准构建流程针对本板烧录west build -b lpcxpresso55s06 samples/hello_world west flash打开串口终端按下板子上的 RESET 键复位即可看到***** Booting Zephyr OS v3.0.0 ***** Hello World! lpcxpresso55s06调试示例同样以 hello_world 为例使用调试目标启动west build -b lpcxpresso55s06 samples/hello_world west debug打开串口终端后在调试器中单步执行应用即可在终端中看到***** Booting Zephyr OS zephyr-v3.0.0 ***** Hello World! lpcxpresso55s06小结与可深入的资源板级文档本文核心来源boards/nxp/lpcxpresso55s06/doc/index.rst设备树与分区lpcxpresso55s06.dts、lpcxpresso55s06_common.dtsi引脚复用定义lpcxpresso55s06-pinctrl.dtsi默认内核配置lpcxpresso55s06_defconfigRunner 与烧录参数board.cmakeMCUBoot 模式约束Kconfig.defconfig、Kconfig.sysbuild示例应用samples/hello_world掌握以上内容后你不仅能理解 LPCXpresso55S06 在 Zephyr 中的完整支持边界控制台、GPIO、CAN、MPU、MCUBoot 覆盖升级还能依据设备树别名快速把三色 LED、四个按键和 Arduino/MikroBus 扩展引脚接进自己的应用并通过 LinkServer或刷固件后的 J-Link 模式完成日常烧录与调试工作。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考