static void Main(string[] args) { try { MemoryInfo curChip = chipData["/F401RE"]; foreach (var arg in args) { if (chipData.ContainsKey(arg)) { curChip = chipData[arg]; } else if (File.Exists(arg) && Path.GetExtension(arg) == ".elf") { DisplayMemoryUsage(curChip, GetMemoryUsage(arg)); } else { throw new ApplicationException("コマンドライン引数が不正です"); } } } catch (Exception e) { Console.WriteLine(e.Message); Environment.Exit(1); } }
static void DisplayMemoryUsage(MemoryInfo info, MemoryUsage usage) { Console.WriteLine("---------------"); Console.WriteLine(" Memory Info"); Console.WriteLine("---------------"); Console.WriteLine("Text = {0}B, Data = {1}B, BSS = {2}B, Sum = {3}B", usage.TextSize, usage.DataSize, usage.BssSize, usage.TextSize + usage.DataSize + usage.BssSize); int usedFlash = usage.TextSize + usage.DataSize; int maxFlash = info.FlashSize; Console.WriteLine("Flash\t{0:0.00}%\t({1}B/{2}B)", (double)usedFlash / maxFlash * 100, usedFlash, maxFlash); int usedRam = usage.DataSize + usage.BssSize; int maxRam = info.RamSize; Console.WriteLine("RAM \t{0:0.00}%\t({1}B/{2}B)", (double)usedRam / maxRam * 100, usedRam, maxRam); }