Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Hardfault
串口
死机
多串口设备同时工作死机
发布于 2021-05-25 15:28:04 浏览:1561
订阅该版
[tocm] 项目上遇到的奇怪问题,两个月了没有进展,发这里大家支支招。 ## 硬件平台 GD32F450VGT6(和STM32F407架构一样,用的STM32F407的HAL库) ## RTT版本 3.1.5 ## 问题描述 我的系统上有5个串口设备,1-DEBUG口 2-串口屏 3-无 4-串口WIFI模块 5-串口电表 6-刷卡板,现在只要屏和WIFI同时工作,系统跑十个小时左右就会死机,有时候打印hardFault后死机,有时候连打印都没有直接挂死。 但是,只单独跑其中一个模块一点问题没有。我试过把WIFI模块去掉跑72小时没死,或者把屏去掉跑72小时也没事,其他串口设备保持工作状态。不知道是不是因为GD的库和STM32的库在串口上有差别,对照datasheet寄存器也没看出有啥特别的不同。 下面是hardFault的一个Log。有哪位大神遇到同样问题的给个思路,谢了! ``` r00: 0x20001af8 r01: 0x00000800 r02: 0x2101e9d4 r03: 0x2000e338 r04: 0x00000800 r05: 0x20003148 r06: 0x00000000 r07: 0x00000000 r08: 0x080b2828 r09: 0x20001af8 r10: 0x00000000 r11: 0x00000000 r12: 0xffffffff lr: 0x080aa9c7 pc: 0x080ac4f2 hard fault on thread: main thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- pt02 24 ready 0x00000530 0x00001000 53% 0x00000003 000 pt01 24 suspend 0x00000224 0x00002000 29% 0x00000002 000 pt00 24 ready 0x00000170 0x00000c00 59% 0x00000003 -02 tshell 20 suspend 0x0000020c 0x00001000 50% 0x00000006 000 esp_net 16 suspend 0x000001f8 0x00000800 67% 0x0000000d 000 at_clnt 9 suspend 0x000000f8 0x00000600 70% 0x00000004 000 sys_work 23 suspend 0x0000010c 0x00000800 66% 0x00000001 000 phy 30 ready 0x000000bc 0x00000200 36% 0x00000001 -02 tcpip 10 suspend 0x000000f0 0x00000400 58% 0x00000008 000 etx 12 suspend 0x000000b0 0x00000400 17% 0x0000000d 000 erx 12 suspend 0x000000b8 0x00000400 17% 0x00000010 000 tidle 31 ready 0x00000080 0x00000400 19% 0x00000004 000 main 10 ready 0x00000240 0x00001000 48% 0x00000010 000 FPU active! bus fault: SCB_CFSR_BFSR:0x82 PRECISERR SCB->BFAR:A4088A88 ``` ### 问题追加 刚开始我也很怀疑是内存不够了,专门打了内存信息出来,下面LOG是出问题前的内存信息。我的MCU内存是192K的,应该是够用的。 ``` I/ocpprpc [05-23 00:53:12] ocpp16.c....pt02---301...prebuffer=1024 I/ocpprpc [05-23 00:53:12] ocpp16.c....pt02---305 I/ocpprpc [05-23 00:53:12] >>> [2,"1621731192190","MeterValues",{"connectorId":1,"transactionId":16313,"meterValue":[{"timestamp":"2021-23T00:53:12Z","sampledValue":[{"value":"15520","context":"Sample.Periodic","measurand":"Energy.Active.Import.Register","unit":"Wh"},{"val:"0.9","context":"Sample.Periodic","measurand":"Current.Import","unit":"A"},{"value":"232.6","context":"Sample.Periodic","measurand":"Vole","unit":"V"},{"value":"51","context":"Sample.Periodic","measurand":"Temperature"}]}]}] I/websocket [05-23 00:53:12] >>>>>> rws send 484 bytes I/websocket [05-23 00:53:13] <<<<<<< rws recv 24 bytes I/ocpprpc [05-23 00:53:14] <<< [3,"1621731192190",{}] I/ocpp16 [05-23 00:54:13] ocpp16.c.............Heartbeat1() total memory: 187644 used memory : 92804 maximum allocated memory: 98556 available memory: 94840 memory heap address: heap_ptr: 0x200022e4 lfree : 0x2000d944 heap_end: 0x2002fff0 I/ocpprpc [05-23 00:54:13] ocpp16.c....pt02---301...prebuffer=1024 I/ocpprpc [05-23 00:54:13] ocpp16.c....pt02---305 I/ocpprpc [05-23 00:54:13] >>> [2,"162173125396","Heartbeat",{}] I/websocket [05-23 00:54:13] >>>>>> rws send 39 bytes I/websocket [05-23 00:54:14] <<<<<<< rws recv 59 bytes I/ocpprpc [05-23 00:54:14] <<< [3,"162173125396",{"currentTime":"2021-05-23T00:54:16Z"}] psr: 0x81000000 r00: 0x31333631 r01: 0x00000000 r02: 0x00000001 r03: 0x2000e400 r04: 0x00000000 r05: 0x20001b00 r06: 0x00000001 r07: 0x40030134 r08: 0x00000012 r09: 0x20001b00 r10: 0xa0000000 r11: 0x406d1999 r12: 0xa0da3332 lr: 0x080abbdf pc: 0x080ad0b8 hard fault on thread: pt02 thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- pt03 24 suspend 0x0000032c 0x00000c00 62% 0x00000003 000 pt02 24 ready 0x0000041c 0x00001000 64% 0x00000005 000 pt01 24 suspend 0x00000198 0x00002000 30% 0x00000001 000 pt00 24 suspend 0x00000170 0x00000c00 53% 0x00000005 000 tshell 20 suspend 0x00000210 0x00001000 47% 0x00000006 000 ec20_net 16 suspend 0x00000204 0x00000800 64% 0x00000013 000 at_clnt 9 suspend 0x000000f8 0x00000600 70% 0x00000001 000 sys_work 23 suspend 0x0000010c 0x00000800 50% 0x00000007 000 phy 30 suspend 0x000000bc 0x00000200 47% 0x00000002 000 tcpip 10 suspend 0x000000f0 0x00000400 89% 0x00000006 000 etx 12 suspend 0x000000ac 0x00000400 17% 0x0000000e 000 erx 12 suspend 0x000000b4 0x00000400 62% 0x00000005 000 tidle 31 ready 0x00000064 0x00000400 12% 0x00000002 000 main 10 suspend 0x00000368 0x00001000 51% 0x00000002 000 FPU active! bus fault: SCB_CFSR_BFSR:0x82 PRECISERR SCB->BFAR:31333631 ```
查看更多
5
个回答
默认排序
按发布时间排序
flashman2002
2021-05-25
这家伙很懒,什么也没写!
有理由怀疑屏和WIFI同时工作时你MCU的RAM不够用了。请使用free命令检查一下内存资源。
zhkag
2021-05-25
这家伙很懒,什么也没写!
这种死机错误一般没啥好方法,只能一点一点去排查,一般是内存指向问题,内存不足,资源被释放等,导致的错误
小小李sunny
2021-05-25
这家伙很懒,什么也没写!
有可能程序里某些内存未能及时完全释放,随着时间被占用的内存累积,导致内存不足吧。可以把内存使用信息实时打印出来做个监控看看。
fhqmcu
认证专家
2021-05-26
个人博客:https://blog.csdn.net/fhqlongteng
告诉你一个查找办法,看这个文章 https://blog.csdn.net/fhqlongteng/article/details/112954059?spm=1001.2014.3001.5501
cdma123
2021-06-21
这家伙很懒,什么也没写!
有没有两个串口需要同时操作同一个临界区的问题,试试加锁
撰写答案
登录
注册新账号
关注者
0
被浏览
1.6k
关于作者
suntao_222
这家伙很懒,什么也没写!
提问
6
回答
1
被采纳
0
关注TA
发私信
相关问题
1
RTT1.0,STM32调试时会跑到HardFault【已解决】,出现新问题
2
新手请教关于hardfault怎么查
3
github最新版本库中stm32f0X分支,运行切换任务时候出现hardfault[已解决]
4
实现iap功能,bootloader使用了rtt操作系统,在跳转到app代码的时候提示出现hardfault的问题
5
ymodem在on_begin内发送can无法断开连接,而且RTT会报hardfault
6
挂载UFFS文件系统执行到退出_BuildTreeStepOne函数时hardfault异常
7
STM32F1+RTT串口接收中断进入hardfault
8
STM32F746NG随机进入hardfault(已解决)
9
[已解决]自已建了个STM32F103的MDK工程,初始化时总是进入HardFault,求教!
10
将 Cortex M3 的 hardfault 处理与 M4、M7、M0 保持一致?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用RC522软件包驱动FM1722
2
常量数据类型和表达式陷阱分享
3
进行i2c驱动移植的经验总结
4
在VSCode中使用clang-format
5
我该如何使用这个微雪的WIFI400 WIFI-LPB-100在rtt里或者我该怎样为它开发驱动
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
289
次被采纳
张世争
809
个答案
175
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部