请问一下有没有遇到跨内存申请和释放过程中出现断言的,申请的内存比较大时,刚好跨了内存,释放的时候就会出现错误
查看更多
memheap 只会在一个内存块中申请与释放,也就是不存在跨两个内存的现象,即使两个内存块的地址连续。这种情况下,排查思路:
(1)内存的地址是否有重叠,SRAM 的内存,要移除被占用的内存作为heap,也就是不能把整个内存作为heap,因为有些静态的内存等占用, heap 的空间应该是 空闲的内存
(2)重复释放内存,比如内存 多次释放,这可以软件调试验证,并且确认内存的地址,
(3)是否有越界操作造成内存块被写坏
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
可能我表达不清,不是跨两个内存申请,我的意思是,但我内部ram用完时,准备申请sdram时会出现这个问题,这两天我测试发现,当我申请的内存大小随机时,会触发这个bug,但我按1k,10k这样子去申请时,可以顺利申请和释放。
这个是不对齐申请

这个是一次申请1k

逛论坛发现有其他人也有这个问题,但是还没解决,希望有人帮忙一起查找下原因
https://club.rt-thread.org/ask/question/a923426baad888bf.html
问题可以描述为:使用 SDRAM 作为 heap 时分配 其他的内存会产生死机?
当前系统的 字节对齐是 4 、8 、还是其他?
SDRAM 可能要配置,这个对齐可以改一下确认