多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Zephyr 板卡指南:PIC32CM JH01 Curiosity Pro(pic32cm_jh01_cpro)开发板上手、构建与调试

Zephyr 板卡指南:PIC32CM JH01 Curiosity Pro(pic32cm_jh01_cpro)开发板上手、构建与调试 Zephyr 板卡指南PIC32CM JH01 Curiosity Propic32cm_jh01_cpro开发板上手、构建与调试【免费下载链接】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/zephyrPIC32CM JH01 Curiosity Pro 是 Microchip 推出的 EV81X90A 评估套件基于 PIC32CM5164 JH01 微控制器被 Zephyr 官方仓库收录为pic32cm_jh01_cpro目标板。本文以该板卡的官方文档boards/microchip/pic32c/pic32cm_jh01_cpro/doc/index.rst为骨架结合仓库中的设备树、引脚复用与构建配置完整讲解硬件资源、Zephyr 支持范围、MPLAB/PyOCD/J-Link 三种调试接线方案、west 构建烧录流程以及底层驱动使能细节帮助你在 Zephyr 中快速跑通并扩展该平台。板卡概述PIC32CM JH01 Curiosity Pro 是用于评估Microchip PIC32CM JH01 微控制器的硬件平台评估套件型号为EV81X90A。该评估板提供了一套完整的特性集合帮助 PIC32CM JH01 用户快速上手其外设并理解如何在自己的设计中集成这颗器件。Zephyr 仓库中该板卡的元数据board.yml显示其目标 SoC 为pic32cm5164jh01100类型为mcu架构为arm默认工具链为zephyr即 Zephyr SDK 内置工具链板载512 KiB Flash 与 64 KiB RAM见 pic32cm_jh01_cpro.yaml。硬件资源一览根据板卡文档EV81X90A 评估板提供以下硬件100 引脚 TQFP 封装的 PIC32CM5164 JH01 微控制器32.768 kHz 晶体振荡器用于 RTC 等低速外设32 MHz 晶体振荡器作为系统时钟源512 KiB Flash 64 KiB RAM一颗黄色用户 LEDLED0一颗绿色板载电源 LED一颗机械用户按键SW0一颗复位按键一颗 shield 驱动的触摸按键Trust AnchorTA100安全元件虚拟串口CDC通过 Serial Wire DebugSWD对板载 PIC32CM JH01 进行编程与调试Arduino Uno 兼容连接器设备树中的具体引脚分配上述外设的引脚连接可以在板级设备树 pic32cm_jh01_cpro.dts 中确认外设别名引脚/通道说明用户 LEDled0PC5portcpin 5GPIO_ACTIVE_LOW黄色 LED低电平点亮PWM LEDpwm-led0TCC2 通道 1PC5F_TCC2_WO1复用同一颗 LED 做 PWM 调光用户按键sw0PB19portbpin 19GPIO_PULL_UPGPIO_ACTIVE_LOW按下为低电平上报INPUT_KEY_0调试串口zephyr,console/shell-uartSERCOM4PB10/PB11115200-8-N-1启用 DMAI2C0—SERCOM3PA22(SDA)/PA23(SCL)400 kHzFAST 模式SPI—SERCOM5PB3 为片选启用 DMAADC0—PA11/PB8/PA5/PA4/PA8/PA9/PA10/PA3 共 8 通道32 MHz XOSC 经 GCLK1 分频至 16 MHz设备树中chosen节点把sercom4同时指定为zephyr,console与zephyr,shell-uart意味着板载虚拟串口CDC经 DEBUG USB 的 EDBG 引出默认即为 Zephyr 控制台与 shell 后端。支持的 Zephyr 特性原文档通过zephyr:board-supported-hw指令动态罗列该板卡支持的驱动。结合 pic32cm_jh01_cpro.yaml 中的supported列表当前仓库确认支持以下子系统adcadc0默认使能prescaler2clock_controlmicrochip,pic32cm-jh-clock含 XOSC/FDPLL/XOSC32K/OSC32K/GCLKcountertc032 位计数器、tcc124 位计数器dacdmaDMAC 默认使能为 UART/I2C/SPI 提供 rx/tx 通道flash经nvmctrl管理含 boot/slot0/slot1/storage 分区gpio、hwinfo、i2c、pinctrl、pwmTCC2 与 TC5、reset、rtc、spi、uart、watchdog板级默认配置 pic32cm_jh01_cpro_defconfig 启用了CONFIG_ARM_MPUy内存保护单元、CONFIG_SERIALy、CONFIG_UART_CONSOLEy与CONFIG_CONSOLEy并输出 HEX 构建产物CONFIG_BUILD_OUTPUT_HEXy说明该板默认即具备串口控制台与 MPU 保护。Flash 分区布局设备树 中定义了标准 A/B 分区结构适合 MCUboot 引导与镜像升级分区标签起始地址大小boot_partitionmcuboot0x0000000064 KiBslot0_partitionimage-00x00010000224 KiBslot1_partitionimage-10x00048000224 KiBstorage_partitionstorage0x00400000Data Flash8 KiB前三个分区位于主 Flashstorage分区则占据整个 8 KiB 的 Data Flash 区域。连接与 IO 说明原文档指出板卡连接的详细资料Arduino 兼容连接器、EXT1/2/3 扩展接口、J803 调试排针等以《PIC32CM JH01 Curiosity Pro User Guide》为准。仓库中的引脚复用文件 pic32cm_jh01_cpro-pinctrl.dtsi 则给出了源码级佐证例如ADC0 通道对应 EXT1 的 pin 3/4、EXT2 的 pin 3/4、J803 的 pin 16 以及 J701 的 VREFPA3B_ADC0_AIN1ADC1adc1_default节点已预留对应 EXT3 的 pin 3/4 与 J803 pin 1SERCOM3 的 SDA/SCL 直接标注了引脚复用PA22C_SERCOM3_PAD0/PA23C_SERCOM3_PAD1。这意味着你在编写 overlay 扩展外设时可以直接复用这些已定义的pinmux节点。调试接口设置该板支持三种调试途径MPLAB VS Code 扩展、PyOCD与J-Link。请根据实际连接的调试硬件选择对应的配置方式。MPLAB 调试适配器配置如需使用 Microchip MPLAB 扩展在 Visual Studio Code 中调试请参考仓库文档microchip-mplab-vscode-debugging的配置说明。以下launch.json可直接用于本板卡{ version: 0.2.0, configurations: [ { name: MPLAB Debug Zephyr : pic32cm_jh01_cpro, type: mplab-core-da, request: launch, program: ${workspaceFolder}/zephyr/build/zephyr/zephyr.elf, tool: ${command:pickTool}, stopOnEntry: true, device: PIC32CM5164JH01100 } ] }其中device字段PIC32CM5164JH01100与板卡 SoC 型号board.yml 中的pic32cm5164jh01100对应。PyOCD 配置PyOCD 通过板载EDBGEmbedded Debugger访问目标芯片接线仅需一条 DEBUG USB 线安装 Device Pack为 PIC32CM 系列设备添加支持pyocd pack install pic32cm验证设备支持确认目标可被识别pyocd list --targets输出中应出现类似条目pic32cm5164jh01100 Microchip PIC32CM5164JH01100 PIC32CM-JH pack连接板卡将板上的DEBUG USB接口连接到主机。该连接一方面为板卡供电另一方面提供对板载 EDBG的访问从而通过 PyOCD 对目标微控制器进行编程与调试。仓库中的 board.cmake 已为 PyOCD runner 预置参数--targetpic32cm5164jh01100 --frequency40004 MHz SWD 时钟因此west flash --runner pyocd无需额外指定目标即可烧录。J-Link 配置若使用 Segger J-Link 探针安装 J-Link 软件从 Segger 下载安装 J-Link 工具并确保JLink、JLinkGDBServer等可执行文件位于系统PATH中。连接板卡将J32 Debug Probe连接到板上的CORTEX DEBUG排针将 J32 Debug Probe 的另一端通过 USB 连接到主机同时将板上DEBUG USB口接到主机以为板卡供电。同样地board.cmake 为 J-Link runner 预置了--devicePIC32CM5164JH --speed4000west flash --runner jlink可直接使用。使用 MPLAB IPE 烧录如需通过MPLAB IPEIntegrated Programming Environment烧录固件请参考仓库文档microchip-mplab-ipe-flashing的操作说明。Zephyr 侧已内置mplab_iperunnerboard.cmake 预置参数为--tool EDBG --part 32CM5164JH01100 --erase --verify即使用 EDBG 工具、目标器件32CM5164JH01100烧录前擦除并在烧录后校验。构建与烧录应用程序1. 构建应用使用west工具从 Zephyr workspace 构建示例应用以Blinky为例west build -b pic32cm_jh01_cpro -p -s samples/basic/blinky-b pic32cm_jh01_cpro指定目标板-p执行 pristine 构建清理后重新构建-s samples/basic/blinky指定示例源码目录。该命令会为pic32cm_jh01_cpro板卡生成 Blinky 固件。构建产物位于build/zephyr/zephyr.elfMPLAB 调试时launch.json中的program即指向它。2. 烧录设备构建完成后执行west flash默认使用PyOCD runner对设备编程。若同时连接了 J-Link 探针CORTEX DEBUG 排针与 PyOCD 支持的调试接口DEBUG USB 口可以显式选择 runnerwest flash --runner jlink或west flash --runner pyocd从而确保固件通过所选接口烧录。3. 观察结果烧录成功后板上LED0黄色用户 LED应开始闪烁表示应用程序运行正常。LED0 在设备树中定义为低电平有效GPIO_ACTIVE_LOW对应引脚 PC5。参考资源板卡官方文档boards/microchip/pic32c/pic32cm_jh01_cpro/doc/index.rst板级设备树外设使能与分区布局pic32cm_jh01_cpro.dts引脚复用定义扩展接口通道分配pic32cm_jh01_cpro-pinctrl.dtsi调试 runner 参数PyOCD / J-Link / MPLAB IPEboard.cmake板卡默认 Kconfig 配置pic32cm_jh01_cpro_defconfig板卡元数据支持的驱动列表pic32cm_jh01_cpro.yaml更详尽的板卡连接信息Arduino 连接器、扩展接口、调试排针定义请查阅 Microchip 官方《PIC32CM JH01 Curiosity Pro User Guide》EV81X90A 随附资料。【免费下载链接】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),仅供参考
返回列表