Zephyr 中 Nuvoton NPCK3M8K EVB 开发板详解:硬件资源、系统时钟与 J-Link 烧录调试指南
发布时间:2026/9/19 4:35:05 作者:尧图编辑部 阅读量:1,286

Zephyr 中 Nuvoton NPCK3M8K EVB 开发板详解硬件资源、系统时钟与 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/zephyrNPCK3M8K_EVB 是 Nuvoton新唐官方提供的评估套件用于评估 NPCK3 系列嵌入式控制器EC微控制器并与型号为 NPCK3M8K 的芯片搭配使用。本文以 boards/nuvoton/npck3m8k_evb/doc/index.rst 为骨架结合该板在 Zephyr 仓库中的设备树、Kconfig 与 OpenOCD 脚本等实现细节系统讲解其硬件资源、Zephyr 功能支持、时钟与串口配置以及基于 J-Link 的构建、烧录和调试流程。读完本文你将能够基于npck3m8k_evb目标独立完成应用构建并通过 JTAG/SWD 完成固件下载与在线调试。开发板概述NPCK3M8K_EVB 是一个面向 Nuvoton NPCK3 系列微控制器的开发与评估平台。该开发板设计上集成了丰富的片内外设与接口用于满足嵌入式控制器开发、功能验证和系统测试的需求。需要特别注意的是该评估板必须与型号为 NPCK3M8K 的 MCU 芯片配合使用即板载或外接该芯片这是 EVB 套件正常工作的前提。从 Zephyr 的板级元数据 board.yml 可以看到其正式标识board: name: npck3m8k_evb full_name: NPCK3M8K_EVB vendor: nuvoton socs: - name: npck3m8k对应的 SoC 在 soc/nuvoton/npcx/npck3/Kconfig.soc 中被定义为 NPCK3 系列的一个成员并归属于 Nuvoton NPCX 嵌入式控制器家族NPCX_SOC_VARIANT_NPCKN这也解释了其相关驱动与 NPCX 系列其他产品线共享的原因。硬件资源根据板级文档NPCK3M8K_EVB 的核心硬件配置如下处理器ARM Cortex-M4F带硬件浮点单元存储352 KB RAM 与 64 KB 启动 ROMboot ROMGPIO 排针GPIO headers便于外接模块与逻辑分析仪UART0 与 UART1两路串行接口JTAG 接口用于程序下载与调试从 Zephyr 的板级描述文件 npck3m8k_evb.yaml 来看Zephyr 侧登记的架构为arm可用工具链为zephyrZephyr SDK 自带与gnuarmemb。该文件中ram: 64、flash: 192描述的是 Zephyr 设备树Device Tree中可供 RTOS 直接使用的 sram/flash 分区规模单位 KB与文档中芯片整体 352 KB RAM 的物理容量并不矛盾——后者还包含不可直接被 Zephyr 使用的保留区与启动 ROM 等区域。Zephyr 功能支持该板在 Zephyr 中的基础支持能力由板级文档自动生成的zephyr:board-supported-hw指令呈现并结合 npck3m8k_evb.yaml 的supported字段主要包括时钟控制clock片上 PLL 与时钟树管理GPIO通用输入输出含 GPIO 排针UART串行通信UART0 / UART1在此基础上从设备树 npck3m8k_evb.dts 的aliases与各节点使能状态可以看到该板实际启用了更多外设能力可直接支撑相应 Zephyr 驱动测试与示例外设别名/节点用途示例PWMpwm-led0、pwm-0samples/basic/blinky_pwm、PWM 测试套件GPIO LEDled0D8 红灯GPIO 测试套件I2Ci2c-0i2c1_aI2C 测试套件看门狗watchdog0twd0watchdog samplePECIpeci-0peci0PECI 驱动示例eSPIespi0主机接口通信风扇转速计tach1风扇测速A 口LFCLK 采样键盘矩阵kbd13 × 8 键盘矩阵演示ADCadc0默认 disabledadc_api驱动测试chan0/chan2其中键盘矩阵在设备树中给出了完整示例row-size 8、col-size 13并逐组列出 KSI/ KSO 信号所对应的引脚如 KSI0/1/2/3 接 PINA0/A1/A2/A3KSO00~03 接 PINB0~B3 等可直接作为矩阵键盘驱动开发的参考接线图。系统时钟NPCK3M8K 微控制器的时钟方案如下以90 MHz 内部振荡器作为时钟源配合片内PLL分频生成15 MHz 的 EC 时钟频率EC clock。即内部振荡器提供原始 90 MHz 频率经 PLL 配置后输出 15 MHz 作为 EC 核心工作时钟。更详细的寄存器级说明参见 NPCK3 用户手册User Manual第 4 章《Processor clock control register》。在 Zephyr 侧时钟控制功能通过 npck3m8k_evb_defconfig 中的CONFIG_CLOCK_CONTROLy显式开启时钟驱动实现位于 Nuvoton NPCX 系列驱动目录drivers/clock_control与 NPCK3 同属的 NPCX 时钟树保持一致。串口Serial Port板级文档明确UART1 被配置为串口日志serial logs输出端口。这一点在设备树中得到印证chosen { zephyr,console uart1; zephyr,shell-uart uart1; ... }; uart1 { status okay; current-speed 115200; /* Use UART1_SL1 ie. PIN83.88 */ pinctrl-0 uart1_sin_gp87 uart1_sout_gp83; pinctrl-names default; };关键信息如下波特率为115200UART1 采用UART1_SL1副选择功能映射即 RX 对应 PIN87GP87、TX 对应 PIN83GP83引脚复用关系在 npck3m8k_evb-pinctrl.dtsi其内容继承自nuvoton/npck/npck3/npck3-pinctrl.dtsi中定义同时zephyr,console与zephyr,shell-uart均指向 UART1意味着 Zephyr 内核日志与 Shell 控制台共用该串口。配套的 npck3m8k_evb_defconfig 启用了完整串口链路CONFIG_SERIALy、CONFIG_UART_INTERRUPT_DRIVENy、CONFIG_CONSOLEy、CONFIG_UART_CONSOLEy。默认 Kconfig 配置解读npck3m8k_evb_defconfig 是该板出厂默认配置的核心其配置项可分为几组配置项作用CONFIG_NPCX_HEADERy生成 NPCX 固件头firmware header供 EC 启动流程识别固件镜像CONFIG_NPCX_IMAGE_OUTPUT_HEXy输出 Intel HEX 格式镜像配合烧录工具使用CONFIG_NPCX_HEADER_SPI_MAX_CLOCK_50ySPI 主时钟上限设为 50 MHzCONFIG_NPCX_HEADER_SPI_READ_MODE_DUALySPI 读取采用 Dual 模式CONFIG_ARM_MPUy启用 ARM MPU 内存保护CONFIG_CLOCK_CONTROLy启用时钟控制驱动CONFIG_SERIALy/CONFIG_UART_INTERRUPT_DRIVENy串口驱动与中断驱动模式CONFIG_GPIOyGPIO 驱动CONFIG_CONSOLEy/CONFIG_UART_CONSOLEy控制台与 UART 控制台后端而 Kconfig.npck3m8k_evb 只做了一件事——把板级 Kconfig 符号与 SoC 关联起来config BOARD_NPCK3M8K_EVB select SOC_NPCK3M8KKconfig.defconfig目前为空仅保留版权头说明该板没有额外的强制默认项全部依赖上述 defconfig 与设备树。编程与调试Programming and Debugging调试接口特性该板提供了两套调试通路Cortex ETM 端口支持 ETM嵌入式跟踪宏单元跟踪与调试只需单条物理连接即可同时完成跟踪与调试适合需要指令级 trace 的性能分析场景纯 JTAG 插座提供仅用于 JTAG 会话的独立接口。OpenOCD 支持板级目录下提供了现成的 OpenOCD 脚本 support/openocd.cfg内容如下# script for Nuvoton NPCX Cortex-M4 Series source [find interface/jlink.cfg] transport select swd set CHIPNAME npcx_v2 set FIUNAME npck.fiu source [find target/npcx.cfg] proc npcx_write_image {target_image} { flash write_image erase $target_image 0x64000000 ihex } proc npcx_verify_image {target_image} { verify_image $target_image 0x64000000 ihex }从中可以提取出烧录相关的关键事实调试接口使用J-Linkinterface/jlink.cfg传输协议选择SWD目标芯片定义为npcx_v2烧录控制器为 FIUFlash Interface Unitnpck.fiu并复用通用 NPCX 目标脚本target/npcx.cfg固件写入/校验的IHEX 镜像基地址为0x64000000FIU 映射的 SPI Flash 地址空间使用npcx_write_image与npcx_verify_image两个自定义过程完成烧录与校验。构建与烧录Flashing构建应用程序与 Zephyr 其他板子完全一致直接以npck3m8k_evb作为目标板名west build -b npck3m8k_evb samples/hello_world构建产物中会包含应用固件镜像含 Zephyr 内核与应用代码因启用了CONFIG_NPCX_HEADERy还会生成带 NPCX 固件头的镜像因启用了CONFIG_NPCX_IMAGE_OUTPUT_HEXy会输出Intel HEX.hex格式镜像即 OpenOCD 脚本中ihex参数所对应的文件。将镜像烧录到板上的典型流程为通过 J-Link 连接 JTAG/SWD 接口然后利用 OpenOCD 加载 support/openocd.cfg 并调用npcx_write_image完成写入烧录地址为 FIU 映射区0x64000000。Zephyr 构建系统会在检测到该板支持的 runner由板级文档中的zephyr:board-supported-runners指令生成后提供west flash等标准烧录入口。调试Debugging板级文档给出的调试方式为使用 J-Link通过 JTAG/SWD 接口调试。实操上可分为两个层面OpenOCD 调试复用上述 support/openocd.cfg在烧录后可通过 GDB 连接目标进行断点、单步与内存查看。脚本末尾的npcx_verify_image过程可用于烧录后校验确认镜像与目标 Flash 内容一致。ETM 跟踪调试利用板上的 Cortex ETM 端口通过单条物理连接同时获得跟踪trace与调试能力可用于分析时序、覆盖率与指令执行流。由于该板归属 ARM Cortex-M4F 架构调试时同样受 Zephyr 对 Cortex-M 系列统一的调试支持约束如 SysTick、NVIC 等相关符号与内存布局由设备树中zephyr,sram、zephyr,flash等chosen节点决定。参考资料板级官方文档boards/nuvoton/npck3m8k_evb/doc/index.rst板级设备树npck3m8k_evb.dts 与引脚复用定义 npck3m8k_evb-pinctrl.dtsi板级元数据与默认配置board.yml、npck3m8k_evb.yaml、npck3m8k_evb_defconfigOpenOCD 烧录脚本support/openocd.cfgSoC 定义soc/nuvoton/npcx/npck3/Kconfig.soc更多 NPCX 系列芯片时钟、GPIO、UART、PECI、eSPI、键盘矩阵等驱动的实现与 Kconfig 选项可进一步阅读drivers/与soc/nuvoton/npcx/下的对应源码。【免费下载链接】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),仅供参考