This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430-GCC-opensource:使用 GDB 和 MSP430 GDB 代理设置硬件观察点时出错

Guru**** 2180490 points
Other Parts Discussed in Thread: MSP430FR5994
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1159398/msp430-gcc-opensource-error-when-setting-hw-watchpoint-using-gdb-and-the-msp430-gdb-agent

器件型号:MSP430-GCC-opensource
主题中讨论的其他器件:MSP430FR5994

大家好、我目前使用 GDB 9.1和 MSP430 GDB Agent 8.0.809.0调试一个测试项目、我从以下位置获得:

https://www.ti.com/tool/MSP430-GCC-OPENSOURCE

该测试项目在 MSP430FR5994 Launchpad 上运行。 当我尝试在名为 ii 的全局变量上设置观察点时、我会收到以下错误消息:

(gdb)观察 ii
硬件观察点1:II
(gdb)信息中断
数字    类型          显示 ENB 地址   内容
1      硬件观察点 保持             y ii
(gdb) c
继续。
警告:
无法插入硬件观察点1。
无法插入硬件断点:
您可能请求了过多的硬件断点/观察点。

命令已中止。

在 GDB 代理上、我收到以下消息:

CPU 名称            端口
----             ----
MSP430             :55000

启动所有内核
CPU 名称            状态
----             ----
MSP430              正在等待客户端
MSP430              客户端已连接...正在连接到目标
在 COM18上找到 USB FET
目标已连接...正在启动服务器
错误:set_breakpoint()后端调用返回65

GDB 代理似乎无法设置硬件监视点。 这是已知问题/预期行为吗? 或者我在这里做了些什么错误吗?

如果能在这方面提供任何帮助,将不胜感激。

测试项目的来源如下:

#include

volatile int ii = 10;

int abc (int a){

   返回(A+4);

int test (int i){

   ii = ii + 1;

   ii = abc (ii);

   退货(ii);

int main (void){

   WDTCTL = WDTPW | WDTHOLD;              //停止看门狗计时器

   PM5CTL0 &=~LOCKLPM5;                  //禁用 GPIO 上电默认高阻抗模式

    P1DIR |= 0x01;                         //将 P1.0设置为输出方向

   for (;;){

       unsigned int i;           // volatile 以阻止优化

       P1OUT ^= 0x01;                     //使用异或切换 P1.0

       I = 10000;                         // SW 延迟

       II++;

       II =测试(I);

       我----

       while (i!= 0);

   }