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