13
13
mcu_list = [] # 'name'
14
14
io_list = [] # 'PIN','name'
15
15
alt_list = [] # 'PIN','name'
16
+ dualpad_list = [] # 'PIN','name'
16
17
adclist = [] # 'PIN','name','ADCSignal'
17
18
daclist = [] # 'PIN','name','DACSignal'
18
19
i2cscl_list = [] # 'PIN','name','I2CSCLSignal'
@@ -391,6 +392,7 @@ def print_all_lists():
391
392
if print_list_header ("SD" , "SD" , "SD" , sd_list ):
392
393
print_sd ()
393
394
# Print specific PinNames in header file
395
+ print_dualpad_h ()
394
396
print_alt_h ()
395
397
print_syswkup_h ()
396
398
print_usb_h ()
@@ -460,7 +462,7 @@ def print_adc():
460
462
else :
461
463
prev_p = p [0 ]
462
464
alt_index = 0
463
- s1 = "%-15s " % (" {" + p [0 ] + "," )
465
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
464
466
a = p [2 ].split ("_" )
465
467
inst = a [0 ].replace ("ADC" , "" )
466
468
if len (inst ) == 0 :
@@ -522,7 +524,7 @@ def print_i2c(lst):
522
524
else :
523
525
prev_p = p [0 ]
524
526
alt_index = 0
525
- s1 = "%-15s " % (" {" + p [0 ] + "," )
527
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
526
528
# 2nd element is the I2C XXX signal
527
529
b = p [2 ].split ("_" )[0 ]
528
530
s1 += (
@@ -554,7 +556,7 @@ def print_pwm():
554
556
else :
555
557
prev_p = p [0 ]
556
558
alt_index = 0
557
- s1 = "%-15s " % (" {" + p [0 ] + "," )
559
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
558
560
# 2nd element is the PWM signal
559
561
a = p [2 ].split ("_" )
560
562
inst = a [0 ]
@@ -592,7 +594,7 @@ def print_uart(lst):
592
594
else :
593
595
prev_p = p [0 ]
594
596
alt_index = 0
595
- s1 = "%-15s " % (" {" + p [0 ] + "," )
597
+ s1 = "%-16s " % (" {" + p [0 ] + "," )
596
598
# 2nd element is the UART_XX signal
597
599
b = p [2 ].split ("_" )[0 ]
598
600
s1 += "%-9s" % (b [: len (b ) - 1 ] + b [len (b ) - 1 :] + "," )
@@ -798,6 +800,15 @@ def print_usb(lst):
798
800
)
799
801
800
802
803
+ def print_dualpad_h ():
804
+ if len (dualpad_list ) != 0 :
805
+ out_h_file .write ("/* Dual pad pin name */\n " )
806
+ for p in dualpad_list :
807
+ s1 = " %-12s = %-5s | %s,\n " % (p [0 ], p [0 ].split ("_C" )[0 ], "ALTC" ,)
808
+ out_h_file .write (s1 )
809
+ out_h_file .write ("\n " )
810
+
811
+
801
812
def print_alt_h ():
802
813
if len (alt_list ) == 0 :
803
814
out_h_file .write ("/* No alternate */\n " )
@@ -876,6 +887,7 @@ def natural_sortkey2(list_2_elem):
876
887
def sort_my_lists ():
877
888
io_list .sort (key = natural_sortkey )
878
889
alt_list .sort (key = natural_sortkey )
890
+ dualpad_list .sort (key = natural_sortkey )
879
891
adclist .sort (key = natural_sortkey )
880
892
daclist .sort (key = natural_sortkey )
881
893
i2cscl_list .sort (key = natural_sortkey )
@@ -909,6 +921,7 @@ def sort_my_lists():
909
921
def clean_all_lists ():
910
922
del io_list [:]
911
923
del alt_list [:]
924
+ del dualpad_list [:]
912
925
del adclist [:]
913
926
del daclist [:]
914
927
del i2cscl_list [:]
@@ -940,7 +953,7 @@ def clean_all_lists():
940
953
941
954
def parse_pins ():
942
955
print (" * Getting pins per Ips..." )
943
- pinregex = r"^(P[A-Z][0-9][0-5]?)|^(ANA[0-9])"
956
+ pinregex = r"^(P[A-Z][0-9][0-5]?[_]?[C]? )|^(ANA[0-9])"
944
957
itemlist = xml_mcu .getElementsByTagName ("Pin" )
945
958
for s in itemlist :
946
959
m = re .match (pinregex , s .attributes ["Name" ].value )
@@ -952,10 +965,14 @@ def parse_pins():
952
965
# pin formatted ANA_<number>: ANA_1
953
966
pin = m .group (0 )[:3 ] + "_" + m .group (0 )[3 :]
954
967
name = s .attributes ["Name" ].value .strip () # full name: "PF0 / OSC_IN"
968
+
955
969
if "Variant" in s .attributes and "REMAP" in s .attributes ["Variant" ].value :
956
970
pin += "_ALTR"
957
971
if s .attributes ["Type" ].value in ["I/O" , "MonoIO" ]:
958
- store_pin (pin , name , io_list )
972
+ if pin .endswith ("_C" ):
973
+ store_pin (pin , name , dualpad_list )
974
+ else :
975
+ store_pin (pin , name , io_list )
959
976
else :
960
977
continue
961
978
siglist = s .getElementsByTagName ("Signal" )
@@ -1127,10 +1144,15 @@ def parse_pins():
1127
1144
print_all_lists ()
1128
1145
1129
1146
print (
1130
- " * Total I/O pins found: {} ({} + {} ALT I/O pins) \n " .format (
1131
- ( len (io_list ) + len (alt_list )), len ( io_list ), len (alt_list )
1147
+ "* Total I/O pins found: {}" .format (
1148
+ len (io_list ) + len (alt_list ) + len (dualpad_list )
1132
1149
)
1133
1150
)
1151
+ print (" - {} I/O pins" .format (len (io_list )))
1152
+ if len (dualpad_list ):
1153
+ print (" - {} dual pad" .format (len (dualpad_list )))
1154
+ print (" - {} ALT I/O pins" .format (len (alt_list )))
1155
+
1134
1156
# io_list.sort(key=natural_sortkey)
1135
1157
# for io in io_list:
1136
1158
# print(io[0] + ", " + io[1])
0 commit comments