avatar

松果工作室

欢迎光临

  • 首页
  • freeRTOS
  • ESP
  • 开发手册
  • 快速笔记
  • 个人收藏
  • 工具
Home WCH 工具链
文章

WCH 工具链

Posted 2023-11-12 Updated 2023-11- 12
By YCP
8~10 min read

MRS MAC Toolchain&OpenOCD使用说明

软件依赖于libusb库,请自行安装,可以使用brew install libusb,或者下载libusb源码,自行编译安装设置环境变量。

FLASH CMD

[RISC-V]

sudo ./openocd -f wch-riscv.cfg -c init -c halt -c "flash erase_sector wch_riscv 0 last " -c exit                         #erase all

sudo ./openocd -f wch-riscv.cfg  -c init -c halt  -c "flash write_image xxx.hex\bin\elf "  -c exit                        #download

sudo ./openocd -f wch-riscv.cfg -c init -c halt -c "verify_image xxx.hex\bin\elf"    -c exit                           #verify

sudo ./openocd -f wch-riscv.cfg -c init -c halt -c wlink_reset_resume    -c exit
#reset and resume

[ARM]

sudo ./openocd -f wch-arm.cfg -c init -c halt -c "flash erase_sector wch_arm 0 last " -c exit                             #erase all

sudo ./openocd -f wch-arm.cfg  -c init -c halt  -c "program xxx.hex\bin\elf "  -c exit                                      #erase all && download

sudo ./openocd -f wch-arm.cfg -c init -c halt -c "verify_image xxx.hex\bin\elf"    -c exit                                  #verify

GDB CMD

1.创建OpenOCD进程:
sudo ./[OPENOCD_PATH]/openocd -f [CFGFILE_PATH]

2.启动GDB进程:
sudo ./[GDB_PATH]/riscv-none-embed-gdb

3.GDB指令(*指令必须先依次执行):
指定调试文件:
file [FILE_PATH]
连接端口:
target remote localhost:3333
烧写代码:
load
查看寄存器:
info register [REGISTER_NAME]
查看当前pc值:
i r pc
查看断点信息:
info breakpoint
设置断点:
break [LINE_NUM/FUNC_NAME/SYMBOL_NAME]
继续运行:
continue
执行下一步:
next
单步进入:
step
打印变量值:
print
查看当前代码:
list(需要工程目录包含源码, 编译时调试等级-g以上)
暂停状态时,可执行查看寄存器、查看当前代码,查看反汇编等操作.

调试步骤演示

1.创建openocd进程
格式:
OPENOCD_PATH -f CFG_PATH
如果是在ubuntu平台下提倡使用拖拽的方式,提升效率,避免输入路径出错
回车后, openocd进程挂起,等待连接。显示等待连接的端口号,此处为3333
示例
sudo ./openocd -f wch-riscv.cfg

2.启动gdb进程。指定调试elf
格式: GDB_PATH [FILE_PATH] [–ARGS]
无参数形式,riscv-none-embed-gdb。默认支持gdb cli命令。未指定FILE_PATH,则后续需要file命令指定调试文件,
riscv-none-embed-gdb xxxx.elf 带调试文件,后续不需要file指定调试文件
riscv-none-embed-gdb xxxx.elf–interpreter mi 在支持cli基础上,同时支持gdb mi命令。MRS调试打开gdb trace之后,Console输出的命令就是gdb mi命令。可以复制到此模式下逐个运行。

若为无参数形式,后续需要指定调试文件时,命令为file FILE_PATH
另起一个终端,
指令

cd   riscv-none-embed-gdb路径
Sudo ./riscv-none-embed-gdb 
file +xxx.elf(elf文件目录+文件名)
target remote localhost:3333    //连接端口
Load                         //下载	
info register + 寄存器名, 查看寄存器。查看当前pc值,i r pc
info breakpoint,查看所有断点。当前未设置断点

设置断点 break 行号/方法名/符号名
继续跑到下一个断点 continue, 如果没有断点则一直运行
调试相关的命令:
执行下一步next
单步进入step
打印变量值 print
查看当前代码 list(需要工程目录包含源码, 编译时调试等级-g以上)
暂停状态时,可执行查看寄存器、查看当前代码,查看反汇编等操作。。。

gdb模式下,可输入help all列出所有命令,如搜索、变量打印、查看堆栈等。

坑和笔记
WCH
License:  CC BY 4.0
Share

Further Reading

Dec 23, 2024

其他笔记

EC800K AT连接移远云 配置过程 # 配置产品信息(初次连接需配置) AT+QIOTCFG="productinfo","pxxxxt","cDVTxxxxxxxxWGVB" # 连接开发者中心 AT+QIOTREG=1 # 查询当前连接状态(+QIOTSTATE: 8为正常) AT+QI

Jun 21, 2024

环形滤波算法

#include <stdio.h> #include <stdlib.h> #define BUFFER_SIZE 10 // 缓冲区大小 #define THRESHOLD 180

Jun 17, 2024

STM32 ADC采集的三种方式

采样周期 单个采集模式 ADC_Settings: 程序使用 uint16_t ADC_Read(

OLDER

BLE mesh

NEWER

开发板 PinOUT

Recently Updated

  • ESP32(八) 简单的webserver
  • ESP32(七) NVS
  • ESP32(四) STA & AP
  • 多级菜单
  • ESP32(五) ESP32 OTA

Trending Tags

WCH Linux Elec freeRTOS STM ESP Flutter Others SwiftUI

Contents

©2025 松果工作室. Some rights reserved.

Using the Halo theme Chirpy