跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Blogs
  3. OpenOCD 云途版:使用 DAP-Link 烧录调试 YTM32(支持 VS Code)

OpenOCD 云途版:使用 DAP-Link 烧录调试 YTM32(支持 VS Code)

已定时 已固定 已锁定 已移动 Blogs
openocdvscodedaplink
1 帖子 1 发布者 30 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • runR 离线
    runR 离线
    run YunTu
    编写于 最后由 编辑
    #1

    本文主要发布 OpenOCD 云途版 工具包:无需安装 Keil / J-Link 补丁包,使用 DAP-Link(CMSIS-DAP) 就能对 YTM32 系列芯片进行 烧录、擦除、校验和在线调试,也可以直接配合 VS Code + Cortex-Debug 使用。

    下面以 YTM32B1HA01 开发板 + DAP-Link(SWD) 为例,演示从烧录到在 VS Code 里单步调试的完整流程,文中截图均为实板操作。


    一、下载

    • 工具包:openocd-ytmicro-20261024.zip(Windows 64 位,约 5.4 MB)
      openocd-ytmicro-20261024.zip

    解压即可使用,无需安装,也不依赖其他运行库。可以放在任意目录,下文假设解压到 D:\tools\openocd:

    D:\tools\openocd\
    ├── openocd.exe
    ├── YTMicro\          <- 各系列芯片的下载算法和器件信息
    ├── interface\        <- cmsis-dap.cfg、jlink.cfg、stlink.cfg
    └── target\           <- ytmicro.cfg(所有云途芯片通用)
    

    二、支持的芯片和调试器

    芯片(DEVICE 取下面任意一个名字,不区分大小写):

    系列 DEVICE 名称
    YTM32B1HA0 YTM32B1HA01
    YTM32B1LD0 YTM32B1LD04
    YTM32B1LE0 / LE1 YTM32B1LE04、YTM32B1LE05、YTM32B1LE14、YTM32B1LE15
    YTM32B1MC0 YTM32B1MC03
    YTM32B1MD1 / MD2 YTM32B1MD14、YTM32B1MD24
    YTM32B1ME0 / ME1 YTM32B1ME05、YTM32B1ME15
    YTM32Z1LS0 / LS1 YTM32Z1LS06、YTM32Z1LS16
    YTM32Z1MC0 / MD0 / ME0 YTM32Z1MC03、YTM32Z1MD04、YTM32Z1ME05

    PFlash 和 DFlash 都会自动识别,可直接烧录。

    调试器(接口均为 SWD):

    调试器 配置文件 驱动
    DAP-Link / CMSIS-DAP interface/cmsis-dap.cfg 免驱,插上即用(推荐)
    J-Link interface/jlink.cfg 需用 Zadig 把 J-Link 切换为 WinUSB 驱动
    ST-Link interface/stlink.cfg 需用 Zadig 安装 WinUSB 驱动

    提示:J-Link 切换为 WinUSB 后,SEGGER 官方软件(J-Flash、Ozone 等)就无法识别它了,需要时再在设备管理器中改回来。日常使用 OpenOCD 更推荐 DAP-Link。

    三、命令行烧录(一条命令搞定)

    打开 cmd,进入工程目录(固件路径相对于当前目录),执行:

    D:\tools\openocd\openocd.exe -f interface/cmsis-dap.cfg -c "set DEVICE YTM32B1HA01" -f target/ytmicro.cfg -c "program build/HA0_Adc_Demo.elf verify reset exit"
    

    参数说明:

    • -f interface/cmsis-dap.cfg:使用的调试器,换成 jlink.cfg / stlink.cfg 即可切换;
    • -c "set DEVICE YTM32B1HA01":芯片型号,必须写在 target/ytmicro.cfg 前面;
    • -f target/ytmicro.cfg:云途芯片通用配置,所有型号都用这一个;
    • program ... verify reset exit:烧录 → 校验 → 复位运行 → 退出。

    实板运行结果(HA01 + DAP-Link,ADC Demo 约 14 KB,烧录 + 校验约 1 秒):

    命令行烧录

    看到 ** Programming Finished ** 和 ** Verified OK ** 就表示烧录成功。

    常用操作

    rem 烧录 hex / elf(自带地址)
    openocd.exe -f interface/cmsis-dap.cfg -c "set DEVICE YTM32B1HA01" -f target/ytmicro.cfg -c "program app.hex verify reset exit"
    
    rem 烧录 bin 文件,需要指定起始地址(HA0 PFlash 起始地址为 0x02000000,其他系列请查手册存储器映射)
    openocd.exe -f interface/cmsis-dap.cfg -c "set DEVICE YTM32B1HA01" -f target/ytmicro.cfg -c "program app.bin 0x02000000 verify reset exit"
    
    rem 擦除第一个 flash bank(PFlash)
    openocd.exe -f interface/cmsis-dap.cfg -c "set DEVICE YTM32B1HA01" -f target/ytmicro.cfg -c "init; reset halt; flash erase_sector 0 0 last; exit"
    
    rem 调低 SWD 速率(线较长或连接不稳定时),单位 kHz,默认 4000
    openocd.exe -f interface/cmsis-dap.cfg -c "set DEVICE YTM32B1HA01" -c "set ADAPTER_SPEED 1000" -f target/ytmicro.cfg -c "program app.elf verify reset exit"
    

    四、在 VS Code 中调试(Cortex-Debug)

    1. 准备

    • VS Code 安装扩展 Cortex-Debug(marus25.cortex-debug);
    • 安装 ARM GCC 工具链(需要其中的 arm-none-eabi-gdb.exe)。用云途 YCT 配置工具生成过 GCC 工程的话,工具链已经自带了;
    • 工程能正常编译出 .elf。

    2. 配置 .vscode/launch.json

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "HA0_Adc_Demo Debug",
                "type": "cortex-debug",
                "request": "launch",
                "cwd": "${workspaceFolder}",
                "executable": "${workspaceFolder}/build/HA0_Adc_Demo.elf",
                "servertype": "openocd",
                "device": "YTM32B1HA01",
                "serverpath": "D:/tools/openocd/openocd.exe",
                "configFiles": [
                    "interface/cmsis-dap.cfg",
                    "target/ytmicro.cfg"
                ],
                "openOCDPreConfigLaunchCommands": [
                    "set DEVICE YTM32B1HA01"
                ],
                "svdFile": "${workspaceFolder}/.vscode/chip.svd",
                "runToEntryPoint": "main",
                "liveWatch": {
                    "enabled": true,
                    "samplesPerSecond": 4
                }
            }
        ]
    }
    

    需要按自己的情况修改的地方:

    字段 说明
    executable 编译生成的 elf 路径
    serverpath openocd.exe 的实际解压路径(用 / 或 \\)
    configFiles 第一项为调试器,换 J-Link 就写 interface/jlink.cfg
    openOCDPreConfigLaunchCommands set DEVICE <芯片型号>,芯片型号写在这里,它会在 ytmicro.cfg 之前执行
    svdFile 芯片 SVD 文件,用于查看外设寄存器(可选)
    armToolchainPath 如果 arm-none-eabi-gdb 不在 PATH 中,加上这一项指向工具链的 bin 目录,例如 "C:/xxx/gcc-arm-none-eabi-10.3-2021.10/bin"

    launch.json 配置

    3. 开始调试

    按 F5(或点击 运行和调试 → 开始调试)。Cortex-Debug 会自动启动 OpenOCD、下载程序,并停在 main()。之后就可以正常设置断点、单步、查看变量:

    断点调试

    上图在 ADC 采样循环中设置了断点,左侧 Variables 中可以看到实时读到的 voltage 值。

    配置了 svdFile 后,在 XPeripherals 面板中可以按位域查看外设寄存器,例如 ADC0 的 CFG0:

    外设寄存器

    五、注意事项

    1. set DEVICE 一定要在 target/ytmicro.cfg 之前。命令行中放在 -f target/ytmicro.cfg 前面;VS Code 中写在 openOCDPreConfigLaunchCommands 里。
    2. 烧录会占用一段 SRAM 作为工作区,烧录完成后不会恢复其中的内容。正常的"烧录 → 复位运行"流程没有影响;如果在调试过程中写 flash 后不复位直接继续运行,需要注意这一点。
    3. 芯片处于低功耗模式、或 SWD 引脚被复用时,可能连不上,可以在复位状态下连接(按住复位键再启动 OpenOCD)。

    六、常见问题

    现象 处理方法
    Device 'XXX' not found 芯片名写错了,对照第二节表格检查
    Error: unable to find a matching CMSIS-DAP device 调试器没插好,或被其他软件(Keil、其他 OpenOCD 进程)占用
    Error connecting DP: cannot read IDR 检查 SWD 接线和目标板供电;可尝试降低 ADAPTER_SPEED
    Not enough working area 可在 set DEVICE 后加 -c "set WORKAREASIZE 0x4000" 增大工作区
    VS Code 提示找不到 gdb 在 launch.json 中加 armToolchainPath

    七、性能参考

    YTM32B1ME05,1 MB PFlash,DAP-Link SWD 4 MHz:

    • 整片擦除:约 0.1 s
    • 写入速度:约 160 KB/s
    • 1 MB 完整镜像烧录 + 校验:约 9 s

    使用中遇到问题,欢迎在本帖回复,附上芯片型号、调试器型号和 OpenOCD 的完整输出,方便我们定位。

    1 条回复 最后回复
    0
    • runR run 被引用 于这个主题

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • can
    29
    demo
    26
    uds
    14
    lin stack
    13
    fbl
    6
    md14
    6
    yt-link
    6
    adc模块
    4
    Online Users
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门