Exemple #1
0
 public BSPBuilder(BSPDirectories dirs, string linkerScriptTemplate = @"..\..\..\..\GenericARM.ldsx")
 {
     Directories = dirs;
     SystemVars["$$BSPGEN:INPUT_DIR$$"] = dirs.InputDir;
     SystemVars["$$BSPGEN:RULES_DIR$$"] = dirs.RulesDir;
     if (linkerScriptTemplate != null)
     {
         LDSTemplate = XmlTools.LoadObject <LinkerScriptTemplate>(linkerScriptTemplate);
     }
     BSPRoot = dirs.OutputDir;
     if (Directory.Exists(dirs.OutputDir))
     {
         Console.Write("Deleting {0}...", dirs.OutputDir);
         try
         {
             Directory.Delete(dirs.OutputDir, true);
         }
         catch
         {
             if (Directory.GetFiles(dirs.OutputDir, "*", SearchOption.AllDirectories).Length != 0)
             {
                 throw;
             }
         }
         Console.WriteLine(" done");
     }
     Directory.CreateDirectory(dirs.OutputDir);
 }
Exemple #2
0
        public BSPBuilder(BSPDirectories dirs, string linkerScriptTemplate = null, int linkerScriptLevel = 4)
        {
            if (linkerScriptTemplate == null)
            {
                for (int i = 0; i < linkerScriptLevel; i++)
                {
                    linkerScriptTemplate += @"..\";
                }
                linkerScriptTemplate += @"GenericARM.ldsx";
            }

            Directories = dirs;
            SystemVars["$$BSPGEN:INPUT_DIR$$"] = dirs.InputDir;
            SystemVars["$$BSPGEN:RULES_DIR$$"] = dirs.RulesDir;
            if (linkerScriptTemplate != null && linkerScriptLevel >= 0)
            {
                LDSTemplate = XmlTools.LoadObject <LinkerScriptTemplate>(linkerScriptTemplate);
            }
            BSPRoot = dirs.OutputDir;
            if (Directory.Exists(dirs.OutputDir))
            {
                Console.Write("Deleting {0}...", dirs.OutputDir);
                DeleteDirectoryWithRetries(dirs.OutputDir);
                Console.WriteLine(" done");
            }
            Directory.CreateDirectory(dirs.OutputDir);
        }
Exemple #3
0
            public InfineonXMCBSPBuilder(BSPDirectories dirs)
                : base(dirs)
            {
                ShortName = "Infineon_XMC";

                LDSTemplateX1 = XmlTools.LoadObject <LinkerScriptTemplate>(@"..\..\..\..\GenericARM.ldsx");
                var dataSection = LDSTemplateX1.Sections.IndexOf(LDSTemplateX1.Sections.First(s => s.Name == ".data"));

                LDSTemplateX1.Sections.First(s => s.Name == ".isr_vector").Flags |= SectionFlags.DefineShortLabels | SectionFlags.ProvideLongLabels;

                LDSTemplateX1.Sections.Insert(dataSection, new Section
                {
                    Name           = ".isr_veneers",
                    TargetMemory   = "SRAM",
                    Alignment      = 4,
                    CustomContents = new string[] { ". = . + SIZEOF(.isr_vector) * 2;" },
                    Flags          = SectionFlags.DefineShortLabels | SectionFlags.ProvideLongLabels,
                });

                LDSTemplate = LDSTemplateX1;
            }