讨论:MQX系统中内存的alloc与Free

2020-02-21 21:26发布

今天在调试的时候,出现一个很奇怪的问题,我在初始化线程中初始化SPI Flash驱动的时候,申请了一块Buff做为缓存,结果在我要应用的时候,发现那块缓存不翼而飞了,造成程序死机,查了整整一下午,才发现是因为我的初始化线程做完事情后自己释放了,然后把在线程中申请的所有内存全部也释放了!

我没注意过其它的操作系统有没有这种现像?所以想跟大家一起讨论一下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
wangpengcheng
1楼-- · 2020-02-23 14:59
zhangchaoying 发表于 2014-8-24 23:51
这是原则性错误,期待明早出答案。

或许我应该将驱动放到BSP中去编译,呵呵!这样申请的内存就不会被干掉了!
tim
2楼-- · 2020-02-23 20:25
我觉得应该公用的缓存在驱动里面开,专用的缓存在应用里面开
myxiaonia
3楼-- · 2020-02-24 00:39
sunnyqd 发表于 2014-8-24 23:39
MQX好像是有这功能的,RTX没有

是的,rtx没有,一般进程结束会释放资源,没想到线程结束也是这样
wangpengcheng
4楼-- · 2020-02-24 03:10
tim 发表于 2014-8-25 00:12
我觉得应该公用的缓存在驱动里面开,专用的缓存在应用里面开

我就是在全局内存池里开的,呵呵!
sunnyqd
5楼-- · 2020-02-24 03:23
 精彩回答 2  元偷偷看……
浪里白条
6楼-- · 2020-02-24 08:02
MQX不懂,搬板凳来学习。

一周热门 更多>