找回密码
 注册
搜索
查看: 1156|回复: 18

[讨论] 【探讨】【Idle下大块内存分配问题】

[复制链接]
发表于 2009-9-3 10:18:49 | 显示全部楼层 |阅读模式
  【PLATFORM】MTK622507B
  【Phonetype】slide
  Idle下原有两层,我新建一图层(240X206)在上面画自己的东西。
  在 entry Idle分配内存,Exit idle free.
  直接创建层,不能提供足够的空间;于是 using outside memory.
  开始使用:mmi_frm_scrmem_alloc 下滑盖时assert在
      wgui_categories_util.c 中 MMI_ASSERT(mmi_frm_scrmem_is_all_free()) .
  换为:med_alloc_ext_mem下滑盖时会死在 med_ext_smalloc.c 中 free 时有问题。
  后来我建立一个内存池,在其中分配内存,开始貌似解决问题;
  可经测试完整滑盖12、13次还是会assert在 gdi_layer.c中 log 显示大概:Can't create layer.
  
      【请高手分析一下引起这么多Assert的原因,指教一下还有没有其他的解决方法?】
[此贴子已经被作者于2009-9-3 11:59:38编辑过]
发表于 2009-9-3 14:24:28 | 显示全部楼层
申请med内存是可以的
点评回复

使用道具 举报

发表于 2009-9-3 14:44:47 | 显示全部楼层
[em01][em02][em03]



上海手机工程师交流群:56527403
加入时注明工作性质,如结构MD、软件SW等
点评回复

使用道具 举报

 楼主| 发表于 2009-9-3 15:02:54 | 显示全部楼层
以下是引用dfdfdf在2009-9-3 14:24:28的发言:
申请med内存是可以的


是说使用 med_alloc_ext_mem 吗?

可是使用:med_alloc_ext_mem下滑盖时会死在 med_ext_smalloc.c 中 free 时有问题
点评回复

使用道具 举报

 楼主| 发表于 2009-9-3 21:24:27 | 显示全部楼层
顶起~[em08]
点评回复

使用道具 举报

发表于 2009-9-3 23:32:39 | 显示全部楼层
看来又被mtk忽悠了!
点评回复

使用道具 举报

 楼主| 发表于 2009-9-4 08:57:32 | 显示全部楼层
以下是引用dollfacedboy在2009-9-3 23:32:39的发言:
看来又被mtk忽悠了!


怎么说?请详细点,O(∩_∩)O谢谢
点评回复

使用道具 举报

发表于 2009-9-4 11:22:30 | 显示全部楼层
以下是引用eastvenuslee在2009-9-3 15:02:54的发言:


是说使用 med_alloc_ext_mem 吗?

可是使用:med_alloc_ext_mem下滑盖时会死在 med_ext_smalloc.c 中 free 时有问题

滑盖时有需要申请内存的功能?
        if(NULL != buf_ptr)
        {
            med_free_ext_mem((void** )&buf_ptr);        
            buf_ptr = NULL;
        }
free的函数没写错?
点评回复

使用道具 举报

 楼主| 发表于 2009-9-4 12:14:17 | 显示全部楼层
搞定了。多谢几位的关注和帮助。
问题出在滑盖时多进入了一次 Idle ,导致我的分配、释放不匹配引起了黑屏……
再次感谢几位~
点评回复

使用道具 举报

发表于 2009-9-4 19:29:56 | 显示全部楼层
最后是用哪个分配函数搞定的?
点评回复

使用道具 举报

发表于 2009-9-4 21:30:04 | 显示全部楼层
其实还是有隐患的!
点评回复

使用道具 举报

 楼主| 发表于 2009-9-4 21:32:55 | 显示全部楼层
分配函数没有问题,我想
mmi_frm_scrmem_alloc
med_alloc_ext_mem
或者自己建立内尺池都应该是可以的,
只要调用相应的free就应该没问题。
点评回复

使用道具 举报

 楼主| 发表于 2009-9-4 21:35:38 | 显示全部楼层
以下是引用dollfacedboy在2009-9-4 21:30:04的发言:
其实还是有隐患的!


怎么说?隐患在哪里?又怎样避免呢?
请大家畅所欲言,讨论起来[em06]
点评回复

使用道具 举报

 楼主| 发表于 2009-9-6 20:03:36 | 显示全部楼层
大家继续呀。
畅所欲言……
点评回复

使用道具 举报

发表于 2009-9-7 23:03:34 | 显示全部楼层
不了解这个机制!不过做了多年的os,看你上面的gdi_xxx应该是graphic device interface吧!如果是的话,我想你这里面应该跑的至少有两个task,所以你如果是用的gdi的接口,不知道你有没有考虑到做mutex!不然会有死锁现象出现!
点评回复

使用道具 举报

发表于 2009-9-7 23:08:00 | 显示全部楼层
楼上高手!
点评回复

使用道具 举报

 楼主| 发表于 2009-9-8 09:04:38 | 显示全部楼层
是的,mtk有专门的mutex机制,在里面已经实现了。
点评回复

使用道具 举报

 楼主| 发表于 2009-9-11 19:11:45 | 显示全部楼层
~寂寞 + 寂静~
点评回复

使用道具 举报

发表于 2010-6-29 10:06:31 | 显示全部楼层
无误~~看的不是很明白~··
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-2-26 06:59 , Processed in 0.048104 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表