public static bool Run(string[] args) { ConvTool prog = new ConvTool(); if (args.Length < 1 || args[0].EqualsCI("-h") || args[0].EqualsCI("-help")) { Trace.WriteLine("IDAtoHEW CopyRight Merrill A. Myers III 2012"); Trace.WriteLine("USAGE:"); Trace.WriteLine("Convert .map file to C defines header (.h) and section file (.txt) using .xml translation: IDAtoHEW <file.xml> <file.map> <file.h> <file.txt>"); Trace.WriteLine("Convert .map file to IDC script: IDAtoHEW <file.map> <file.idc>"); Trace.WriteLine("Convert .h file to IDC script: IDAtoHEW <file.h> <file.idc>"); } else if (args[0].ContainsCI(".h")) { prog.ReadHeader(args[0]); if (args.Length < 3) { prog.WriteIDC(Regex.Split(args[0], ".h")[0] + ".idc"); } else { prog.WriteIDC(args[1]); } } else if (args[0].ContainsCI(".map")) { idaMap = new IdaMap(args[0]); prog.MapToDefines(); if (args.Length < 3) { prog.WriteIDC(Regex.Split(args[0], ".map")[0] + ".idc"); } else { prog.WriteIDC(args[1]); } } else if (args[0].ContainsCI(".xml") && args.Length == 6) { String Build = "Debug"; String Config = args[5].Split('_')[0]; if (args[5].Split('_').Length > 1) { Build = args[5].Split('_')[1]; } prog.LoadXML(args[0]); idaMap = new IdaMap(args[1]); Definition def = SharpTuner.AvailableDevices.DefDictionary[args[4]]; prog.FindAndWriteDefines(args[2], Build, Config, def.CarInfo["internalidstring"].ToString(), def.CarInfo["ecuid"].ToString()); //TODO: auto load ecuid?? prog.FindAndWriteSections(args[3]); } else { Trace.WriteLine("invalid command! Args: " + args.Length); } return(true); //TODO FIX!! }
public static bool Run(string[] args) { ConvTool prog = new ConvTool(); if (args.Length < 1 || args[0].EqualsCI("-h") || args[0].EqualsCI("-help")) { Trace.WriteLine("IDAtoHEW CopyRight Merrill A. Myers III 2012"); Trace.WriteLine("USAGE:"); Trace.WriteLine("Convert .map file to C defines header (.h) and section file (.txt) using .xml translation: IDAtoHEW <file.xml> <file.map> <file.h> <file.txt>"); Trace.WriteLine("Convert .map file to IDC script: IDAtoHEW <file.map> <file.idc>"); Trace.WriteLine("Convert .h file to IDC script: IDAtoHEW <file.h> <file.idc>"); } else if (args[0].ContainsCI(".h")) { prog.ReadHeader(args[0]); if (args.Length < 3) prog.WriteIDC(Regex.Split(args[0], ".h")[0] + ".idc"); else prog.WriteIDC(args[1]); } else if (args[0].ContainsCI(".map")) { idaMap = new IdaMap(args[0]); prog.MapToDefines(); if (args.Length < 3) prog.WriteIDC(Regex.Split(args[0], ".map")[0] + ".idc"); else prog.WriteIDC(args[1]); } else if (args[0].ContainsCI(".xml") && args.Length == 6) { String Build = "Debug"; String Config = args[5].Split('_')[0]; if(args[5].Split('_').Length > 1) Build = args[5].Split('_')[1]; prog.LoadXML(args[0]); idaMap = new IdaMap(args[1]); Definition def = SharpTuner.AvailableDevices.DefDictionary[args[4]]; prog.FindAndWriteDefines(args[2],Build,Config,def.CarInfo["internalidstring"].ToString(),def.CarInfo["ecuid"].ToString()); //TODO: auto load ecuid?? prog.FindAndWriteSections(args[3]); } else Trace.WriteLine("invalid command! Args: " + args.Length ); return true; //TODO FIX!! }
public void ReadMap(IdaMap idaMap,DeviceImage image) { //loop through base def and search for table names in map foreach (var romtable in AggregateBaseRomTables) { foreach (var idan in idaMap.IdaCleanNames) { if (romtable.Key.EqualsIdaString(idan.Key)) { ExposeTable(romtable.Key, LutFactory.CreateLut(romtable.Key, uint.Parse(idan.Value.ToString(), NumberStyles.AllowHexSpecifier), image.imageStream)); break; } } } ////TODO RAMTABLES //foreach (var ramtable in baseDef.RamTableList) //{ // foreach (var idan in idaMap.IdaCleanNames) // { // if (ramtable.Key.EqualsIdaString(idan.Key)) // { // break; // } // } //} }
public void ImportMapText(string text, DeviceImage image) { IdaMap idaMap = new IdaMap(text); ReadMap(idaMap,image); }
public void ImportMapFile(string filepath, DeviceImage image) { IdaMap idaMap = new IdaMap(filepath); ReadMap(idaMap,image); }
public static void DefineRRLogEcuFromMap(string mapFile, string ident) { IdaMap im = new IdaMap(mapFile); DefineRRLogEcu(im.IdaNames, ident); }