打印

BL51的输出能不能按模块来安排代码段?

[复制链接]
1465|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aolin|  楼主 | 2008-1-20 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个程序,太大了,差不多60KB了,需要做瘦身,想查查哪个模块占的空间大,以做优化.可是看了看链接输出的MAP文件,发现各代码段的定位是按段大小降序排列,这样一个模块中的代码就被分配在各个不同的地方,很难计算一个模块占用了多少空间!
有没有控制符让链接程序按模块来分配代码段,让一个模快中的可重定位段都分配在一个连续的空间中?
这样的话各个模块的代码大小就容易计算了!

相关帖子

沙发
ayb_ice| | 2008-1-21 13:50 | 只看该作者

本身应该就是按模块来的

使用特权

评论回复
板凳
aolin|  楼主 | 2008-1-22 09:27 | 只看该作者

不是按模块放的!

我用的是Keil uVision 3 C51V8.02, 以下部分是MAP的输出:
           * * * * * * *   C O D E   M E M O R Y   * * * * * * *
            CODE    0000H     0003H     ABSOLUTE     
            CODE    0003H     1962H     UNIT         ?C_INITSEG
            CODE    1965H     0A7EH     UNIT         ?C?LIB_CODE
            CODE    23E3H     0912H     UNIT         ?CO?BUZZER_DATA
            CODE    2CF5H     0671H     UNIT         ?PR?BOT_UPDATEDEVINFO?BOT
            CODE    3366H     0644H     UNIT         ?PR?_FS_READFILEBYBYTECOUNT?FILESYSTEM
            CODE    39AAH     0600H     UNIT         ?PR?FS_MOUNT?FILESYSTEM
            CODE    3FAAH     051EH     UNIT         ?PR?_FS_NEXTFILE?FILESYSTEM
            CODE    44C8H     0507H     UNIT         ?PR?_BOT_GETLUNINFO?BOT
            CODE    49CFH     03E1H     UNIT         ?PR?FS_NEXTCLUSTER?FILESYSTEM
            CODE    4DB0H     0365H     UNIT         ?PR?PRINTF?PRINTF
            CODE    5115H     031DH     UNIT         ?PR?_BOT_ENUMERATION?BOT
            CODE    5432H     02ACH     UNIT         ?PR?_FS_OPENFILE?FILESYSTEM
            CODE    56DEH     0299H     UNIT         ?PR?DSA_TASK?DSA
            CODE    5977H     027EH     UNIT         ?PR?_FS_GETLONGFILENAME?FILESYSTEM

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

396

帖子

2

粉丝