硬汉嵌入式论坛

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

诡异的STM32硬件异常,注释掉部分外设初始化竟然不异常了

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2020-4-21 09:18:29 | 显示全部楼层 |阅读模式
昨天群友测试到一个神奇的现象,下面的这个测试代码在IAR和MDK下都是会进入硬件异常的。

正常下面这种写法会硬件异常(在例子V6-001_移植SEGGER的硬件异常分析机制里面):

  1. volatile unsigned int* p;
  2. unsigned int n;
  3. p = (unsigned int*)0xCCCCCCCC;
  4. n = *p;

  5. (void)n;
复制代码


但是注释掉bsp.C初始化代码里面的函数和main.C里面的LED闪烁函数,不进入硬件异常了

  1. bsp_InitExtIO();    /* 初始化扩展IO */
  2. bsp_InitLed();       /* 初始化LED */        
复制代码


调试状态,也都执行到上面的测试代码了,IAR和MDK都正常了。
回复

使用道具 举报

19

主题

272

回帖

329

积分

高级会员

积分
329
发表于 2020-4-21 12:15:56 | 显示全部楼层
我还遇到过另一个诡异的事情,用MDK调试程序没问题,复位,运行也没问题。但是使用Ozone调试时一点复位就会进hardfault。附加到正在运行的程序上就没问题。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
 楼主| 发表于 2020-4-21 14:00:20 | 显示全部楼层
xieyang__ 发表于 2020-4-21 12:15
我还遇到过另一个诡异的事情,用MDK调试程序没问题,复位,运行也没问题。但是使用Ozone调试时一点复位就会 ...

晚上我也用Ozone测试下试试。
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2020-5-3 09:51:21 | 显示全部楼层
这个有可能是使用DMA引起的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 04:15 , Processed in 0.036389 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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