Skip to content

Commit a6c60dc

Browse files
committed
nRF5x BSP and VendorSampleParsers
1 parent 91517e9 commit a6c60dc

File tree

34 files changed

+107937
-2868
lines changed

34 files changed

+107937
-2868
lines changed

StandaloneBSPValidator/Program.cs

+6
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,9 @@ private static TestResult TestMCU(LoadedBSP.LoadedMCU mcu, string mcuDir, Tested
465465

466466
prj.AddBSPFilesToProject(bspDict, configuredSample.FrameworkParameters, frameworkIDs);
467467
var flags = prj.GetToolFlags(bspDict, configuredSample.FrameworkParameters, frameworkIDs);
468+
// if(sampleObj.Sample.LinkerScript!=null)
469+
// flags.LinkerScript = sampleObj.Sample.LinkerScript;
470+
468471
if (!string.IsNullOrEmpty(configuredSample.Sample.Sample.LinkerScript))
469472
flags.LinkerScript = VariableHelper.ExpandVariables(configuredSample.Sample.Sample.LinkerScript, bspDict, configuredSample.FrameworkParameters);
470473

@@ -785,6 +788,9 @@ static bool IsNonGCCFile(VendorSample vs, string fn)
785788
{
786789
if (fn.StartsWith(vs.Path + @"\MDK-ARM", StringComparison.InvariantCultureIgnoreCase))
787790
return true;
791+
if (fn.Contains("system_nrf52"))
792+
return true;
793+
788794
return false;
789795
}
790796

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
GNU_INSTALL_ROOT := c:/SysGCC/arm-eabi/bin/
2-
GNU_VERSION := 6.2.0
3-
GNU_PREFIX := arm-eabi
1+
GNU_INSTALL_ROOT := c:/SysGCC/arm-eabi/bin/
2+
GNU_VERSION := 7.2.0
3+
GNU_PREFIX := arm-eabi

VendorSampleParsers/Nordic/Program.cs

+358-343
Large diffs are not rendered by default.

VendorSampleParsers/VendorSamples.xml

+103,140
Large diffs are not rendered by default.

generators/nrf5x/Program.cs

+25-42
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ static LDFileMemoryInfo FindLdsFile(string pDir, string sdname)
118118
.ToArray();
119119

120120
var maxRAM = allMatchingLinkerScripts.OrderBy(s => s.RAM.Origin).Last();
121-
var maxFLASH = allMatchingLinkerScripts.OrderBy(s => s.FLASH.Origin).Last();
121+
// var maxRAM = allMatchingLinkerScripts.OrderBy(s => s.RAM.Length).Last();
122+
var maxFLASH = allMatchingLinkerScripts.OrderBy(s => s.FLASH.Origin).Last();
123+
// var maxFLASH = allMatchingLinkerScripts.OrderBy(s => s.FLASH.Length).Last();
122124

123125
if (!maxFLASH.FLASH.Equals(maxRAM.FLASH))
124126
throw new Exception("Inconsistent maximum linker scripts"); //The 'max RAM' script has a different FLASH size than the 'max FLASH' script.
@@ -312,10 +314,10 @@ internal void GenerateSoftdeviceLibraries()
312314
{
313315
abi = " \"-mfloat-abi=soft\"";
314316
}
315-
317+
316318
string hexFileName = Path.GetFullPath(Directory.GetFiles(sdDir, "*.hex")[0]);
317319
var info = new ProcessStartInfo { FileName = BSPRoot + @"\nRF5x\SoftdeviceLibraries\ConvertSoftdevice.bat", Arguments = sd.Name + " " + hexFileName + abi, UseShellExecute = false };
318-
info.EnvironmentVariables["PATH"] += @";e:\sysgcc\arm-eabi\bin";
320+
info.EnvironmentVariables["PATH"] += @";c:\sysgcc\arm-eabi\bin";
319321
Process.Start(info).WaitForExit();
320322
string softdevLib = string.Format(@"{0}\nRF5x\SoftdeviceLibraries\{1}_softdevice.o", BSPRoot, sd.Name);
321323
if (!File.Exists(softdevLib) || File.ReadAllBytes(softdevLib).Length < 32768)
@@ -455,27 +457,14 @@ static void Main(string[] args)
455457

456458
if (args.Length < 1)
457459
throw new Exception("Usage: nrf5x.exe <Nordic SW package directory>");
458-
bool usingIoTSDK = false;
460+
bool usingIoTSDK = false;
459461

460-
/* if (Directory.Exists(Path.Combine(args[0], @"components\iot\ble_6lowpan")))
461-
{
462-
usingIoTSDK = true;
463-
Console.WriteLine("Detected IoT SDK");
464-
}*/
465462

466-
if (usingIoTSDK)
467-
{
468-
bspBuilder = new NordicBSPBuilder(new BSPDirectories(args[0], @"..\..\Output", @"..\..\rules_iot"));
469-
bspBuilder.SoftDevices.Add(new NordicBSPBuilder.SoftDevice("s1xx_iot", 0x1f000, 0x2800, "nrf52", "IoT", bspBuilder.Directories.InputDir));
470-
}
471-
else
472-
{
473463
bspBuilder = new NordicBSPBuilder(new BSPDirectories(args[0], @"..\..\Output", @"..\..\rules"));
474464
bspBuilder.SoftDevices.Add(new NordicBSPBuilder.SoftDevice("S132", "nrf52832.*", null, bspBuilder.Directories.InputDir));
475465
bspBuilder.SoftDevices.Add(new NordicBSPBuilder.SoftDevice("S140", "nrf52840.*", null, bspBuilder.Directories.InputDir));
476466
bspBuilder.SoftDevices.Add(new NordicBSPBuilder.SoftDevice("S112", "nrf52810.*", null, bspBuilder.Directories.InputDir));
477-
}
478-
List<MCUBuilder> devices = new List<MCUBuilder>();
467+
List<MCUBuilder> devices = new List<MCUBuilder>();
479468

480469
#if NRF51_SUPPORT
481470
if (!usingIoTSDK)
@@ -487,12 +476,13 @@ static void Main(string[] args)
487476
}
488477
#endif
489478

479+
devices.Add(new MCUBuilder { Name = "nRF52832_XXAA", FlashSize = 512 * 1024, RAMSize = 64 * 1024, Core = CortexCore.M4, StartupFile = "$$SYS:BSP_ROOT$$/nRF5x/modules/nrfx/mdk/gcc_startup_nrf52.S" });
480+
devices.Add(new MCUBuilder { Name = "nRF52840_XXAA", FlashSize = 1024 * 1024, RAMSize = 256 * 1024, Core = CortexCore.M4, StartupFile = "$$SYS:BSP_ROOT$$/nRF5x/modules/nrfx/mdk/gcc_startup_nrf52840.S" });
481+
if (!usingIoTSDK)
482+
devices.Add(new MCUBuilder { Name = "nRF52810_XXAA", FlashSize = 192 * 1024, RAMSize = 24 * 1024, Core = CortexCore.M4_NOFPU, StartupFile = "$$SYS:BSP_ROOT$$/nRF5x/modules/nrfx/mdk/gcc_startup_nrf52810.S" });
483+
490484

491-
devices.Add(new MCUBuilder { Name = "nRF52832_XXAA", FlashSize = 512 * 1024, RAMSize = 64 * 1024, Core = CortexCore.M4, StartupFile = "$$SYS:BSP_ROOT$$/nRF5x/components/toolchain/gcc/gcc_startup_nrf52.S" });
492-
devices.Add(new MCUBuilder { Name = "nRF52840_XXAA", FlashSize = 1024 * 1024, RAMSize = 256 * 1024, Core = CortexCore.M4, StartupFile = "$$SYS:BSP_ROOT$$/nRF5x/components/toolchain/gcc/gcc_startup_nrf52840.S" });
493-
devices.Add(new MCUBuilder { Name = "nRF52810_XXAA", FlashSize = 192 * 1024, RAMSize = 24 * 1024, Core = CortexCore.M4_NOFPU, StartupFile = "$$SYS:BSP_ROOT$$/nRF5x/components/toolchain/gcc/gcc_startup_nrf52810.S" });
494-
495-
List<MCUFamilyBuilder> allFamilies = new List<MCUFamilyBuilder>();
485+
List < MCUFamilyBuilder> allFamilies = new List<MCUFamilyBuilder>();
496486
foreach (var fn in Directory.GetFiles(bspBuilder.Directories.RulesDir + @"\Families", "*.xml"))
497487
allFamilies.Add(new NordicFamilyBuilder(bspBuilder, XmlTools.LoadObject<FamilyDefinition>(fn)));
498488

@@ -553,7 +543,7 @@ static void Main(string[] args)
553543
{
554544
new CopyJob
555545
{
556-
SourceFolder = allFamilies[0].Definition.PrimaryHeaderDir + @"\..\components\ble\" + dir,
546+
SourceFolder = allFamilies[0].Definition.PrimaryHeaderDir + @"\..\..\..\components\ble\" + dir,
557547
TargetFolder = dir,
558548
FilesToCopy = "*.c;*.h",
559549
}
@@ -656,7 +646,8 @@ static void Main(string[] args)
656646
defaultConfig = "pca10040/s132";
657647

658648
suffixEntry = new SysVarEntry { Key = "com.sysprogs.nordic.default_config_suffix", Value = defaultConfig };
659-
mcuDef.AdditionalSystemVars = LoadedBSP.Combine(mcuDef.AdditionalSystemVars, new SysVarEntry[] { suffixEntry });
649+
mcuDef.AdditionalSystemVars = LoadedBSP.Combine(mcuDef.AdditionalSystemVars, new SysVarEntry[] { suffixEntry,
650+
new SysVarEntry { Key = "com.sysprogs.nordic.default_config_suffix_blank", Value = "pca10040" } });
660651

661652
mcuDefinitions.Add(mcuDef);
662653
}
@@ -666,8 +657,11 @@ static void Main(string[] args)
666657

667658
foreach (var fw in fam.GenerateFrameworkDefinitions())
668659
frameworks.Add(fw);
669-
670-
foreach (var sample in fam.CopySamples(null, new SysVarEntry[] { new SysVarEntry { Key = "com.sysprogs.nordic.default_config_suffix", Value = "pca10040e/s112" } }))
660+
string dirpca = "pca10040e/s112";
661+
if (usingIoTSDK)
662+
dirpca = "pca10040/s132";
663+
foreach (var sample in fam.CopySamples(null, new SysVarEntry[] { new SysVarEntry { Key = "com.sysprogs.nordic.default_config_suffix", Value =dirpca },
664+
new SysVarEntry { Key = "com.sysprogs.nordic.default_config_suffix_blank", Value = "pca10040" } }))
671665
exampleDirs.Add(sample);
672666
}
673667

@@ -688,21 +682,11 @@ static void Main(string[] args)
688682

689683
Console.WriteLine("Building BSP archive...");
690684
string strPackageID, strPackageDesc, strPAckVersion;
691-
if (usingIoTSDK)
692-
{
693-
strPackageID = "com.sysprogs.arm.nordic.nrf5x-iot";
694-
strPackageDesc = "Nordic NRF52 IoT";
695-
strPAckVersion = "0.9";
685+
686+
strPackageID = "com.sysprogs.arm.nordic.nrf5x";
687+
strPackageDesc = "Nordic NRF52x Devices";
688+
strPAckVersion = "14.2R2";
696689

697-
foreach (var mcu in mcuDefinitions)
698-
mcu.UserFriendlyName = mcu.ID + " (IoT)";
699-
}
700-
else
701-
{
702-
strPackageID = "com.sysprogs.arm.nordic.nrf5x";
703-
strPackageDesc = "Nordic NRF52x Devices";
704-
strPAckVersion = "14.2R2";
705-
}
706690

707691
BoardSupportPackage bsp = new BoardSupportPackage
708692
{
@@ -722,7 +706,6 @@ static void Main(string[] args)
722706
InitializationCodeInsertionPoints = commonPseudofamily.Definition.InitializationCodeInsertionPoints,
723707
};
724708

725-
bspBuilder.ValidateBSP(bsp);
726709
bspBuilder.Save(bsp, true, false);
727710
}
728711
}

generators/nrf5x/nrf5x.sln

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.23107.0
3+
# Visual Studio 14
4+
VisualStudioVersion = 14.0.23107.0
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nrf5x", "nrf5x.csproj", "{98CEE918-470D-48AE-B4C0-D3C064CD70D2}"
77
EndProject

0 commit comments

Comments
 (0)