Other Parts Discussed in Thread: MSPM0G3507
器件型号: MSPM0G3507
您好、
我目前正在使用 TI LaunchPad(MSPM0G3507 器件)、发现 Code Composer Studio (CCS) 和基于 OpenOCD 的设置之间的半主机行为存在差异、我计划稍后在 CI/CD 流水线中使用该差异。
首先、我在 CCS 中创建了一个空的 ticlang 示例工程、并保留了默认配置(包括 XDS110 调试器)。 使用一个最小的示例应用程序、在 CCS 中进行调试时、`printf` output 和文件写入(到.txt 文件)都能正常工作。
下面是一个最小代码示例:
但是、当尝试使用 OpenOCD 和 GDB 复制此行为时、它无法按预期工作。 我在一个终端中运行 OpenOCD、并在另一个终端中连接` arm-none-eabi-gdb `、加载编译的应用二进制文件。
通过此设置、我可以连接到目标并逐步完成应用程序。 不过:
OpenOCD 日志:
openocd -f board/ti_mspm0_launchpad.cfg
开放片上调试器 0.12.0+dev-g6872f7e (2025年07月25日 16:56)
在 GNU GPL v2 下获得许可
有关错误报告、请阅读
http://openocd.org/doc/doxygen/bugs.html
警告:已弃用:自动选择传输“SWD“。 使用“transport select SWD“可禁止显示此消息。
警告:已选择传输“SWD“
Cortex_m reset_config sysresetreq
INFO:正在侦听端口 666 中的 TCL 连接
INFO:侦听端口 4444 的 telnet 连接
INFO:XDS110:VID/pid = 0451/bef3
信息:XDS110:固件版本= 3.0.0.41
信息:XDS110:硬件版本= 0x0028
信息:XDS110:通过 SWD 连接到目标
信息:XDS110:SWCLK 设置为 2500kHz
INFO:时钟速度 10000 kHz
信息:SWD DPIDR 0x6ba02477
信息:[mspm0x.cpu]检测到 Cortex-M0+ r0p1 处理器
INFO:[mspm0x.cpu] target 有 4 个断点、2 个观察点
INFO:[mspm0x.cpu]检查成功
info:[mspm0x.cpu]启动 3333 上的 gdb 服务器
INFO:正在侦听 gdb 连接的端口 3333
INFO:在 TCP/3333 上接受'gdb'连接
[mspm0x.cpu]由于 debug 请求而停止、当前模式:处理程序硬故障
xPSR:0x0100003 PC:0x0000027a MSP:0x200004f8
信息:数据区域不可用!
[mspm0x.cpu]由于 debug-request 而停止、当前模式:线程
xPSR:0xF1000000 PC:0x00000270 MSP:0x20000570、半主机
[mspm0x.cpu]由于 debug-request 而停止、当前模式:线程
xPSR:0xF1000000 PC:0x0000136a MSP:0x20208000、半主机
[mspm0x.cpu]由于 debug-request 而停止、当前模式:线程
xPSR:0xF1000000 PC:0x0000136a MSP:0x20208000、半主机
GDB 日志:
arm-none-eabi-gdb
(gdb) 文件 empty_LP_MSPM0G3507_nortos_ticlang.out
从 empty_LP_MSPM0G3507_nortos_ticlang.out 读取符号...
(gdb) 目标扩展远程:3333
使用:3333 进行远程调试
fopen.c:220 处的_openfile (_fname=0x24c5 “-\006\320 (x“、_fp=0x20000518、_mode=0x10 ““)
警告:220 fopen.c:没有此类文件或目录
(gdb) MONITOR ARM 半主机使能
启用半主机
(gdb) 负载
加载段.intvecs、大小为 0xc0 lma 0x0
加载段.text、大小为 0x12c0 lma 0xc0
加载段.rodata、大小 0x90 lma 0x1380
加载段.cinit、大小为 0x88 lma 0x1410
起始地址 0x0000125c、加载大小 5272
传输速率:4 KB/秒、1318 字节/写入。
(gdb) 监视重置停止
[mspm0x.cpu]由于 debug-request 而停止、当前模式:线程
xPSR:0xF1000000 PC:0x0000136a MSP:0x20208000、半主机
(gdb) break main
警告:无法将主机编码 (CP1252) 中的“main“转换为 UTF-32。
通常不会发生这种情况、请提交错误报告。
位于 0xfe0 处的断点 1:文件..\empty.c、第 39 行。
注意:自动对只读地址使用硬件断点。
(gdb) c.
继续。
断点 1、main () 位于..\empty.c:39
39 f = fopen(“C:/Temp/msg_from_mspm0g3_armclang.txt、“w“);
(gdb) c.
继续。
设置:
提前感谢您的支持!