硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2548|回复: 12
收起左侧

[STM32H7] SEGGER硬件异常分析机制工程的_Continue变量仿真时无法修改

[复制链接]

3

主题

6

回帖

15

积分

新手上路

积分
15
发表于 2019-7-5 10:14:34 | 显示全部楼层 |阅读模式
我用的是H750的芯片,ST-LINK2的仿真器,在watch1窗口那里修改了_Continue的值为1,点击单步调试,一直跳不出 while (_Continue == 0) {  }。可是_Continue值已经是1了,奇怪了。我打开其他工程文件在watch1内修改内变量的值,然后打印出来,可以正确修改,所以应该不是仿真器的问题。求大神解惑。感谢!!!

QQ图片20190705100632.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106994
QQ
发表于 2019-7-5 10:16:21 | 显示全部楼层
路径太长,太深,而且有中文,修改下试试。

别的没有什么要特别注意的了
回复

使用道具 举报

3

主题

6

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-7-5 21:55:34 | 显示全部楼层
eric2013 发表于 2019-7-5 10:16
路径太长,太深,而且有中文,修改下试试。

别的没有什么要特别注意的了

硬汉哥,把工程复制到桌面并且没有中文路径,调试了也不行啊。
我的主函数是这样的,没改哪里,就是上电延时200ms后进入硬件错误。
回复

使用道具 举报

3

主题

6

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-7-5 21:57:10 | 显示全部楼层
D:\Learning\QQ截图20190705215347.png
回复

使用道具 举报

3

主题

6

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2019-7-5 22:01:47 | 显示全部楼层
本帖最后由 长海 于 2019-7-5 22:04 编辑
长海 发表于 2019-7-5 21:55
硬汉哥,把工程复制到桌面并且没有中文路径,调试了也不行啊。
我的主函数是这样的,没改哪里,就是上电 ...
  1.      /* 进入主程序循环体 */
  2.      while (1)
  3.      {
  4.                 bsp_Idle();                /* 这个函数在bsp.c文件。用户可以修改这个函数实现CPU休眠和喂狗 */


  5.         HAL_Delay(200);
  6.         volatile unsigned int* p;
  7.         unsigned int n;
  8.         p = (unsigned int*)0xCCCCCCCC;
  9.         n = *p;
  10.         (void)n;
  11.     }
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106994
QQ
发表于 2019-7-6 09:05:44 | 显示全部楼层

我这里没问题的,你那里还真不清楚咋回事了
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2023-3-31 11:00:31 | 显示全部楼层
微信截图_20230331105801.png 为什么在HardFaultHandler单步运行跳出后,又进入到了hardfault中断,而不是进入异常前下一条要执行的指令
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106994
QQ
发表于 2023-3-31 12:59:44 | 显示全部楼层
莫问1990 发表于 2023-3-31 11:00
为什么在HardFaultHandler单步运行跳出后,又进入到了hardfault中断,而不是进入异常前下一条要执行的指令

出现这种情况说明一直有异常触发,特别是非精确的异常类型,这种的无法锁定错误位置。
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2023-3-31 16:04:16 | 显示全部楼层
eric2013 发表于 2023-3-31 12:59
出现这种情况说明一直有异常触发,特别是非精确的异常类型,这种的无法锁定错误位置。

就是移植的例程里面的按键触发的那个
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106994
QQ
发表于 2023-4-1 08:46:00 | 显示全部楼层
莫问1990 发表于 2023-3-31 16:04
就是移植的例程里面的按键触发的那个

方便的话,MDK调试状态里面的hard reports对话框贴下
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2023-4-3 09:17:24 | 显示全部楼层
1.png 2.png 按键的检测是作为threadX的一个任务执行的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106994
QQ
发表于 2023-4-3 12:24:44 | 显示全部楼层
莫问1990 发表于 2023-4-3 09:17
按键的检测是作为threadX的一个任务执行的。

这个方法试试。这个SEGGER的方式,有时候是这样的,会一直进入硬件异常,无法进入到任务里面锁定位置。

调整SEGGER硬件异常检测机制检查方法
https://www.armbbs.cn/forum.php? ... 3142&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2023-4-4 17:28:08 | 显示全部楼层
eric2013 发表于 2023-4-3 12:24
这个方法试试。这个SEGGER的方式,有时候是这样的,会一直进入硬件异常,无法进入到任务里面锁定位置。
...

嗯,我之前也是搜到了这个帖子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 11:31 , Processed in 0.340727 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表