网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 培训课程 >> C5000 >> 文章正文
  统计内存使用量           ★★★ 【字体:
统计内存使用量
作者:Free    文章来源:本站原创    点击数:    更新时间:2008-2-29    

前些天在5510DSK上将下个项目需要用到的声音处理程序全部用C语言写好了。5510的内存有160k之多,而最终的产品为了降低成本,会使用内存更小的芯片。这样就需要统计现在的程序的内存使用量。

直接看MAP文件的MEMORY CONFIGURATION可以知道整个工程占用了多少内存,但是由于在5510DSK上实现的功能并不都是必须的,因此有必要统计每项功能所占用的内存量。这样就需要统计每个功能用到的全局变量的大小和函数的大小。

在MAP后面有以内存地址为顺序的符号列表,包括全局变量和函数。每个符号所占用的内存大致上可以通过其地址和下个符号的地址的差值获得。如果存在内存对齐(align)的话,就会出现一些偏差。每个内存区域最后一个符号的大小需要特别计算:

占用内存量=内存区域开始地址+内存区域使用量-符号地址

每个区域的开始地址和使用量在MAP文件头的MEMORY CONFIGURATION中列出。

手 工进行上述统计的工作量是相当大的,因此我写了一个程序首先分析MAP文件都后半部分,计算出由符号名映射到所占用内存大小的一个哈希表。然后另外写一个 程序分析C语言源文件,以获取此文件中全局符号(全局变量和函数)的列表,最后根据前面的哈希表统计每个源文件所使用的内存大小。

这两个程序用Python编写,其中分析C语言源文件较难,目前只是按照我自己的程序规范正确地找出全局符号,并不能保证其它格式也完全正确。如果要完全正确地分析源文件的话,就相当于在做编译器了。
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号