コード例 #1
0
        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);
        }
コード例 #2
0
 public virtual string GetMCUTypeMacro(MCUBuilder mcu)
 {
     return(mcu.Name);
 }
コード例 #3
0
 protected virtual LinkerScriptTemplate GetTemplateForMCU(MCUBuilder mcu)
 {
     return(LDSTemplate);
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 public abstract MemoryLayout GetMemoryLayout(MCUBuilder mcu, MCUFamilyBuilder family);