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

2020-02-21 21:26发布

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

我没注意过其它的操作系统有没有这种现像?所以想跟大家一起讨论一下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
DiaoMao_Huang
1楼-- · 2020-02-24 10:10

MQX不懂,来学习。
wangpengcheng
2楼-- · 2020-02-24 15:17
tim 发表于 2014-8-25 00:12
我觉得应该公用的缓存在驱动里面开,专用的缓存在应用里面开

又一次发现MQX的强大,呵呵,其实我用的分配函数是_mem_malloc,刚才发现他还有一个_mem_malloc_system函数,换掉之后没有问题了,真是你说的这样,呵呵!
myxiaonia
3楼-- · 2020-02-24 16:06
sunnyqd 发表于 2014-8-25 10:29
MQX很强大,我刚看到它的资料的时候,很吃惊

哦,这样子啊,貌似本坛还没有比较结果啊

以前eric2013有过几个rtos的比较,rtx、freertos、ucos等等,但是没有mqx的
sunnyqd
4楼-- · 2020-02-24 19:10
 精彩回答 2  元偷偷看……
wxfje
5楼-- · 2020-02-24 23:12
wangpengcheng 发表于 2014-8-25 11:15
又一次发现MQX的强大,呵呵,其实我用的分配函数是_mem_malloc,刚才发现他还有一个_mem_malloc_system函 ...

看来楼主第一次申请内存是在线程内申请的,而不是申请全局的。那我想问下,用C自带的申请内存是不是就是全局的申请呢
wxfje
6楼-- · 2020-02-25 01:42
wangpengcheng 发表于 2014-8-25 11:15
又一次发现MQX的强大,呵呵,其实我用的分配函数是_mem_malloc,刚才发现他还有一个_mem_malloc_system函 ...

看来楼主第一次申请内存是在线程内申请的,而不是申请全局的。那我想问下,用C自带的申请内存是不是就是全局的申请呢

一周热门 更多>