[STM8开发小工具]使STVD像Keil一样显示代码大小
先上菜:点击此处下载
再上吃法:
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);
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 == ".text" || s == ".const" || s == ".init")
{
code_size += int.Parse(s);
}
else if (s == ".eeprom")
{
eeprom_size += int.Parse(s);
}
else if (s == ".bsct," && s == "initialized")
{
zeropage_size += int.Parse(s);
}
else if (s == ".ubsct" || s == ".share")
{
zeropage_size += int.Parse(s);
}
else if (s == ".data," && s == "initialized")
{
ram_size += int.Parse(s);
}
else if (s == ".bss")
{
ram_size += int.Parse(s);
}
}
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());
}
原帖出处:http://www.amobbs.com/thread-3700831-1-1.html
正好需要,谢谢。 过来看一看 L小明 发表于 2016-2-16 17:23 static/image/common/back.gif
你那个size.exe文件好像没有放对地方
在commands的最后一行加入:size $(OutputPath)$(TargetSName).map
吧“:”去掉就好了
所以应该加入size $(OutputPath)$(TargetSName).map hpdell 发表于 2013-12-10 17:41 static/image/common/back.gif
我的按照此方法加入了,怎么提示错误啊 ???
The command: "size Debug\stm8.map" has failed, the ret ...
你那个size.exe文件好像没有放对地方
遇到同样问题求解 本帖最后由 hpdell 于 2013-12-10 17:43 编辑
我的按照此方法加入了,怎么提示错误啊 ???
The command: "size Debug\stm8.map" has failed, the returned value is: -2146232576
stm8.elf - 1 error(s), 0 warning(s)
奋斗哥 发表于 2013-7-10 14:09 static/image/common/back.gif
ST Visual Develop(STVD)为全程控制应用开发 - 从构建和调试应用代码到微控制器编程 - 提供了简便易用且 ...
好工具呀,而且还是免费的!! 好东西啊,赶紧收集起来 坐个板凳~~~SVTD是什么,求科普一下~{:soso_e113:} 这个功能不错!赞一个;P
页:
[1]
2