打印

stm32F4报硬件错误

[复制链接]
1172|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hclwj181|  楼主 | 2019-6-24 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

      最近使用stm32F4与FreeRTOS,发现程序有时候进硬件错误,有时候又很正常,郁闷的要死,Jlink调试,打开call+stack  stm32报硬件错误,0x8000bdc,也不知道是个什么意思???无语啊,尼玛,最怕这种时正常时不正常的情况,有了解的大侠,指导一二,堆栈用串口显示,还有很多剩余,所以排除堆栈溢出情况

使用特权

评论回复

相关帖子

沙发
caoenq| | 2019-6-24 17:28 | 只看该作者
不上系统会出错吗?

使用特权

评论回复
板凳
zchong| | 2019-6-24 20:46 | 只看该作者
找一本讲cortex-m的内核的书,看看相关寄存器就差不多了

使用特权

评论回复
地板
m564522634| | 2019-6-24 23:05 | 只看该作者
我觉得你的FreeRTOS配置的问题,看下FreeRTOS中断优先级的判断吧。 硬件错误报的是什么 硬件错误了,你都没写清楚了

使用特权

评论回复
5
hclwj181|  楼主 | 2019-6-25 08:12 | 只看该作者
m564522634 发表于 2019-6-24 23:05
我觉得你的FreeRTOS配置的问题,看下FreeRTOS中断优先级的判断吧。 硬件错误报的是什么 硬件错误了,你都没 ...

硬件错误计时报这个call+stack  stm32报硬件错误,0x8000bdc,没有具体出错函数,所以不知道怎么找问题了

使用特权

评论回复
6
hclwj181|  楼主 | 2019-6-25 08:13 | 只看该作者
m564522634 发表于 2019-6-24 23:05
我觉得你的FreeRTOS配置的问题,看下FreeRTOS中断优先级的判断吧。 硬件错误报的是什么 硬件错误了,你都没 ...

我觉得有可能是,因为不加入定时器中断的时候,什么问题没有,加入了定时器之后,就开始出现了硬件错误

使用特权

评论回复
7
hclwj181|  楼主 | 2019-6-25 08:14 | 只看该作者
caoenq 发表于 2019-6-24 17:28
不上系统会出错吗?

不清楚,我刚开始写程序的时候,就上了系统,不过刚开始没有出现硬件错误,加了定时器之后,就会出现了

使用特权

评论回复
8
caoenq| | 2019-6-25 08:36 | 只看该作者
hclwj181 发表于 2019-6-25 08:14
不清楚,我刚开始写程序的时候,就上了系统,不过刚开始没有出现硬件错误,加了定时器之后,就会出现了 ...

用了定时器中断了吧,看看定时器中断的优先级与FreeRTOS配置的中断优先级是否冲突,或者是堆栈溢出之类的,硬件错误基本都是堆栈溢出、数组越界常见

使用特权

评论回复
9
hclwj181|  楼主 | 2019-6-25 10:14 | 只看该作者
caoenq 发表于 2019-6-25 08:36
用了定时器中断了吧,看看定时器中断的优先级与FreeRTOS配置的中断优先级是否冲突,或者是堆栈溢出之类的 ...

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
选择4配置,下面是FreeRTOS配置
#ifdef __NVIC_PRIO_BITS
        #define configPRIO_BITS                       __NVIC_PRIO_BITS
#else
        #define configPRIO_BITS                       4                  
#endif
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY                        15      
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY        5
,定时器配置成
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x05;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x00;        
定时器冲突应该会报这个函数错误

使用特权

评论回复
10
hclwj181|  楼主 | 2019-6-27 12:34 | 只看该作者
把定时器调成1ms中断一次,程序就直接报硬件错误,call+stack中显示prvCheckTasksWaitingTermination这个,,搞死人了

使用特权

评论回复
11
星星爸| | 2019-7-1 16:55 | 只看该作者
裸跑就不会出现这么多乱七八糟的问题。之前也用过FreeRTOS,感觉不是很稳定,出问题不知如何下手,后面改回裸跑了。

使用特权

评论回复
12
hclwj181|  楼主 | 2019-7-3 08:38 | 只看该作者
星星爸 发表于 2019-7-1 16:55
裸跑就不会出现这么多乱七八糟的问题。之前也用过FreeRTOS,感觉不是很稳定,出问题不知如何下手,后面改回 ...

裸跑定时器中断确实没问题,不过我把带FreeRTOS程序下回以前的F4的板子,就没有硬件错误了。裸跑两个板子都没为题,搞得我都不知道咋回事了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

720

帖子

9

粉丝