1313mcu_list = [] # 'name'
1414io_list = [] # 'PIN','name'
1515alt_list = [] # 'PIN','name'
16+ remap_list = [] # 'PIN','name'
1617adclist = [] # 'PIN','name','ADCSignal'
1718daclist = [] # 'PIN','name','DACSignal'
1819i2cscl_list = [] # 'PIN','name','I2CSCLSignal'
@@ -163,11 +164,6 @@ def get_gpio_af_numF1(pintofind, iptofind):
163164 return mygpioaf
164165
165166
166- # Return 0 if pin/signal not already in the list
167- def isPinAndSignalInList (pin , signal , lst ):
168- return len ([item for item in lst if item [0 ] == pin and item [2 ] == signal ])
169-
170-
171167def store_pin (pin , name , dest_list ):
172168 if pin in [p [0 ] for p in dest_list ]:
173169 return
@@ -179,156 +175,101 @@ def store_pin(pin, name, dest_list):
179175
180176# function to store ADC list
181177def store_adc (pin , name , signal ):
182- if isPinAndSignalInList (pin , signal , adclist ):
183- return
184178 adclist .append ([pin , name , signal ])
185179
186180
187181# function to store DAC list
188182def store_dac (pin , name , signal ):
189- if isPinAndSignalInList (pin , signal , daclist ):
190- return
191183 daclist .append ([pin , name , signal ])
192184
193185
194186# function to store I2C list
195187def store_i2c (pin , name , signal ):
196188 # is it SDA or SCL ?
197189 if "_SCL" in signal :
198- if isPinAndSignalInList (pin , signal , i2cscl_list ):
199- return
200190 i2cscl_list .append ([pin , name , signal ])
201191 if "_SDA" in signal :
202- if isPinAndSignalInList (pin , signal , i2csda_list ):
203- return
204192 i2csda_list .append ([pin , name , signal ])
205193
206194
207195# function to store timers
208196def store_pwm (pin , name , signal ):
209197 if "_CH" in signal :
210- if isPinAndSignalInList (pin , signal , pwm_list ):
211- return
212198 pwm_list .append ([pin , name , signal ])
213199
214200
215201# function to store Uart pins
216202def store_uart (pin , name , signal ):
217203 if "_TX" in signal :
218- if isPinAndSignalInList (pin , signal , uarttx_list ):
219- return
220204 uarttx_list .append ([pin , name , signal ])
221205 if "_RX" in signal :
222- if isPinAndSignalInList (pin , signal , uartrx_list ):
223- return
224206 uartrx_list .append ([pin , name , signal ])
225207 if "_CTS" in signal :
226- if isPinAndSignalInList (pin , signal , uartcts_list ):
227- return
228208 uartcts_list .append ([pin , name , signal ])
229209 if "_RTS" in signal :
230- if isPinAndSignalInList (pin , signal , uartrts_list ):
231- return
232210 uartrts_list .append ([pin , name , signal ])
233211
234212
235213# function to store SPI pins
236214def store_spi (pin , name , signal ):
237215 if "_MISO" in signal :
238- if isPinAndSignalInList (pin , signal , spimiso_list ):
239- return
240216 spimiso_list .append ([pin , name , signal ])
241217 if "_MOSI" in signal :
242- if isPinAndSignalInList (pin , signal , spimosi_list ):
243- return
244218 spimosi_list .append ([pin , name , signal ])
245219 if "_SCK" in signal :
246- if isPinAndSignalInList (pin , signal , spisclk_list ):
247- return
248220 spisclk_list .append ([pin , name , signal ])
249221 if "_NSS" in signal :
250- if isPinAndSignalInList (pin , signal , spissel_list ):
251- return
252222 spissel_list .append ([pin , name , signal ])
253223
254224
255225# function to store CAN pins
256226def store_can (pin , name , signal ):
257227 if "_RX" in signal :
258- if isPinAndSignalInList (pin , signal , canrd_list ):
259- return
260228 canrd_list .append ([pin , name , signal ])
261229 if "_TX" in signal :
262- if isPinAndSignalInList (pin , signal , cantd_list ):
263- return
264230 cantd_list .append ([pin , name , signal ])
265231
266232
267233# function to store ETH list
268234def store_eth (pin , name , signal ):
269- if isPinAndSignalInList (pin , signal , eth_list ):
270- return
271235 eth_list .append ([pin , name , signal ])
272236
273237
274238# function to store QSPI pins
275239def store_qspi (pin , name , signal ):
276240 if "_IO0" in signal :
277- if isPinAndSignalInList (pin , signal , quadspidata0_list ):
278- return
279241 quadspidata0_list .append ([pin , name , signal ])
280242 if "_IO1" in signal :
281- if isPinAndSignalInList (pin , signal , quadspidata1_list ):
282- return
283243 quadspidata1_list .append ([pin , name , signal ])
284244 if "_IO2" in signal :
285- if isPinAndSignalInList (pin , signal , quadspidata2_list ):
286- return
287245 quadspidata2_list .append ([pin , name , signal ])
288246 if "_IO3" in signal :
289- if isPinAndSignalInList (pin , signal , quadspidata3_list ):
290- return
291247 quadspidata3_list .append ([pin , name , signal ])
292248 if "_CLK" in signal :
293- if isPinAndSignalInList (pin , signal , quadspisclk_list ):
294- return
295249 quadspisclk_list .append ([pin , name , signal ])
296250 if "_NCS" in signal :
297- if isPinAndSignalInList (pin , signal , quadspissel_list ):
298- return
299251 quadspissel_list .append ([pin , name , signal ])
300252
301253
302254# function to store SYS pins
303255def store_sys (pin , name , signal ):
304256 if "_WKUP" in signal :
305257 signal = signal .replace ("PWR" , "SYS" )
306- if isPinAndSignalInList (pin , signal , syswkup_list ):
307- return
308258 syswkup_list .append ([pin , name , signal ])
309259
310260
311261# function to store USB pins
312262def store_usb (pin , name , signal ):
313263 if "OTG" not in signal :
314- if isPinAndSignalInList (pin , signal , usb_list ):
315- return
316264 usb_list .append ([pin , name , signal ])
317265 if signal .startswith ("USB_OTG_FS" ):
318- if isPinAndSignalInList (pin , signal , usb_otgfs_list ):
319- return
320266 usb_otgfs_list .append ([pin , name , signal ])
321267 if signal .startswith ("USB_OTG_HS" ):
322- if isPinAndSignalInList (pin , signal , usb_otghs_list ):
323- return
324268 usb_otghs_list .append ([pin , name , signal ])
325269
326270
327271# function to store SD pins
328272def store_sd (pin , name , signal ):
329- # print(pin, signal, name)
330- if isPinAndSignalInList (pin , signal , sd_list ):
331- return
332273 sd_list .append ([pin , name , signal ])
333274
334275
@@ -936,6 +877,7 @@ def natural_sortkey2(list_2_elem):
936877def sort_my_lists ():
937878 io_list .sort (key = natural_sortkey )
938879 alt_list .sort (key = natural_sortkey )
880+ remap_list .sort (key = natural_sortkey )
939881 adclist .sort (key = natural_sortkey )
940882 daclist .sort (key = natural_sortkey )
941883 i2cscl_list .sort (key = natural_sortkey )
@@ -969,6 +911,7 @@ def sort_my_lists():
969911def clean_all_lists ():
970912 del io_list [:]
971913 del alt_list [:]
914+ del remap_list [:]
972915 del adclist [:]
973916 del daclist [:]
974917 del i2cscl_list [:]
@@ -1013,7 +956,14 @@ def parse_pins():
1013956 pin = m .group (0 )[:3 ] + "_" + m .group (0 )[3 :]
1014957 name = s .attributes ["Name" ].value .strip () # full name: "PF0 / OSC_IN"
1015958 if s .attributes ["Type" ].value in ["I/O" , "MonoIO" ]:
1016- store_pin (pin , name , io_list )
959+ if (
960+ "Variant" in s .attributes
961+ and "REMAP" in s .attributes ["Variant" ].value
962+ ):
963+ pin += "_R"
964+ store_pin (pin , name , remap_list )
965+ else :
966+ store_pin (pin , name , io_list )
1017967 else :
1018968 continue
1019969 siglist = s .getElementsByTagName ("Signal" )
@@ -1185,11 +1135,16 @@ def parse_pins():
11851135 print_all_lists ()
11861136
11871137 print (
1188- " * Total I/O pins found: {} ({} + {} ALT I/O pins) \n " .format (
1189- ( len (io_list ) + len (alt_list )), len (io_list ), len (alt_list )
1138+ "* Total I/O pins found: {}" .format (
1139+ len (io_list ) + len (alt_list ) + len (dualpad_list ) + len (remap_list )
11901140 )
11911141 )
1192- # io_list.sort(key=natural_sortkey)
1142+ print (" - {} I/O pins" .format (len (io_list )))
1143+
1144+ if len (remap_list ):
1145+ print (" - {} remap pins" .format (len (remap_list )))
1146+ print (" - {} ALT I/O pins" .format (len (alt_list )))
1147+
11931148 # for io in io_list:
11941149 # print(io[0] + ", " + io[1])
11951150
0 commit comments