Skip to content

Commit f2131e0

Browse files
committed
Improved handling of non-sequential subregister errors that do not affect all targets.
Updated STM32 BSP to pass the new validation logic.
1 parent 9de5a84 commit f2131e0

File tree

12 files changed

+49
-11
lines changed

12 files changed

+49
-11
lines changed

DebugPackages/ESP8266DebugPackage/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
[assembly: AssemblyCulture("")]
1717
[assembly: ComVisible(false)]
1818

19-
[assembly: AssemblyVersion("2.0.1535.0")]
20-
[assembly: AssemblyFileVersion("2.0.1535.0")]
19+
[assembly: AssemblyVersion("2.0.1569.0")]
20+
[assembly: AssemblyFileVersion("2.0.1569.0")]

DebugPackages/RISCVDebugPackage/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("1.0.1124.0")]
36-
[assembly: AssemblyFileVersion("1.0.1124.0")]
35+
[assembly: AssemblyVersion("1.0.1158.0")]
36+
[assembly: AssemblyFileVersion("1.0.1158.0")]

generators/stm32/PeripheralRegisterGenerator.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public override string ToString()
4141
public class RegisterParserConfiguration
4242
{
4343
Dictionary<string, bool> _IgnoredSubregisters = new Dictionary<string, bool>();
44+
Dictionary<string, bool> _PotentiallyNotSequentialRegisters = new Dictionary<string, bool>();
4445
string[] _IgnoredSubregisterPrefixes;
4546
string[] _IgnoredSubregisterSuffixes;
4647
Regex[] _IgnoredSubregisterRegexes;
@@ -271,6 +272,20 @@ public string IgnoredSubregisters
271272
}
272273
}
273274

275+
//Those registers might be non-sequential for some devices, but not all. We will only ignore the actual non-sequential instances of them.
276+
public bool IsKnownNonSequentialRegister(string register) => _PotentiallyNotSequentialRegisters.ContainsKey(register);
277+
278+
279+
public string PotentiallyNotSequentialRegisters
280+
{
281+
get => throw new NotImplementedException();
282+
set
283+
{
284+
foreach (var r in value.Split(';'))
285+
_PotentiallyNotSequentialRegisters[r] = true;
286+
}
287+
}
288+
274289
public string IgnoredSubregisterPrefixes
275290
{
276291
get
@@ -1518,9 +1533,14 @@ private static Dictionary<string, List<HardwareSubRegister>> ProcessSubregisters
15181533
{
15191534
ExtractFirstBitAndSize(ParseHex(address_offset), out size, out offset);
15201535
}
1521-
catch(Exception ex)
1536+
catch
15221537
{
1523-
errors.AddError(new RegisterParserErrors.BitmaskNotSequential { FileName = fileName, LineContents = line, LineNumber = nextLine - 1 });
1538+
if (cfg.IsKnownNonSequentialRegister(subreg_name))
1539+
{
1540+
//Nothing to do - ignore the error.
1541+
}
1542+
else
1543+
errors.AddError(new RegisterParserErrors.BitmaskNotSequential { FileName = fileName, LineContents = line, LineNumber = nextLine - 1 });
15241544
continue;
15251545
}
15261546

generators/stm32/rules/Families/stm32f0.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@
212212
<Framework>
213213
<Name>STM32F0 Legacy Peripheral Library</Name>
214214
<ID>com.sysprogs.arm.stm32.f0_stdperiph</ID>
215+
<ClassID>com.sysprogs.arm.stm32.stdperiph</ClassID>
215216
<IncompatibleFrameworks>
216217
<string>com.sysprogs.arm.stm32.f0_hal</string>
217218
</IncompatibleFrameworks>

generators/stm32/rules/Families/stm32f1.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@
191191
<Framework>
192192
<Name>STM32F1 Legacy Peripheral Library</Name>
193193
<ID>com.sysprogs.arm.stm32.f1_stdperiph</ID>
194+
<ClassID>com.sysprogs.arm.stm32.stdperiph</ClassID>
194195
<IncompatibleFrameworks>
195196
<string>com.sysprogs.arm.stm32.f1_hal</string>
196197
</IncompatibleFrameworks>

generators/stm32/rules/Families/stm32f2.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
<Framework>
8383
<Name>STM32F2 Legacy Peripheral Library</Name>
8484
<ID>com.sysprogs.arm.stm32.f2_stdperiph</ID>
85+
<ClassID>com.sysprogs.arm.stm32.stdperiph</ClassID>
8586
<IncompatibleFrameworks>
8687
<string>com.sysprogs.arm.stm32.f2_hal</string>
8788
</IncompatibleFrameworks>

generators/stm32/rules/Families/stm32f4.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@
172172
<Framework>
173173
<Name>STM32F4 Legacy Peripheral Library</Name>
174174
<ID>com.sysprogs.arm.stm32.f4_stdperiph</ID>
175+
<ClassID>com.sysprogs.arm.stm32.stdperiph</ClassID>
175176
<IncompatibleFrameworks>
176177
<string>com.sysprogs.arm.stm32.f4_hal</string>
177178
</IncompatibleFrameworks>

generators/stm32/rules/Families/stm32f7.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
<Framework>
7878
<Name>STM32746G-Discovery drivers</Name>
7979
<ID>com.sysprogs.arm.stm32.bspdrv.stm2746g-discovery</ID>
80+
<ClassID>com.sysprogs.arm.stm32.bspdrv</ClassID>
8081
<RequiredFrameworks>
8182
<string>com.sysprogs.arm.stm32.f7_hal</string>
8283
</RequiredFrameworks>
@@ -129,6 +130,7 @@
129130
<RequiredFrameworks>
130131
<string>com.sysprogs.arm.stm32.f7_hal</string>
131132
</RequiredFrameworks>
133+
<ClassID>com.sysprogs.arm.stm32.bspdrv</ClassID>
132134
<IncompatibleFrameworks>
133135
<string>com.sysprogs.arm.stm32.stm2746g-discovery</string>
134136
</IncompatibleFrameworks>

generators/stm32/rules/Families/stm32h7.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
<Framework>
7171
<Name>STM32H743I_EVAL drivers</Name>
7272
<ID>com.sysprogs.arm.stm32.bspdrv.stm32h743i_eval</ID>
73+
<ClassID>com.sysprogs.arm.stm32.bspdrv</ClassID>
7374
<RequiredFrameworks>
7475
<string>com.sysprogs.arm.stm32.h7_hal</string>
7576
</RequiredFrameworks>
@@ -119,6 +120,7 @@
119120
<Framework>
120121
<Name>STM32H7xx_Nucleo_144</Name>
121122
<ID>com.sysprogs.arm.stm32.bspdrv.nucleo144</ID>
123+
<ClassID>com.sysprogs.arm.stm32.bspdrv</ClassID>
122124
<RequiredFrameworks>
123125
<string>com.sysprogs.arm.stm32.h7_hal</string>
124126
</RequiredFrameworks>

generators/stm32/rules/Families/stm32l1.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189
<Framework>
190190
<Name>STM32L1 Legacy Peripheral Library</Name>
191191
<ID>com.sysprogs.arm.stm32.l1_stdperiph</ID>
192+
<ClassID>com.sysprogs.arm.stm32.stdperiph</ClassID>
192193
<IncompatibleFrameworks>
193194
<string>com.sysprogs.arm.stm32.l1_hal</string>
194195
</IncompatibleFrameworks>

0 commit comments

Comments
 (0)