本帖最后由 lookuper 于 2017-1-13 22:00 编辑
在STVD中编译完成后,不会显示实际占用多少空间,用了多少ram等信息,但网上有高手,有两个软件size和mapinfo可以提供以上功能,但是也有缺陷,size软件不提供堆栈信息,mapinfo对ram不作区分!当然还有一个问题,最后再说。我就想自己写一个不就得了,昨晚从晚八点倒晚上十一点,基本完成,今天修改完善一上午,传上来大家试试名字叫MapAnalyer
MapAnalyer.rar
(54.07 KB)
,用法和size是一样的,把程序考到STVD目录下,在工程文件的Post-build中加入MapAnalyer $(OutputPath)$(TargetSName).map,就好了!
输出:flash=3364 eeprom=0 zeropage=91 ram=0 stack=40
最后说一下对flash的统计,size和mapinfo存在差别,主要是对“.bsct, from“和” .data, from“的理解存在差别,这两项是否计入flash中,我把它算到flash,不知对否!
MapAnalyer1.1.zip
(438.16 KB)
更新V1.1 修改一些BUG
--------
Segments
--------
start 00008080 end 0000852c length 1196 segment .const //Flash中常量
start 0000856a end 00009629 length 4287 segment .text //Flash中代码区
start 00004000 end 00004000 length 0 segment .eeprom //EEPROM
start 00000000 end 00000036 length 54 segment .bsct, initialized //RAM中short range区的初始化数据
start 00008534 end 0000856a length 54 segment .bsct, from //RAM中short range区的初始化数据存放在Flash
start 00000036 end 000000a5 length 111 segment .ubsct //RAM中short range区的未初始化数据
start 000000a5 end 000000a5 length 0 segment .bit
start 000000a5 end 000000a5 length 0 segment .share
start 00000100 end 0000010c length 12 segment .data, initialized //RAM中long range区的初始化的数据
start 0000856f end 0000857b length 12 segment .data, from //RAM中long range区的初始化数据存放在Flash
start 0000010c end 0000010c length 0 segment .bss
start 00000100 end 0000010c length 12 segment .bss //RAM中long range区的未初始化的数据。
start 00000000 end 00000c14 length 3092 segment .info.
start 00000000 end 00024fe1 length 151521 segment .debug
start 00008000 end 00008080 length 128 segment .const //Flash中常量
start 0000852c end 00008534 length 8 segment .init //Flash中
|