热搜:
下载CXSTM8编程工具

CXSTM8编程工具

更多
  • 软件大小:7.35MB (7,702,260 字节)
  • 软件类别:编程书集 -> 编程工具
  • 软件授权:免费软件      软件语言:简体中文
  • 更新时间:2013/05/04
  • 软件厂商:
  • 软件官网:
  • 应用平台:Win2K,WinXP,Win2003,Vista,Win7,Win2008,Win8,Win2012
软件介绍
热度:0

随手写的代码,不完全测试,不保证好用,欢迎反馈。 使用C#写的,要.net 2.0。欢迎感兴趣的用其他语言改写。
 

使用:


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());
}

软件截图

  • CXSTM8编程工具第1张

下载地址

CXSTM8编程工具