Esempio n. 1
0
        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!!
        }
Esempio n. 2
0
        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!!
        }
Esempio n. 3
0
 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;
     //        }
     //    }
     //}
 }
Esempio n. 4
0
 public void ImportMapText(string text, DeviceImage image)
 {
     IdaMap idaMap = new IdaMap(text);
     ReadMap(idaMap,image);
 }
Esempio n. 5
0
 public void ImportMapFile(string filepath, DeviceImage image)
 {
     IdaMap idaMap = new IdaMap(filepath);
     ReadMap(idaMap,image);
 }
Esempio n. 6
0
 public static void DefineRRLogEcuFromMap(string mapFile, string ident)
 {
     IdaMap im = new IdaMap(mapFile);
     DefineRRLogEcu(im.IdaNames, ident);
 }