1313mcu_list = [] # 'name'
1414io_list = [] # 'PIN','name'
1515alt_list = [] # 'PIN','name'
16+ dualpad_list = [] # 'PIN','name'
1617adclist = [] # 'PIN','name','ADCSignal'
1718daclist = [] # 'PIN','name','DACSignal'
1819i2cscl_list = [] # 'PIN','name','I2CSCLSignal'
@@ -391,6 +392,7 @@ def print_all_lists():
391392 if print_list_header ("SD" , "SD" , "SD" , sd_list ):
392393 print_sd ()
393394 # Print specific PinNames in header file
395+ print_dualpad_h ()
394396 print_alt_h ()
395397 print_syswkup_h ()
396398 print_usb_h ()
@@ -460,7 +462,7 @@ def print_adc():
460462 else :
461463 prev_p = p [0 ]
462464 alt_index = 0
463- s1 = "%-15s " % (" {" + p [0 ] + "," )
465+ s1 = "%-16s " % (" {" + p [0 ] + "," )
464466 a = p [2 ].split ("_" )
465467 inst = a [0 ].replace ("ADC" , "" )
466468 if len (inst ) == 0 :
@@ -522,7 +524,7 @@ def print_i2c(lst):
522524 else :
523525 prev_p = p [0 ]
524526 alt_index = 0
525- s1 = "%-15s " % (" {" + p [0 ] + "," )
527+ s1 = "%-16s " % (" {" + p [0 ] + "," )
526528 # 2nd element is the I2C XXX signal
527529 b = p [2 ].split ("_" )[0 ]
528530 s1 += (
@@ -554,7 +556,7 @@ def print_pwm():
554556 else :
555557 prev_p = p [0 ]
556558 alt_index = 0
557- s1 = "%-15s " % (" {" + p [0 ] + "," )
559+ s1 = "%-16s " % (" {" + p [0 ] + "," )
558560 # 2nd element is the PWM signal
559561 a = p [2 ].split ("_" )
560562 inst = a [0 ]
@@ -592,7 +594,7 @@ def print_uart(lst):
592594 else :
593595 prev_p = p [0 ]
594596 alt_index = 0
595- s1 = "%-15s " % (" {" + p [0 ] + "," )
597+ s1 = "%-16s " % (" {" + p [0 ] + "," )
596598 # 2nd element is the UART_XX signal
597599 b = p [2 ].split ("_" )[0 ]
598600 s1 += "%-9s" % (b [: len (b ) - 1 ] + b [len (b ) - 1 :] + "," )
@@ -798,6 +800,15 @@ def print_usb(lst):
798800 )
799801
800802
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+
801812def print_alt_h ():
802813 if len (alt_list ) == 0 :
803814 out_h_file .write ("/* No alternate */\n " )
@@ -876,6 +887,7 @@ def natural_sortkey2(list_2_elem):
876887def sort_my_lists ():
877888 io_list .sort (key = natural_sortkey )
878889 alt_list .sort (key = natural_sortkey )
890+ dualpad_list .sort (key = natural_sortkey )
879891 adclist .sort (key = natural_sortkey )
880892 daclist .sort (key = natural_sortkey )
881893 i2cscl_list .sort (key = natural_sortkey )
@@ -909,6 +921,7 @@ def sort_my_lists():
909921def clean_all_lists ():
910922 del io_list [:]
911923 del alt_list [:]
924+ del dualpad_list [:]
912925 del adclist [:]
913926 del daclist [:]
914927 del i2cscl_list [:]
@@ -940,7 +953,7 @@ def clean_all_lists():
940953
941954def parse_pins ():
942955 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])"
944957 itemlist = xml_mcu .getElementsByTagName ("Pin" )
945958 for s in itemlist :
946959 m = re .match (pinregex , s .attributes ["Name" ].value )
@@ -952,10 +965,14 @@ def parse_pins():
952965 # pin formatted ANA_<number>: ANA_1
953966 pin = m .group (0 )[:3 ] + "_" + m .group (0 )[3 :]
954967 name = s .attributes ["Name" ].value .strip () # full name: "PF0 / OSC_IN"
968+
955969 if "Variant" in s .attributes and "REMAP" in s .attributes ["Variant" ].value :
956970 pin += "_ALTR"
957971 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 )
959976 else :
960977 continue
961978 siglist = s .getElementsByTagName ("Signal" )
@@ -1127,10 +1144,15 @@ def parse_pins():
11271144 print_all_lists ()
11281145
11291146 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 )
11321149 )
11331150 )
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+
11341156 # io_list.sort(key=natural_sortkey)
11351157 # for io in io_list:
11361158 # print(io[0] + ", " + io[1])
0 commit comments