public static List <MCUBuilder> ReadMCUDevicesFromCommaDelimitedCSVFile(string filePath, string nameColumn, string flashSizeColumn, string ramSizeColumn, string coreColumn, bool sizesAreInKilobytes) { List <MCUBuilder> rawmcu_list = new List <MCUBuilder>(); bool header_row = true; Dictionary <string, int> headers = new Dictionary <string, int>(); string[] strFileMCU = File.ReadAllLines(filePath); for (int il = 0; il < strFileMCU.Length; il++) { string line = strFileMCU[il]; string[] items = line.Split(','); if (header_row) { for (int i = 0; i < items.Length; i++) { headers[items[i]] = i; } header_row = false; continue; } var mcu = new MCUBuilder { Name = items[headers[nameColumn]], FlashSize = Int32.Parse(items[headers[flashSizeColumn]]), RAMSize = Int32.Parse(items[headers[ramSizeColumn]]), }; if (coreColumn != null) { mcu.Core = ParseCoreName(items[headers[coreColumn]]); } if (sizesAreInKilobytes) { mcu.FlashSize *= 1024; mcu.RAMSize *= 1024; } if (rawmcu_list.IndexOf(mcu) < 0) { rawmcu_list.Add(mcu); } } return(rawmcu_list); }
public virtual string GetMCUTypeMacro(MCUBuilder mcu) { return(mcu.Name); }
protected virtual LinkerScriptTemplate GetTemplateForMCU(MCUBuilder mcu) { return(LDSTemplate); }
public virtual void GenerateLinkerScriptsAndUpdateMCU(string ldsDirectory, string familyFilePrefix, MCUBuilder mcu, MemoryLayout layout, string generalizedName) { using (var gen = new LdsFileGenerator(GetTemplateForMCU(mcu), layout)) { using (var sw = new StreamWriter(Path.Combine(ldsDirectory, generalizedName + "_flash.lds"))) gen.GenerateLdsFile(sw); gen.RedirectMainFLASHToRAM = true; using (var sw = new StreamWriter(Path.Combine(ldsDirectory, generalizedName + "_sram.lds"))) gen.GenerateLdsFile(sw); mcu.LinkerScriptPath = string.Format("$$SYS:BSP_ROOT$$/{0}LinkerScripts/{1}_$${2}$$.lds", familyFilePrefix, generalizedName, MCUFamilyBuilder.PrimaryMemoryOptionName); } }
public abstract MemoryLayout GetMemoryLayout(MCUBuilder mcu, MCUFamilyBuilder family);