找回密码
 注册
搜索
查看: 6469|回复: 23

[讨论] 急!!求解RAM空间不足解决办法...

[复制链接]
发表于 2009-10-17 18:03:58 | 显示全部楼层 |阅读模式
我工程编译后的LIS文件中显示:

    Total RO  Size(Code + RO Data)             14525806 (14185.36kB)
    Total RW  Size(RW Data + ZI Data)           4241172 (4141.77kB)
    Total ROM Size(Code + RO Data + RW Data)   14576068 (14234.44kB)

用的是4M的RAM空间,不知为何编译过了?Download到机器中使用也没问题。
但是应该有隐患,请问有没有什么方法能够把空间降下来???
发表于 2009-10-18 12:47:39 | 显示全部楼层
减少些大的全局变量
点评回复

使用道具 举报

 楼主| 发表于 2009-10-18 20:01:26 | 显示全部楼层
谢谢,具体到可以减小哪些?
我已经减过WAP的50kb的空间,编译过是上面的结果,先前是超过了100kb
请问能减系统DEBUG申请的空间么?
我又减了
        #define GLOBAL_MEM_SIZE         ( 340*1024)
        #define GLOBAL_DEBUG_MEM_SIZE   ( 120*1024)
的空间,各减了20kb.


请问有什么隐患么???
点评回复

使用道具 举报

发表于 2009-10-18 20:54:35 | 显示全部楼层
关注 中 我是新手
点评回复

使用道具 举报

发表于 2009-10-18 21:47:23 | 显示全部楼层
用的是4M的RAM空间,不知为何编译过了?Download到机器中使用也没问题。
------------那是因为有内存复用。
点评回复

使用道具 举报

发表于 2009-10-19 08:08:14 | 显示全部楼层
建议减少某些任务的堆栈大小,外加可以减少某些不要的模块
点评回复

使用道具 举报

 楼主| 发表于 2009-10-19 11:59:54 | 显示全部楼层
那么4M的RAM,

  Total RW  Size(RW Data + ZI Data)           4241172 (4141.77kB)

机器测试正常,有没有隐患呢?
点评回复

使用道具 举报

发表于 2009-10-20 13:22:42 | 显示全部楼层
Application的压力测试没有问题么?
点评回复

使用道具 举报

 楼主| 发表于 2009-10-20 14:25:31 | 显示全部楼层
以下是引用KTM在2009-10-20 13:22:42的发言:
Application的压力测试没有问题么?

我们的测试很机械,请问怎么测?
点评回复

使用道具 举报

发表于 2009-10-20 16:50:54 | 显示全部楼层
呵呵,为什么不是4096提示出错,而超过了使用正常,因为MTK的CPU是有片内SRAM的,这个空间在不同平台上不同。打个比方6225上的ISRAM是48KB,加上另外一些MCU的RAM,一共可用的片内RAM空间72KB,这些空间独立于MCP的RAM之外。所以可用的总RAM空间是4168KB。如果愿意花点时间把LIS和SCAT文件对应起来看一下,就明白了。
WAP的可用RAM减小,并没有什么大的问题,如果说有什么隐患,就是浏览的时候,一些复杂排版的WHTML网页无法显示而已。
点评回复

使用道具 举报

 楼主| 发表于 2009-10-20 17:01:24 | 显示全部楼层
以下是引用Anonymous在2009-10-20 16:50:54的发言:
呵呵,为什么不是4096提示出错,而超过了使用正常,因为MTK的CPU是有片内SRAM的,这个空间在不同平台上不同。打个比方6225上的ISRAM是48KB,加上另外一些MCU的RAM,一共可用的片内RAM空间72KB,这些空间独立于MCP的RAM之外。所以可用的总RAM空间是4168KB。如果愿意花点时间把LIS和SCAT文件对应起来看一下,就明白了。
WAP的可用RAM减小,并没有什么大的问题,如果说有什么隐患,就是浏览的时候,一些复杂排版的WHTML网页无法显示而已。


高人!谢谢指点迷津。

        #define GLOBAL_MEM_SIZE         ( 340*1024)
        #define GLOBAL_DEBUG_MEM_SIZE   ( 120*1024)
各减20K有没有什么问题?
或者说减完之后可以怎样验证有没有问题?
点评回复

使用道具 举报

发表于 2009-10-20 23:19:36 | 显示全部楼层
个人理解,link的时候不报错就不用管了,没啥问题

关于缩小RAM的问题,建议是:
1. 看MTK默认版本是否OK,RAM用了多少
2. 如果MTK软件本身4M RAM就不够,考虑用大的flash,或者关feature(在make file里关flag)
3. MTK软件OK,自己改出来的,评估新功能的RAM消耗是否正常,正常的话,还是建议用大flash
4. 如果不正常,那就看lis文件,查找内存消耗过大的原因了

没有对相关功能吃透前,不建议直接找个大buffer就砍。可能今天砍buffer花半小时,以后出几个bug让你查一个星期
点评回复

使用道具 举报

发表于 2009-10-21 08:02:10 | 显示全部楼层
以下是引用caobaokang在2009-10-20 17:01:24的发言:



高人!谢谢指点迷津。

                                                                #define GLOBAL_MEM_SIZE                                                                 ( 340*1024)
                                                                #define GLOBAL_DEBUG_MEM_SIZE                 ( 120*1024)
各减20K有没有什么问题?
或者说减完之后可以怎样验证有没有问题?



这部分内存是给task用的,会留空间给客户创建task使用,如果你的工程中没有创建新的task,大胆减少好了。由于task在系统初始化得时候就已经创建好,如果减少了这部分RAM空间,能够开机的话,那就没问题。
点评回复

使用道具 举报

 楼主| 发表于 2009-10-21 15:13:56 | 显示全部楼层
谢谢楼上各位!帮助很大!
点评回复

使用道具 举报

发表于 2009-10-22 11:39:49 | 显示全部楼层
好贴,好回答。学习了
点评回复

使用道具 举报

发表于 2009-10-24 09:30:28 | 显示全部楼层
学习啦,thx
点评回复

使用道具 举报

发表于 2010-11-9 09:41:01 | 显示全部楼层
我128+32的 编译出来 ram3.5M 呵呵!
点评回复

使用道具 举报

发表于 2010-11-11 16:38:03 | 显示全部楼层
才看到
我的RAM减小到了 3491kB 了
点评回复

使用道具 举报

发表于 2010-11-13 16:35:36 | 显示全部楼层
再教你两招:
第一个是减小wave table的size,在project_name.mak文件中设置WAVETABLE_VER=WT70K。(默认情况开出去是WT600K,设为70K以后可以减小几百K的空间)

第二个方法是利用DEMAND Paging的按需加载机制。即demand paging rom中的内容是在需要的时候加载到RAM中去的。不过使用demand paging rom有一些限制:
            对速度或者实时性有要求的code和data不能放到demand paging rom。
            HISR代码或者HISR调用的代码不可以放到里面去。
            开机过程中会用到的内容不能放到里面去
            无论把什么内容放到里面去都应该做大量测试保证稳定性,例如如果将铃声资源放进去,就要做相关设置铃声播放铃声的测试。
点评回复

使用道具 举报

发表于 2010-11-15 10:35:49 | 显示全部楼层
这样的好帖不该下沉...
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-11-23 17:22 , Processed in 0.064246 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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