USB论坛
直播中

邓长生

11年用户 997经验值
擅长:可编程逻辑
私信 关注
[问答]

是否可以使用 SEGGER J-Link(JTAG/SWD)重写 PMG1-S3 的量产固件?

是否可以使用 SEGGER J-Link(JTAG/SWD)重写 PMG1-S3 的量产固件?

回帖(1)

陈键

2025-8-4 17:37:25

是的,可以使用 SEGGER J-Link(通过其 SWD 接口)来读写 PMG1-S3 (PSoC™ ModGauge™ 系列) 芯片的固件,包括量产固件。但它并不能完全取代 Cypress/Infineon 官方的编程工具 KitProg3 (或 DAPmini-prog4) 的所有功能,尤其是在涉及 安全选项SFlash 存储区 操作时需要特别注意。


以下是关键考虑因素和步骤:




  1. 连接性:



    • PMG1-S3 的 Cortex-M0+ 内核通过标准的 SWD (Serial Wire Debug) 接口支持调试和编程。

    • SEGGER J-Link(所有型号,包括基础款)原生支持 SWD 协议。

    • 你只需将 J-Link 的 SWDIOSWCLKGNDVref/VTref (目标板电压参考) 引脚正确连接到 PMG1-S3 板上的相应调试引脚即可。




  2. 软件支持:



    • 可以使用 SEGGER 提供的标准工具:

      • J-Flash: 功能强大且用户友好的 GUI 工具,专用于芯片编程(擦除、写入、验证、读取闪存)。这是进行固件重写(刷写)的主要工具。

      • J-Link Commander: 命令行工具,提供更底层、脚本化的访问。


    • IDE 集成: 你可以通过支持 J-Link 的第三方 IDE (如 IAR Embedded Workbench for Arm, Keil MDK) 或使用 SEGGER Ozone 调试器来加载和执行程序(这本身也是一种编程方式),但 J-Flash 是独立的闪存编程任务的最佳选择。

    • 设备支持: J-Link 软件安装包包含大量设备支持包,其中通常包含 CYBLE / CYBL / PMG1 系列设备。务必确保你安装/使用了最新版的 J-Link 软件和驱动(J-Link Software and Documentation Pack)。在 J-Flash 的设备列表中查找包含 PMG1CYBLE / CYBL (旧命名) 的匹配型号。如果没有完全匹配的,可以尝试选择相同内核(Cortex-M0+)和类似内存布局的其他 PSoC 4 设备或创建一个自定义设备(需要精确的设备参数手册)。




  3. 关键注意事项和潜在限制:



    • 安全选项字节: PMG1 设备包含至关重要的 Flash Protection Settings (SYS_FLASH_PROT), SWD/JTAG Lock (SYS_JTAG_CONFIG), 以及其他 SROM/SFLASH/SMIF 配置选项

      • J-Flash 可以 读取和写入包含这些选项的特定内存区域(SFLASH)。

      • 警告⚠️: 直接操作这些区域极其危险!误写保护位或锁定位可能导致芯片永久禁止 SWD 访问(即“变砖”),除非通过特定的硬件复位序列(通常需要 KitProg3/DAPmini-prog4 或特殊的 I2C/UART 引导加载命令)或通过 Chip Erase(这需要 SWD 未被完全锁定)才能恢复。

      • 建议: 除非你非常清楚你在做什么,并且明确需要修改这些选项,否则最好避免使用 J-Link 修改 SFLASH 区域,尤其是保护位和锁定位。重写应用固件通常不需要触及这些区域。仅修改主用户程序 Flash 区域 (0x00000000 - 0x0003FFFF 或其一部分)通常是安全的。量产固件通常已经设置了恰当的选项。


    • 出厂默认启动模式: 标准的 PMG1-S3 出厂启动模式是 SWD,因此 J-Link 连接在硬件复位后应立即可用。如果启动模式被修改过(例如切换到 I2C/UART Bootloader),可能需要额外步骤强制进入 SWD 模式(如拉高某个引脚),否则无法连接。

    • 擦除操作:

      • J-Flash 可以执行标准的主用户 Flash 擦除操作(全部擦除或扇区擦除)。这是重写固件的基础。

      • 如果需要执行对整个芯片(包括 SFLASH 选项)的 Full Chip Erase (Chip Erase) 来清除锁定保护状态,J-Flash 可能 通过 Device Control 菜单提供这个操作,但其有效性和能否解锁因配置而异。KitProg3/DAPmini-prog4 在恢复被锁死的设备方面通常更可靠。


    • Flash 算法: J-Flash 需要正确的 Flash 编程算法文件来描述目标芯片的 Flash 布局和编程命令。确保 J-Flash 中为该设备选择的算法是准确且最新的(通常由 SEGGER 在设备支持包中提供)。

    • KitProg3/DAPmini-prog4 的优势: Infineon 的官方编程器与 ModusToolbox™ 和 PSoC™ Programmer 无缝集成,专门优化了对 PSoC 设备的安全选项、SFLASH、保护方案和出厂引导加载程序的访问和配置。对于复杂的量产设置(包括密钥配置、安全启动等),它们是首选。




  4. 使用 J-Link (J-Flash) 重写固件的典型步骤:



    1. 硬件连接:

      • 断开目标板电源。

      • 将 J-Link 的 SWDIO -> SWDIO (P9[0])

      • 将 J-Link 的 SWCLK -> SWCLK (P9[1])

      • 将 J-Link 的 GND -> GND

      • 将 J-Link 的 VTref/Vref -> VDDD (通常是 3.3V,验证目标板电压与 J-Link 的 VTref 设定一致)。

      • (可选但推荐) 将 J-Link 的 RESET -> XRES (P9[5]) (便于硬复位控制)。

      • 连接 J-Link USB 到电脑。

      • 接通目标板电源(如果 J-Link 没有通过 SWD 接口向目标板供电)。


    2. 软件配置:

      • 打开最新版的 SEGGER J-Flash。

      • Project Settings -> Target Device 中选择正确的 PMG1-S3 设备型号(或最接近的 CYBLE/CYBL 型号)。

      • 确认 Target Interface = SWD, Speed = (适当的kHz/MHz, 比如 4000 kHz 是常用速度)。

      • Target Interface 标签页下,配置 Reset 策略(如果需要使用 RESET 线)。


    3. 连接与识别:

      • 点击 Target -> Connect。J-Flash 应该能连上目标芯片,并读取 Core ID/Chip ID。识别成功后,状态栏会显示连接成功和设备ID。


    4. 执行操作:

      • 加载固件文件 (.hex/.bin): File -> Open data file... 选择你的量产固件文件,在文件对话框中选择正确的文件格式(Intel HEX 或 Raw binary)和偏移地址(通常是 0x00000000)。

      • (可选) 擦除相关区域: Target -> Erase Chip (全擦除) 或 Target -> Erase Sectors... (选择要擦除的用户程序扇区)。注意警告!

      • 编程: Target -> Program & Verify (或按 F5)。这会执行擦除(若选择)、写入、验证三个步骤。Auto 通常即可。

      • 复位: Target -> Reset -> CPU Reset (或 Core Reset).


    5. 验证功能: 断开 J-Link(可选),重启目标板,验证新固件是否按预期运行。




总结:



  • 可以: 使用 SEGGER J-Link (通过 SWD + J-Flash) 可以可靠地读取、擦除、写入和验证 PMG1-S3 的用户程序应用程序闪存区域 (0x00000000 起始的部分)。

  • 需要注意: 操作保护选项 (SYS_FLASH_PROT)、锁定位 (SYS_JTAG_CONFIG) 或配置存储 (SFLASH 区域) 具有极高风险。误操作可能导致 SWD 端口永久禁用。 强烈建议仅使用 J-Link/J-Flash 操作主用户程序 Flash 区域,并避免修改 SFLASH,除非你对具体风险和恢复措施有绝对把握。

  • 官方方案: KitProg3 或 DAPmini-prog4 搭配 ModusToolbox™ 或 PSoC™ Programmer 是 Infineon 推荐的、能安全处理所有配置(包括安全选项)的编程解决方案,特别适用于量产和复杂配置场景。如果涉及到安全的量产配置或恢复操作,官方工具是更安全的选择。


因此,如果你的目标仅仅是覆盖已有的用户应用程序固件(例如升级应用),并且你确信当前配置允许 SWD 访问并且你不需要修改关键的 SFLASH 选项字节,那么 SEGGER J-Link + J-Flash 是一个完全可行的方案。但如果操作涉及安全选项配置或设备已被部分锁定需要恢复,J-Link 的可用性会受限或有风险,这时官方工具几乎是必需的。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分