Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
memheap
rt_memheap_free 引起的死机
发布于 2021-12-27 19:46:07 浏览:1428
订阅该版
我使用了rtthread v4.0.4版本的内核, 并且开启了`RT_USING_MEMHEAP`和`RT_USING_MEMHEAP_AS_HEAP` 本来是将内部ram和sdram合并成一个大的ram空间。 但是我在 在stm32f429 stm32f407芯片上使用时申请了三个4096字节大小的空间,使用完毕后释放这个空间时遇到msh打印死机的情况。 ``` psr: 0x01000000 r00: 0x20800013 r01: 0x20008010 r02: 0x20001128 r03: 0xffffffff r04: 0x200043c8 r05: 0x200010e4 r06: 0x20008010 r07: 0x20006c10 r08: 0x00000000 r09: 0x00000000 r10: 0xdeadbeef r11: 0xdeadbeef r12: 0x08014b67 lr: 0x0801484f pc: 0x08013c8e hard fault on thread: main thread pri status sp stack size max used left tick error tidle0 31 ready 0x00000054 0x00000400 08% 0x00000003 000 main 10 running 0x000001c4 0x00001000 22% 0x00000012 000 bus fault: SCB_CFSR_BFSR:0x04 IMPRECISERR ``` 每次死机都是在这个点,PC寄存器和LR寄存器都是这个值。 通过调试工具我锁定了具体的代码函数 `lr: 0x0801484f`是 ipc.c 中 489行的 ``` rt_hw_interrupt_enable(temp); ``` `pc: 0x08013c8e`是memheap.c中 644行的 ``` new_ptr->next_free->prev_free = new_ptr->prev_free; ``` 我经过反复测试,这个问题一直存在。 但是我关闭了memheap之后,却并不会发生错误。
查看更多
6
个回答
默认排序
按发布时间排序
张世争
2021-12-27
学以致用
show me your bad code
出出啊
2021-12-28
恃人不如自恃,人之为己者不如己之自为也
写个简单测试,屏蔽掉上面你的应用代码。 新的测试只有 malloc memset free 。申请多个空间,每个大小和写的内容都不一样。在这种情况下观察 free 有没有问题。有问题再提出来,没问题就删自己添加的应用代码吧。
whj467467222
认证专家
2021-12-28
开源,分享,交流,共同进步
打个内存断点,看看是在哪个地方被修改的。
文武斌
2021-12-28
这家伙很懒,什么也没写!
有一个疑惑我代码中malloc出一个4096的内存,然后传给一个函数去处理 ```c uint8_t * rw_buffer = rt_malloc(4096); uint32_t pos = 10; uint32_t len = 20; function1(rw_buffer + pos + len ) ``` 居然和 ```c function1(&rw_buffer[(pos + len)] ) ``` 效果不一样
丰仔记
2022-01-25
这家伙很懒,什么也没写!
你好,我最近也遇到这个问题,我谢谢问问你是怎么确定pc和lr地址对应的是哪一行代码?我只能通过map文件了解一个大概的执行到那个地方,使用的是rt-studio。
WONG
2023-08-04
这家伙很懒,什么也没写!
你好,我也遇到这个问题,请问解决了吗
撰写答案
登录
注册新账号
关注者
0
被浏览
1.4k
关于作者
文武斌
这家伙很懒,什么也没写!
提问
27
回答
74
被采纳
2
关注TA
发私信
相关问题
1
关于利用0x68000000作为扩展sram?
2
STM32F407 添加外部 SRAM
3
RTT内存使用情况的问题
4
ramfs中的memheap问题
5
rt_system_heap_init函数加入多块物理内存是否有计划解决
6
list_memheap 显示的 max used size
7
求助,外部SDRAM使用memheap管理后系统起不来了
8
C++应用memheap内存管理方法挂死
9
探索者f407 使用rt_malloc分配外部sram作为lvgl缓存异常?
10
需要使能memheap在rtstudio中如何设置
推荐文章
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
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部