搜索
bottom↓
回复: 45

[STM8开发小工具][使STVD像Keil一样显示代码大小]

[复制链接]

出0入0汤圆

发表于 2009-11-13 10:19:51 | 显示全部楼层 |阅读模式
注:个人随手写的代码,不完全测试,不保证好用,欢迎反馈。 使用C#写的,要.net 2.0。欢迎感兴趣的用其他语言改写。
转载保留出处。


先上菜:点击此处下载 ourdev_502775.rar(文件大小:2K) (原文件名:size.rar)

再上吃法:

1、把解开后的size.exe复制到COSMIC\CXSTM8文件夹,就是你的COSMIC编译工具里有cpstm8.exe的那个文件夹。
2、在SVTD的Project->settings中打开Post-Build选项卡,在commands的最后一行加入:size $(OutputPath)$(TargetSName).map
3、保存返回,编译试试,最后会出现如:Program Size: Code=12470 Eeprom=0 ZeroPage=227 Ram=180 的结果。

思路:

打开map文件,统计各段的长度,然后输出。

主要代码:

        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader(args[0]);
            string[] s;
            char[] charSeparators = new char[] { ' ' };

            int code_size = 0;
            int zeropage_size = 0;
            int ram_size = 0;
            int eeprom_size = 0;

            for (int i = 0; i < 8; i++)
            {
                string s1 = sr.ReadLine();
            }

            while (true)
            {
                string s1 = sr.ReadLine();
                s = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
                if(s.Length == 0)
                {
                    break;
                }
                else if (s[7] == ".text" || s[7] == ".const" || s[7] == ".init")
                {
                    code_size += int.Parse(s[5]);
                }
                else if (s[7] == ".eeprom")
                {
                    eeprom_size += int.Parse(s[5]);
                }
                else if (s[7] == ".bsct," && s[8] == "initialized")
                {
                    zeropage_size += int.Parse(s[5]);
                }
                else if (s[7] == ".ubsct" || s[7] == ".share")
                {
                    zeropage_size += int.Parse(s[5]);
                }
                else if (s[7] == ".data," && s[8] == "initialized")
                {
                    ram_size += int.Parse(s[5]);
                }
                else if (s[7] == ".bss")
                {
                    ram_size += int.Parse(s[5]);
                }
            }
            Console.WriteLine("  ");
//  Program Size: Code=5056 RO-data=288 RW-data=68 ZI-data=1140  
            Console.WriteLine("Program Size: Code=" + code_size.ToString() + " Eeprom=" + eeprom_size.ToString() + " ZeroPage=" + zeropage_size.ToString() + " Ram=" + ram_size.ToString());
        }


(原文件名:QQ截图未命名.png)

请拍砖。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-11-13 14:06:54 | 显示全部楼层
不错

出0入0汤圆

发表于 2009-11-13 15:36:35 | 显示全部楼层
不错

出0入0汤圆

发表于 2010-1-4 19:33:10 | 显示全部楼层
鼓励一下,加油

出0入0汤圆

发表于 2010-1-26 11:47:08 | 显示全部楼层
我拍

出0入0汤圆

发表于 2010-1-26 13:12:35 | 显示全部楼层
不错,收藏

出0入0汤圆

发表于 2010-1-26 21:01:47 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-1-27 09:43:45 | 显示全部楼层
用了,不错哦。

出0入0汤圆

发表于 2010-1-27 17:21:00 | 显示全部楼层
謝謝了!

出0入0汤圆

发表于 2010-1-27 22:45:10 | 显示全部楼层
工程师创新设计宝典

出0入0汤圆

发表于 2010-2-3 00:13:55 | 显示全部楼层
remark

出0入0汤圆

发表于 2010-2-4 09:17:04 | 显示全部楼层
已经不能下载了??

出0入0汤圆

 楼主| 发表于 2010-2-4 09:23:35 | 显示全部楼层
回复【11楼】REI_AYANAMI  小宙宙
已经不能下载了??
-----------------------------------------------------------------------

阿莫在更换下载服务器好像。。。

出0入0汤圆

发表于 2010-2-5 09:26:49 | 显示全部楼层
2天后才能下啊

出0入0汤圆

发表于 2010-4-14 17:43:37 | 显示全部楼层
顶一下,正要用这个软件。

出0入0汤圆

发表于 2010-6-4 15:15:24 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-6-7 17:18:06 | 显示全部楼层

出0入0汤圆

发表于 2010-6-7 23:02:58 | 显示全部楼层
出错了
The command: "size Debug\led.map" has failed, the returned value is: -2146232576
led.elf - 1 error(s), 0 warning(s)

我安装的目录为:C:\Program Files\COSMIC\CXSTM8_32K     和这个有没用关系?

出0入0汤圆

发表于 2010-6-15 10:38:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-2 15:50:11 | 显示全部楼层
还是实用的东西

出0入0汤圆

发表于 2010-8-7 18:38:35 | 显示全部楼层
不错,正好用用

出0入0汤圆

发表于 2010-8-10 17:06:33 | 显示全部楼层
回复【楼主位】lollipop 天堂里没有猪头猪脑
-----------------------------------------------------------------------

我按照这个方法试了,怎么不行啊。我的CXSTM8是在论坛里面下的免安装的。

出0入0汤圆

发表于 2010-8-10 17:41:33 | 显示全部楼层
这么麻烦,打开map文件看到的更详细。

出0入0汤圆

发表于 2010-8-10 21:59:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-22 22:36:32 | 显示全部楼层
不能用

出0入0汤圆

发表于 2010-8-31 23:33:18 | 显示全部楼层
这个方法在STVD Ver4.1.6 上不适用. 编译出来的RAM值为0

出0入0汤圆

发表于 2010-9-18 22:50:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-21 22:19:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-6 14:35:31 | 显示全部楼层
打开MAP看算了

出0入0汤圆

发表于 2011-11-11 08:11:03 | 显示全部楼层
我的也出错了 The command: "size Debug\my2.map" has failed, the returned value is: -1073741515
my2.elf - 1 error(s), 0 warning(s)

出0入0汤圆

发表于 2011-11-18 11:21:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-5-24 09:06:17 | 显示全部楼层
有用,非常感谢,不知道这个size.exe怎么生成的,我想添加ftext和fconst这两个段的代码计算。

出0入0汤圆

发表于 2013-6-8 10:37:12 | 显示全部楼层
超赞,膜拜!!!

出0入0汤圆

发表于 2013-7-7 08:18:58 | 显示全部楼层
哈哈,感谢大神,成功了

出0入0汤圆

发表于 2013-7-9 09:24:57 | 显示全部楼层
厉害,

出0入0汤圆

发表于 2013-11-25 22:30:47 | 显示全部楼层
不错,顶一下

出0入0汤圆

发表于 2013-11-29 09:37:19 | 显示全部楼层
很不错,赞一个

出0入0汤圆

发表于 2014-4-23 09:29:53 | 显示全部楼层
COSMIC\CXSTM8文件夹,就是你的COSMIC编译工具里有cpstm8.exe的那个文件夹
找不到啊没有这个东东

出0入0汤圆

发表于 2014-4-23 18:11:39 | 显示全部楼层
好东西,MARK一下.

出0入0汤圆

发表于 2014-4-23 18:23:16 | 显示全部楼层
我晕。。。。09年的帖子怎么翻出来了~

出0入0汤圆

发表于 2014-5-3 16:05:01 | 显示全部楼层
还是得顶一把!

出0入0汤圆

发表于 2014-5-20 18:03:18 | 显示全部楼层
好东西 确实能用

出0入0汤圆

发表于 2014-5-23 10:58:16 | 显示全部楼层
没用,我用的是STVD 4.3.4

出0入0汤圆

发表于 2014-10-7 16:01:43 | 显示全部楼层
谢谢楼主了  很有用的小工具

出0入0汤圆

发表于 2015-7-23 19:57:52 | 显示全部楼层
不错,谢谢分享。

出0入0汤圆

发表于 2015-8-24 21:25:22 | 显示全部楼层

不错,谢谢分享。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 01:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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