30
30
uartrx_list = [] # ['PIN','name','UARTrx', ['af']]
31
31
uartcts_list = [] # ['PIN','name','UARTcts', ['af']]
32
32
uartrts_list = [] # ['PIN','name','UARTrts', ['af']]
33
- spimosi_list = [] # ['PIN','name','SPIMOSI', ['af']]
34
- spimiso_list = [] # ['PIN','name','SPIMISO', ['af']]
35
- spissel_list = [] # ['PIN','name','SPISSEL', ['af']]
36
- spisclk_list = [] # ['PIN','name','SPISCLK', ['af']]
33
+ spimosi_list = [] # ['PIN','name','SPIMOSI', 'sort name', ['af']]
34
+ spimiso_list = [] # ['PIN','name','SPIMISO', 'sort name', ['af']]
35
+ spissel_list = [] # ['PIN','name','SPISSEL', 'sort name', ['af']]
36
+ spisclk_list = [] # ['PIN','name','SPISCLK', 'sort name', ['af']]
37
37
cantd_list = [] # ['PIN','name','CANTD', ['af']]
38
38
canrd_list = [] # ['PIN','name','CANRD', ['af']]
39
39
eth_list = [] # ['PIN','name','ETH', ['af']]
@@ -464,14 +464,14 @@ def store_uart(pin, name, signal):
464
464
465
465
# Store SPI pins
466
466
def store_spi (pin , name , signal ):
467
- if "_MISO" in signal :
468
- spimiso_list .append ([pin , name , signal ])
469
- if "_MOSI" in signal :
470
- spimosi_list .append ([pin , name , signal ])
471
- if "_SCK" in signal :
472
- spisclk_list .append ([pin , name , signal ])
473
- if "_NSS" in signal :
474
- spissel_list .append ([pin , name , signal ])
467
+ if re . search ( "[-_]MISO" , signal ) :
468
+ spimiso_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
469
+ if re . search ( "[-_]MOSI" , signal ) :
470
+ spimosi_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
471
+ if re . search ( "[-_]SCK" , signal ) :
472
+ spisclk_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
473
+ if re . search ( "[-_]NSS" , signal ) :
474
+ spissel_list .append ([pin , name , signal , signal . removeprefix ( "DEBUG_" ) ])
475
475
476
476
477
477
# Store CAN pins
@@ -749,6 +749,7 @@ def spi_pinmap(lst):
749
749
spi_pins_list = []
750
750
winst = []
751
751
wpin = []
752
+ sp = re .compile (r"-|_" )
752
753
if lst == spimosi_list :
753
754
aname = "SPI_MOSI"
754
755
elif lst == spimiso_list :
@@ -759,16 +760,18 @@ def spi_pinmap(lst):
759
760
aname = "SPI_SSEL"
760
761
for p in lst :
761
762
# 2nd element is the SPI_XXXX signal
762
- inst = p [2 ].split ("_" )[0 ]
763
+ # but using 3rd which contains the stripped one
764
+ # used to properly sort them
765
+ inst = sp .split (p [3 ])[0 ]
763
766
winst .append (len (inst ))
764
767
wpin .append (len (p [0 ]))
765
768
spi_pins_list .append (
766
769
{
767
770
"pin" : p [0 ],
768
771
"inst" : inst ,
769
772
"mode" : "STM_MODE_AF_PP" ,
770
- "pull" : "GPIO_PULLUP" ,
771
- "af" : p [3 ],
773
+ "pull" : "GPIO_PULLUP" if inst != "SUBGHZSPI" else "GPIO_NOPULL" ,
774
+ "af" : p [4 ],
772
775
}
773
776
)
774
777
return dict (
@@ -1278,6 +1281,36 @@ def timer_variant():
1278
1281
return dict (tone = tone , servo = servo )
1279
1282
1280
1283
1284
+ def alias_definition ():
1285
+ # alias for STM32WL
1286
+ alias_list = []
1287
+ if mcu_family == "STM32WL" :
1288
+ mosi = [
1289
+ mosi [0 ].replace ("_" , "" , 1 )
1290
+ for mosi in spimosi_list
1291
+ if "SUBGHZSPI" in mosi [2 ]
1292
+ ]
1293
+ miso = [
1294
+ miso [0 ].replace ("_" , "" , 1 )
1295
+ for miso in spimiso_list
1296
+ if "SUBGHZSPI" in miso [2 ]
1297
+ ]
1298
+ sck = [
1299
+ sck [0 ].replace ("_" , "" , 1 ) for sck in spisclk_list if "SUBGHZSPI" in sck [2 ]
1300
+ ]
1301
+ ssel = [
1302
+ ssel [0 ].replace ("_" , "" , 1 )
1303
+ for ssel in spissel_list
1304
+ if "SUBGHZSPI" in ssel [2 ]
1305
+ ]
1306
+ if mosi and miso and sck and ssel :
1307
+ alias_list .append (("DEBUG_SUBGHZSPI_MOSI" , mosi [0 ]))
1308
+ alias_list .append (("DEBUG_SUBGHZSPI_MISO" , miso [0 ]))
1309
+ alias_list .append (("DEBUG_SUBGHZSPI_SCLK" , sck [0 ]))
1310
+ alias_list .append (("DEBUG_SUBGHZSPI_SS" , ssel [0 ]))
1311
+ return alias_list
1312
+
1313
+
1281
1314
def print_variant (generic_list , alt_syswkup_list ):
1282
1315
variant_h_template = j2_env .get_template (variant_h_filename )
1283
1316
variant_cpp_template = j2_env .get_template (variant_cpp_filename )
@@ -1299,6 +1332,9 @@ def print_variant(generic_list, alt_syswkup_list):
1299
1332
# Timers definition
1300
1333
timer = timer_variant ()
1301
1334
1335
+ # Alias to ease some usage
1336
+ alias_list = alias_definition ()
1337
+
1302
1338
# Manage all pins number, PinName and analog pins
1303
1339
analog_index = 0
1304
1340
pins_number_list = []
@@ -1379,6 +1415,7 @@ def print_variant(generic_list, alt_syswkup_list):
1379
1415
timer = timer ,
1380
1416
serial = serial ,
1381
1417
hal_modules_list = hal_modules_list ,
1418
+ alias_list = alias_list ,
1382
1419
)
1383
1420
)
1384
1421
@@ -1536,6 +1573,10 @@ def natural_sortkey2(list_2_elem):
1536
1573
return tuple (int (num ) if num else alpha for num , alpha in tokenize (list_2_elem [2 ]))
1537
1574
1538
1575
1576
+ def natural_sortkey3 (list_2_elem ):
1577
+ return tuple (int (num ) if num else alpha for num , alpha in tokenize (list_2_elem [3 ]))
1578
+
1579
+
1539
1580
def sort_my_lists ():
1540
1581
io_list .sort (key = natural_sortkey )
1541
1582
dualpad_list .sort (key = natural_sortkey )
@@ -1550,9 +1591,13 @@ def sort_my_lists():
1550
1591
uartrx_list .sort (key = natural_sortkey )
1551
1592
uartcts_list .sort (key = natural_sortkey )
1552
1593
uartrts_list .sort (key = natural_sortkey )
1594
+ spimosi_list .sort (key = natural_sortkey3 )
1553
1595
spimosi_list .sort (key = natural_sortkey )
1596
+ spimiso_list .sort (key = natural_sortkey3 )
1554
1597
spimiso_list .sort (key = natural_sortkey )
1598
+ spissel_list .sort (key = natural_sortkey3 )
1555
1599
spissel_list .sort (key = natural_sortkey )
1600
+ spisclk_list .sort (key = natural_sortkey3 )
1556
1601
spisclk_list .sort (key = natural_sortkey )
1557
1602
cantd_list .sort (key = natural_sortkey )
1558
1603
canrd_list .sort (key = natural_sortkey )
0 commit comments