Zephyr RTOS 下的 NXP FRDM-MCXN236 开发板完全指南:硬件资源、烧录调试与工程实践
Zephyr RTOS 下的 NXP FRDM-MCXN236 开发板完全指南硬件资源、烧录调试与工程实践【免费下载链接】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/zephyrFRDM-MCXN236 是 NXP 面向 MCX N23X 系列 MCU 推出的紧凑型可扩展开发板集成了 150 MHz Arm Cortex-M33 内核、双 Bank Flash、高速 USB 与板载 MCU-Link 调试器。本文以 Zephyr 仓库中该板卡的官方文档 boards/nxp/frdm_mcxn236/doc/index.rst 为骨架结合板级源码、设备树与构建配置系统讲解硬件特性、引脚连接、系统时钟、串口控制台配置、LinkServer/J-Link 烧录调试流程与常见问题排查帮助你在这块板上从零跑通 Zephyr 应用。板卡概览为 MCX N23X 快速原型验证而生FRDM-MCXN236 定位为快速原型验证平台尺寸紧凑、扩展方式多样提供行业标准排针以便访问 MCU 的全部 I/O内置开放标准的串行接口、外部 Flash 以及板载 MCU-Link 调试器。MCX N 系列是高能效、高性能微控制器其智能外设与硬件加速器为多任务处理和高性能计算提供了支撑。该板卡的 SoC 为 MCX-N236与 Zephyr 中的 SoC 支持nxp,mcxn236一一对应板级兼容性声明位于 frdm_mcxn236.dtsmodel NXP FRDM_N236 board; compatible nxp,mcxn236, nxp,mcx;硬件资源详解根据板卡文档FRDM-MCXN236 的核心硬件配置如下主控MCX-N236 Arm Cortex-M33 微控制器主频 150 MHz存储1 MB 双 Bank 片上 Flash、352 KB RAMUSB高速 USBHost/Device片上 HS PHY配 HS USB Type-C 连接器串行外设8 路 LP Flexcomm每路均支持 SPI、I2C、UART其他外设2 路 FlexCAN支持 FD、2 路 I3C、2 路 SAI调试板载 MCU-Link 调试器CMSIS-DAP 协议扩展接口Arduino 排针、FlexIO/LCD 排针、SmartDMA/摄像头排针、mikroBUS这些规格在仓库源码中都有对应实现。RAM 方面SoC 级设备树 nxp_mcxn23x_common.dtsi 声明了sram0256 KB板级 frdm_mcxn236.dts 则将实际可用的 SRAM 配置为 192 KBsram0 { compatible mmio-sram; reg 0x20000000 DT_SIZE_K(192); };Flash 部分SoC 设备树将 1 MB 片上 Flash 建模为soc-nv-flash擦除块 8 KB、写入块 128 B由 ROM Flash API 支持flash: flash0 { compatible soc-nv-flash; reg 0 DT_SIZE_M(1); erase-block-size DT_SIZE_K(8); /* MCXN23x ROM Flash API supports writing of 128B pages. */ write-block-size 128; };而板级设备树进一步将 1 MB Flash 划分为 mcuboot80 KB、两个等大的升级槽位 slot0/slot1各 440 KB以及 storage 分区64 KB分区边界严格对齐 8 KB 扇区详见 frdm_mcxn236.dts。板载外设映射与引脚连接文档在 Connections and IOs 一节给出了调试串口引脚的连接关系名称功能用途P0_PIO1_8UARTUART RXP1_PIO1_9UARTUART TX从板级设备树可以看到这两根引脚属于 Flexcomm4对应的引脚复用配置位于 frdm_mcxn236-pinctrl.dtsipinmux_flexcomm4_lpuart: pinmux_flexcomm4_lpuart { group0 { pinmux FC4_P0_PIO1_8, FC4_P1_PIO1_9; slew-rate fast; drive-strength low; input-enable; }; };文档提到 MCX-N236 SoC 共有 6 个 GPIO 控制器每个引脚的功能通过 pinmux 寄存器配置。板级设备树将 5 个 GPIO 控制器gpio0 ~ gpio4全部使能并定义了丰富的别名与板载器件见 frdm_mcxn236.dtsLEDled0/led1/led2对应红gpio4 18、绿gpio4 19、蓝gpio4 17三色 LED均为低电平有效按键sw0对应用户按键 SW2gpio0 20低电平有效、内部上拉可通过 WUU 外部引脚 4 唤醒sw1对应 SW3gpio0 6加速度计accel0指向挂接在 Flexcomm2 I2C 总线上的 FXLS8974 传感器地址 0x18其他别名watchdog0、pwm-0FlexPWM1、rtc、die-temp0、canbusflexcan1等其中按键的唤醒能力通过 WUUWake-Up Unit实现设备树中显式声明了唤醒控制user_button_2: button_0 { label User SW2; gpios gpio0 20 (GPIO_ACTIVE_LOW | GPIO_PULL_UP); zephyr,code INPUT_KEY_WAKEUP; /* SW2 wakes via WUU external pin 4. */ wakeup-ctrls wuu NXP_WUU_PIN_4_FALLING_INT; };此外板级设备树还完整映射了 Arduino R3 排针的 22 个引脚A0~A5、D0~D15到具体 GPIO并定义了 8080 并行 LCD 连接器与 DVP 20 针摄像头连接器的引脚映射这为下文的 Shields 支持提供了设备树基础。系统时钟PLL0 输出 150 MHz板卡文档明确指出MCX-N236 SoC 使用 PLL0 作为系统时钟源运行在150 MHz。这一配置在 SoC 级源码 soc/nxp/mcx/mcxn/flash_clock_setup.c 中得到了印证/* PLL0 is set to 150 MHz */ uint32_t pll_rate 150000000;该文件同时展示了 FLEXSPI 时钟如何从 PLL0 分频而来分频系数最大为 8并对非安全non-secure执行模式做了条件编译保护。若你的应用对时钟有特殊要求例如切换内核定时器设备树中还同时使能了os_timer、systick与lptmr0作为系统定时器伴随时钟具体选用可通过 Kconfig 按应用需求控制见 frdm_mcxn236.dts。串口Serial PortFlexcomm4 作为控制台MCX-N236 SoC 提供 8 路 FLEXCOMM 接口用于串行通信其中Flexcomm4 被配置为 UART 控制台。板级设备树在chosen节点中做了三处绑定分别指定 UART mcumgr、控制台与 shell 串口chosen { zephyr,uart-mcumgr flexcomm4_lpuart4; zephyr,console flexcomm4_lpuart4; zephyr,shell-uart flexcomm4_lpuart4; ... };同时为 Flexcomm4 UART 配置了 115200 波特率与引脚复用flexcomm4_lpuart4 { current-speed 115200; pinctrl-0 pinmux_flexcomm4_lpuart; pinctrl-names default; };板级 defconfig frdm_mcxn236_defconfig 中CONFIG_CONSOLEy、CONFIG_UART_CONSOLEy、CONFIG_SERIALy、CONFIG_UART_INTERRUPT_DRIVENy即是对控制台能力的默认使能。控制台连接参数将 USB 线从 PC 连接到板卡 J10 接口使用任意串口终端工具minicom、putty 等并按以下参数连接波特率115200数据位8校验位None停止位1支持的 Shields 扩展板文档列出了两块经过官方在 FRDM-MCXN236 上验证的 Zephyr Shieldlcd_par_s035支持显示接口。该板使用 Shield 的 MIPI_DBI 接口连接至片上 FlexIO 外设。相关设备树配置在 frdm_mcxn236.dts其中zephyr_mipi_dbi_parallel节点将 FlexIO 的 8 个 shifter、EN/WR 引脚28、RD 引脚27、数据起始引脚4以及复位/片选/RS 引脚与 eDMA0 通道 0 绑定实现并行 LCD 驱动dvp_20pin_ov7670支持 SmartDMA 视频接口。设备树通过 SmartDMA 外设实现视频捕获nxp,video-smartdmavsync/hsync/pclk 引脚分别为 4/5/7见 frdm_mcxn236.dts构建、烧录与调试板卡的构建与烧录遵循 Zephyr 标准流程详见 Zephyr 文档中的 build_an_application 与 application_run 章节。板卡支持的烧录运行器runner通过zephyr:board-supported-runners::指令在文档中自动列出实际配置位于 board.cmakeboard_runner_args(jlink --deviceMCXN236 --reset-after-load) board_runner_args(linkserver --deviceMCXN236:FRDM-MCXN236) # Pyocd support added with the NXP.MCXN236_DFP.17.0.0.pack CMSIS Pack board_runner_args(pyocd --targetmcxn236) include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)可以看到该板支持 LinkServer、J-Link 与 pyocd 三种烧录方式默认使用 LinkServer。配置调试探针Debug Probe烧录与调试都需要调试探针。该板默认使用板载MCU-Link CMSIS-DAP 调试探针开箱即用。使用 LinkServerLinkServer 是本板的默认 runner支持出厂固件的 MCU-Link。若板载调试电路的固件被更换过需要按文档指引重新烧录默认 MCU-Link 固件将跳线 JP5 短接使板卡进入DFU 模式再执行固件编程。使用 J-LinkJ-Link 有两种接入方式复用板载调试电路按文档指引将板载调试电路更新为 Segger J-Link 固件同样需要短接跳线 JP5 进入 DFU 模式外接调试探针将外部 J-Link 连接到板卡的 10 针 SWD 连接器J12同时必须短接跳线 JP7两种方式都使用-r jlink选项指定 jlink runnerwest flash -r jlink烧录示例hello_world以官方 hello_world 示例为例烧录命令为west build -b frdm_mcxn236 samples/hello_world west flash打开串口终端按下 RESET 按键复位板卡终端应输出*** Booting Zephyr OS build v3.6.0-4478-ge6c3a42f5f52 *** Hello World! frdm_mcxn236/mcxn236调试示例hello_world调试流程与烧录类似west debug会启动调试器并挂接目标west build -b frdm_mcxn236/mcxn236 samples/hello_world west debug打开串口终端在调试器中单步执行应用终端应输出与烧录示例相同的信息*** Booting Zephyr OS build ... ***与Hello World! frdm_mcxn236/mcxn236。安全特性与 MCUboot 升级模式板级 defconfig 默认启用了内存保护与 TrustZone 相关配置CONFIG_ARM_MPUy CONFIG_HW_STACK_PROTECTIONy # Enable TrustZone-M CONFIG_TRUSTED_EXECUTION_SECUREy在 MCUboot 集成方面Kconfig.defconfig 与 Kconfig.sysbuild 明确规定该板仅支持 MCUboot 的upgrade only仅升级OVERWRITE_ONLY模式且两个升级槽位大小必须相等——这与板级设备树中 slot0/slot1 各 440 KB 的等分设计完全一致。常见问题排查文档在 Troubleshooting 一节引用了两个通用文档片段供遇到问题时参考Segger ECC / SystemView 相关涉及 Segger 调试工具链与系统视图组件的使用由segger-ecc-systemview.rst.inc提供板卡通用排障包括探针固件、烧录失败、串口无输出等常见问题的通用处理建议由board-footer.rst.inc提供排查时可重点检查JP5 是否处于 DFU 模式影响固件烧录、JP7 是否短接影响外部 J-Link 接入、串口参数是否为 115200-8-N-1以及板载 MCU-Link 固件是否为出厂默认版本。小结FRDM-MCXN236 在 Zephyr 中拥有完整的板级支持从 1 MB 双 Bank Flash 的分区管理、192 KB SRAM 配置、150 MHz PLL0 时钟树到 Flexcomm4 控制台、Arduino/LCD/摄像头扩展接口再到 LinkServer、J-Link、pyocd 三种烧录调试链路均有清晰的设备树与构建配置佐证。按照本文流程你可以快速在这块板上完成从构建、烧录、串口调试到外设扩展的全流程开发并在此基础上深入 MCX N23X 的低功耗、TrustZone 安全与智能外设特性。【免费下载链接】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),仅供参考