Toggle navigation
首页
问答
文章
话题
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
memheap
rt_memheap_free 引起的死机
发布于 2021-12-27 19:46:07 浏览:369
我使用了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之后,却并不会发生错误。
查看更多
5
个回答
默认排序
按发布时间排序
张世争
2021-12-27
学以致用
show me your bad code
出出啊
2021-12-28
It is Not the Mountain We Conquer, but Ourselves
写个简单测试,屏蔽掉上面你的应用代码。 新的测试只有 malloc memset free 。申请多个空间,每个大小和写的内容都不一样。在这种情况下观察 free 有没有问题。有问题再提出来,没问题就删自己添加的应用代码吧。
whj467467222
认证专家
2021-12-28
开源,分享,交流,共同进步
打个内存断点,看看是在哪个地方被修改的。
文武兵兵
2021-12-28
This guy hasn't written anything yet
有一个疑惑我代码中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
This guy hasn't written anything yet
你好,我最近也遇到这个问题,我谢谢问问你是怎么确定pc和lr地址对应的是哪一行代码?我只能通过map文件了解一个大概的执行到那个地方,使用的是rt-studio。
撰写答案
登录
注册新账号
关注者
0
被浏览
369
关于作者
文武兵兵
This guy hasn't written anything yet
提问
25
回答
67
被采纳
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
五分钟玩转RT-Thread新社区
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
国产MCU移植系列教程汇总,欢迎查看!
最新文章
1
[ART smart 开发板] SDL测试
2
【先楫HPM6750测评】RT-Thread SDIO驱动和文件系统
3
N9H30 HMI开发板触摸屏误触发问题,及解决办法
4
HPM6750 Bootloader
5
LVGL例程学习——anim
热门标签
RT-Thread Studio
串口
LWIP
FinSH
ART-Pi
Env
AT
SPI
Bootloader
USB
Hardfault
CAN
文件系统
studio
DMA
RT-Thread
线程
Nano
stm32
ota
MQTT
SCons
rtthread
ESP8266
freemodbus
I2C
UART
软件包
flash
cubemx
RTC
定时器
W5500
FAL
BSP
rt-smart
rtt
PWM
AB32VG1
ADC
编译报错
msh
socket
SDIO
C++
dfs
at_device
SFUD
MicroPython
RT-Studio
本月问答贡献
小小李sunny
38
个答案
10
次被采纳
出出啊
30
个答案
7
次被采纳
lchnu
11
个答案
5
次被采纳
红枫
23
个答案
4
次被采纳
rcp
16
个答案
4
次被采纳
本月文章贡献
张世争
11
篇文章
30
次点赞
吉利咕噜2022
7
篇文章
10
次点赞
xusiwei1236
3
篇文章
10
次点赞
crystal266
3
篇文章
7
次点赞
Liutao
3
篇文章
4
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部