13
13
mcu_list = [] # 'name'
14
14
io_list = [] # 'PIN','name'
15
15
alt_list = [] # 'PIN','name'
16
+ dualpad_list = [] # 'PIN','name'
16
17
remap_list = [] # 'PIN','name'
17
18
adclist = [] # 'PIN','name','ADCSignal'
18
19
daclist = [] # 'PIN','name','DACSignal'
@@ -392,6 +393,7 @@ def print_all_lists():
392
393
if print_list_header ("SD" , "SD" , "SD" , sd_list ):
393
394
print_sd ()
394
395
# Print specific PinNames in header file
396
+ print_dualpad_h ()
395
397
print_alt_h ()
396
398
print_syswkup_h ()
397
399
print_usb_h ()
@@ -461,7 +463,7 @@ def print_adc():
461
463
else :
462
464
prev_p = p [0 ]
463
465
alt_index = 0
464
- s1 = "%-15s " % (" {" + p [0 ] + "," )
466
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
465
467
a = p [2 ].split ("_" )
466
468
inst = a [0 ].replace ("ADC" , "" )
467
469
if len (inst ) == 0 :
@@ -523,7 +525,7 @@ def print_i2c(lst):
523
525
else :
524
526
prev_p = p [0 ]
525
527
alt_index = 0
526
- s1 = "%-15s " % (" {" + p [0 ] + "," )
528
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
527
529
# 2nd element is the I2C XXX signal
528
530
b = p [2 ].split ("_" )[0 ]
529
531
s1 += (
@@ -555,7 +557,7 @@ def print_pwm():
555
557
else :
556
558
prev_p = p [0 ]
557
559
alt_index = 0
558
- s1 = "%-15s " % (" {" + p [0 ] + "," )
560
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
559
561
# 2nd element is the PWM signal
560
562
a = p [2 ].split ("_" )
561
563
inst = a [0 ]
@@ -593,7 +595,7 @@ def print_uart(lst):
593
595
else :
594
596
prev_p = p [0 ]
595
597
alt_index = 0
596
- s1 = "%-15s " % (" {" + p [0 ] + "," )
598
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
597
599
# 2nd element is the UART_XX signal
598
600
b = p [2 ].split ("_" )[0 ]
599
601
s1 += "%-9s" % (b [: len (b ) - 1 ] + b [len (b ) - 1 :] + "," )
@@ -799,6 +801,15 @@ def print_usb(lst):
799
801
)
800
802
801
803
804
+ def print_dualpad_h ():
805
+ if len (dualpad_list ) != 0 :
806
+ out_h_file .write ("/* Dual pad pin name */\n " )
807
+ for p in dualpad_list :
808
+ s1 = " %-12s = %-5s | %s,\n " % (p [0 ], p [0 ].split ("_C" )[0 ], "ALTC" ,)
809
+ out_h_file .write (s1 )
810
+ out_h_file .write ("\n " )
811
+
812
+
802
813
def print_alt_h ():
803
814
if len (alt_list ) == 0 :
804
815
out_h_file .write ("/* No alternate */\n " )
@@ -877,6 +888,7 @@ def natural_sortkey2(list_2_elem):
877
888
def sort_my_lists ():
878
889
io_list .sort (key = natural_sortkey )
879
890
alt_list .sort (key = natural_sortkey )
891
+ dualpad_list .sort (key = natural_sortkey )
880
892
remap_list .sort (key = natural_sortkey )
881
893
adclist .sort (key = natural_sortkey )
882
894
daclist .sort (key = natural_sortkey )
@@ -911,6 +923,7 @@ def sort_my_lists():
911
923
def clean_all_lists ():
912
924
del io_list [:]
913
925
del alt_list [:]
926
+ del dualpad_list [:]
914
927
del remap_list [:]
915
928
del adclist [:]
916
929
del daclist [:]
@@ -943,7 +956,7 @@ def clean_all_lists():
943
956
944
957
def parse_pins ():
945
958
print (" * Getting pins per Ips..." )
946
- pinregex = r"^(P[A-Z][0-9][0-5]?)|^(ANA[0-9])"
959
+ pinregex = r"^(P[A-Z][0-9][0-5]?[_]?[C]? )|^(ANA[0-9])"
947
960
itemlist = xml_mcu .getElementsByTagName ("Pin" )
948
961
for s in itemlist :
949
962
m = re .match (pinregex , s .attributes ["Name" ].value )
@@ -956,7 +969,9 @@ def parse_pins():
956
969
pin = m .group (0 )[:3 ] + "_" + m .group (0 )[3 :]
957
970
name = s .attributes ["Name" ].value .strip () # full name: "PF0 / OSC_IN"
958
971
if s .attributes ["Type" ].value in ["I/O" , "MonoIO" ]:
959
- if (
972
+ if pin .endswith ("_C" ):
973
+ store_pin (pin , name , dualpad_list )
974
+ elif (
960
975
"Variant" in s .attributes
961
976
and "REMAP" in s .attributes ["Variant" ].value
962
977
):
@@ -1140,7 +1155,8 @@ def parse_pins():
1140
1155
)
1141
1156
)
1142
1157
print (" - {} I/O pins" .format (len (io_list )))
1143
-
1158
+ if len (dualpad_list ):
1159
+ print (" - {} dual pad" .format (len (dualpad_list )))
1144
1160
if len (remap_list ):
1145
1161
print (" - {} remap pins" .format (len (remap_list )))
1146
1162
print (" - {} ALT I/O pins" .format (len (alt_list )))
0 commit comments