ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Zephyr 下 Microchip PIC32CM GC00 Curiosity Pro 开发板(pic32cm_gc00_cpro)入门实战:硬件特性、构建、烧录与 J-Link 调试

Zephyr 下 Microchip PIC32CM GC00 Curiosity Pro 开发板(pic32cm_gc00_cpro)入门实战:硬件特性、构建、烧录与 J-Link 调试 Zephyr 下 Microchip PIC32CM GC00 Curiosity Pro 开发板pic32cm_gc00_cpro入门实战硬件特性、构建、烧录与 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本指南以 Zephyr 仓库内 PIC32CM GC00 Curiosity Pro 板级文档 为主体结合该板的设备树、defconfig、board.cmake 与板级 YAML 元数据系统讲解如何用west工具为pic32cm_gc00_cpro目标构建应用并通过 MPLAB IPE、J-Link命令行 GDB 与 VSCode完成烧录与调试。读完本文你将掌握从硬件资源清单到完整调试工作流的一站式上手能力。板卡概览OverviewPIC32CM GC00 Curiosity Pro 是 Microchip 推出的评估套件型号 EV17V75A用于评估 PIC32CM GC 系列微控制器。该套件提供了一套丰富的板载资源让开发者能够探索 PIC32CM GC 的外设能力并评估如何将该器件集成到自己的产品设计中。在 Zephyr 中该板卡由板级标识符pic32cm_gc00_cpro引用模型名称为 PIC32CM GC00 Curiosity Procompatible字符串为microchip,pic32cm_gc00_cpro见 pic32cm_gc00_cpro.dts。它属于microchip厂商、arm架构、mcu类型的板卡工具链为 Zephyr 自带的zephyr工具链板级元数据见 pic32cm_gc00_cpro.yaml。PIC32CM GC00 Curiosity Pro 评估板实物图硬件资源Hardware根据板级文档PIC32CM GC00 Curiosity Pro 的主要硬件特性如下主控100 引脚 TQFP 封装的 PIC32CM5112GC00100 微控制器内核Arm Cortex-M23 处理器晶振32.768 kHz 低速晶振 12 MHz 高速晶振存储512 KiB Flash 与 128 KiB RAM指示灯两颗用户 LED红色与绿色 一颗绿色电源 LED按键两颗机械用户按键 一颗复位按键USBMicro USB 接口Type-AB提供虚拟串口VCOM功能调试板载 PKoB4 调试器通过 Serial Wire DebugSWD完成编程与调试扩展接口Arduino UNO R3 Shield 排针、mikroBUS 排针通信两路 CAN 接口模拟/传感10 kOhms 电位器安全CryptoAuthentication 器件 TA101交互触摸按键Touch Button。从设备树源码看板级资源配置与上述硬件一一对应pic32cm_gc00_cpro.dts 中定义了ledsgpio-leds与buttonsgpio-keys节点、UART/I2C 串行外设以及完整的时钟树pic32cm_gc00_cpro-pinctrl.dtsi 则负责引脚复用pinmux配置。支持的 Zephyr 功能Supported Features该板卡当前在 Zephyr 中已支持的驱动/子系统类别可从板级 YAML 的supported字段确认详见 pic32cm_gc00_cpro.yaml功能类别说明clock_control时钟控制XOSC、DFLL48M、DPLL、GCLK 等dmaDMA 控制器DMAC用于 UART/I2C 收发gpio通用 GPIOLED、按键、扩展排针i2cI2C 总线SERCOM1快速模式pinctrl引脚控制器引脚复用配置uart串口SERCOM4作为控制台watchdog看门狗板卡默认开启的系统配置在 pic32cm_gc00_cpro_defconfig 中给出包括CONFIG_BUILD_OUTPUT_HEXy额外生成 hex 格式固件便于 MPLAB IPE 等工具烧录CONFIG_ARM_MPUy启用 Arm MPU内存保护单元CONFIG_USE_DT_CODE_PARTITIONy使用设备树中的代码分区CONFIG_CONSOLEy、CONFIG_SERIALy、CONFIG_UART_CONSOLEy启用串口控制台输出。板级默认外设与引脚分配Connections and IOs设备树中通过aliases与chosen定义了板级默认资源控制台串口zephyr,console与zephyr,shell-uart均指向sercom4。该 SERCOM4 配置为 UART波特率115200、8 数据位、无校验、1 停止位并启用了 DMA 收发dmac 0 24/dmac 1 25。引脚为PD19D_SERCOM4_PAD0TX与PD20D_SERCOM4_PAD1RX对应 pinctrl 节点sercom4_uart_default。I2C 总线i2c0映射到sercom1时钟频率为I2C_BITRATE_FAST400 kHz同样配置了 DMA引脚为PD0D_SERCOM1_PAD1SCL与PD1D_SERCOM1_PAD0SDA对应 pinctrl 节点sercom1_i2c_default。LEDled0LED0红色接porta第 20 脚led1LED1绿色接porta第 18 脚均为GPIO_ACTIVE_LOW低电平点亮按键sw0接portb第 7 脚sw1接portb第 11 脚均配置为GPIO_PULL_UP | GPIO_ACTIVE_LOW并绑定输入事件码INPUT_KEY_0/INPUT_KEY_1。关于板卡引脚的更详细信息Microchip 官方提供了《PIC32CM SG00/GC00 Curiosity Pro User Guide》用户指南建议结合该文档查阅板级丝印与排针定义。时钟树与 Flash 分区从设备树可以看出该板的时钟拓扑12 MHz 外部晶振xosc作为 DPLL 参考时钟参考分频 2、反馈倍频 144DPLL 输出经 6 分频后作为gclk0的来源gclk0再 2 分频供给外设dfll48m采用闭环模式倍频因子 4源为gclk032.768 kHz 低速晶振xosc32k用于 RTC 等低功耗时钟域CPU 主频在cpu0节点中声明为 72 MHz。Flash 分区方面boot_flash前 16 KiB 为引导分区program_flash前 496 KiB 为代码分区code_partition末尾 16 KiB地址0x7c000为存储分区storage_partition配置了zephyr,mapped-partition可供 MCUboot 等方案直接映射使用。编译构建Build the Application与所有 Zephyr 板卡一样使用west工具从 Zephyr 工作区构建应用。以Blinky闪烁 LED示例为例west build -b pic32cm_gc00_cpro -p -s samples/basic/blinky命令参数说明-b pic32cm_gc00_cpro指定目标板卡标识符-p执行 pristine 构建清理后重新构建避免缓存残留-s samples/basic/blinky指定示例应用的源代码路径。构建产物默认输出在build/zephyr/目录下其中zephyr.elf用于调试器加载zephyr.hex由CONFIG_BUILD_OUTPUT_HEXy生成适用于 MPLAB IPE 等工具烧录。Blinky 示例会交替点亮板上的led0LED0源码位于samples/basic/blinky/src/main.c。烧录与调试Programming Debugging该板支持两种烧录 runner配置在 board.cmake 中mplab_ipe使用板载 PKoB4 调试器与 MPLAB IPE 工具默认参数为--tool PKOB4 --part 32CM5112GC00100 --erase --verifyjlink使用 SEGGER J-Link 调试器默认参数为--devicePIC32CM5112GC --speedauto。west flash默认选用jlinkrunner 进行烧录。使用 MPLAB IPE 烧录Flash Using MPLAB IPE如需使用 MPLAB IPE 烧录请参考 Zephyr 文档中的通用 MPLAB IPE 烧录说明microchip-mplab-ipe-flashing章节。该方式依赖板载 PKoB4 调试器通过 USB 连接 DEBUG 口即可在 MPLAB IPE 中选择器件32CM5112GC00100加载build/zephyr/zephyr.hex完成烧写对应 runner 默认的擦除与校验行为。使用 J-Link 烧录Flash Using J-Link按以下步骤使用 J-Link 调试器烧录固件安装 J-Link 软件从 SEGGER 官方下载并安装 J-Link 软件套件确保其中的可执行文件如JLink、JLinkGDBServer已加入系统PATH环境变量。连接板卡将 J32 Debug Probe 连接到板上的CORTEX DEBUG调试排针将 J32 Debug Probe 的另一端通过 USB 连接到主机PC将板上的 DEBUG USB 口连接到主机以为板卡供电。构建应用west build -b pic32cm_gc00_cpro -p -s samples/basic/blinky这会为pic32cm_gc00_cpro板卡生成 Blinky 应用固件。烧录固件west flash该命令使用默认的jlinkrunner 将固件烧写到板卡。观察结果烧录完成后板上的LED0应开始闪烁表明应用运行成功。使用 J-Link 调试GDB 命令行Debug Using J-Link: GDB Command-Line构建应用同上west build -b pic32cm_gc00_cpro -p -s samples/basic/blinky启动调试会话west debugwest debug会启动 J-Link GDB Server 并拉起 GDB 客户端连接到目标后停在入口点。常用 GDB 命令针对“J-Link GDB Server 下停在 main 并设置断点”的典型流程(gdb) break main (gdb) break main.c:42 # 可选在 main.c 第 42 行设置断点 (gdb) continue # 开始执行停在第一个断点处 (gdb) info breakpoints # 列出所有断点 (gdb) delete 1 # 删除 1 号断点 (gdb) delete # 删除全部断点 (gdb) clear main.c:42 # 清除指定位置的断点 (gdb) continue # 恢复执行使用 J-Link 调试VSCode在项目目录下创建或编辑.vscode/launch.json配置如下{ version: 0.2.0, configurations: [ { name: Debug (J-Link, PIC32CM5112GC00100), type: cortex-debug, request: launch, servertype: jlink, device: PIC32CM5112GC00100, interface: swd, runToEntryPoint: main, showDevDebugOutput: none, cwd: ${workspaceFolder}, executable: ${workspaceFolder}/zephyr/build/zephyr/zephyr.elf, //J-Link settings serverpath: C:/Program Files/SEGGER/JLink_Vxxx/JLinkGDBServerCL.exe, serverArgs: [ -singlerun, -if, swd, -speed, 4000, -device, PIC32CM5112GC, -port, 50000 ], //Zephyr SDK toolchain paths gdbPath: ***/zephyr-sdk-x.xx.x/arm-zephyr-eabi/bin/arm-zephyr-eabi-gdb.exe, objdumpPath: ***/zephyr-sdk-x.xx.x/arm-zephyr-eabi/bin/arm-zephyr-eabi-objdump.exe, } ] }配置要点说明serverpath若 J-Link GDB Server 可执行文件不在系统PATH中需填写其完整路径Windows 下为JLinkGDBServerCL.exeserverArgs指定 SWD 接口、4 MHz 调试时钟、目标器件PIC32CM5112GC与 GDB Server 端口50000gdbPath/objdumpPath若 Zephyr SDK 中的 GDB/objdump 可执行文件不在PATH中需填写完整路径***处替换为实际的 Zephyr SDK 安装路径executable指向构建产物build/zephyr/zephyr.elf。VSCode 中的调试步骤按上文方式启动 J-Link GDB Server在 VSCode 中打开samples/basic/blinky/src/main.c点击行号左侧在源码中设置断点按F5或点击绿色 Start Debugging 按钮调试器将连接目标、加载程序并停在main处使用 VSCode 的调试控件继续执行、单步调试或检查变量。补充参考板级文档boards/microchip/pic32c/pic32cm_gc00_cpro/doc/index.rst板级设备树pic32cm_gc00_cpro.dts引脚复用pic32cm_gc00_cpro-pinctrl.dtsi烧录 runner 配置board.cmake默认配置pic32cm_gc00_cpro_defconfig板级元数据pic32cm_gc00_cpro.yaml关于该板卡的器件数据手册、EV17V75A 评估套件页面、PIC32CM SG/GC 产品家族页面、J-Link 软件下载以及 J32 Debug Probe 的更多官方资料可在 Microchip 与 SEGGER 官网按上述产品名检索获取。【免费下载链接】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),仅供参考
返回列表