13
13
mcu_list = [] # 'name'
14
14
io_list = [] # 'PIN','name'
15
15
alt_list = [] # 'PIN','name'
16
+ remap_list = [] # 'PIN','name'
16
17
adclist = [] # 'PIN','name','ADCSignal'
17
18
daclist = [] # 'PIN','name','DACSignal'
18
19
i2cscl_list = [] # 'PIN','name','I2CSCLSignal'
@@ -163,11 +164,6 @@ def get_gpio_af_numF1(pintofind, iptofind):
163
164
return mygpioaf
164
165
165
166
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
-
171
167
def store_pin (pin , name , dest_list ):
172
168
if pin in [p [0 ] for p in dest_list ]:
173
169
return
@@ -179,156 +175,101 @@ def store_pin(pin, name, dest_list):
179
175
180
176
# function to store ADC list
181
177
def store_adc (pin , name , signal ):
182
- if isPinAndSignalInList (pin , signal , adclist ):
183
- return
184
178
adclist .append ([pin , name , signal ])
185
179
186
180
187
181
# function to store DAC list
188
182
def store_dac (pin , name , signal ):
189
- if isPinAndSignalInList (pin , signal , daclist ):
190
- return
191
183
daclist .append ([pin , name , signal ])
192
184
193
185
194
186
# function to store I2C list
195
187
def store_i2c (pin , name , signal ):
196
188
# is it SDA or SCL ?
197
189
if "_SCL" in signal :
198
- if isPinAndSignalInList (pin , signal , i2cscl_list ):
199
- return
200
190
i2cscl_list .append ([pin , name , signal ])
201
191
if "_SDA" in signal :
202
- if isPinAndSignalInList (pin , signal , i2csda_list ):
203
- return
204
192
i2csda_list .append ([pin , name , signal ])
205
193
206
194
207
195
# function to store timers
208
196
def store_pwm (pin , name , signal ):
209
197
if "_CH" in signal :
210
- if isPinAndSignalInList (pin , signal , pwm_list ):
211
- return
212
198
pwm_list .append ([pin , name , signal ])
213
199
214
200
215
201
# function to store Uart pins
216
202
def store_uart (pin , name , signal ):
217
203
if "_TX" in signal :
218
- if isPinAndSignalInList (pin , signal , uarttx_list ):
219
- return
220
204
uarttx_list .append ([pin , name , signal ])
221
205
if "_RX" in signal :
222
- if isPinAndSignalInList (pin , signal , uartrx_list ):
223
- return
224
206
uartrx_list .append ([pin , name , signal ])
225
207
if "_CTS" in signal :
226
- if isPinAndSignalInList (pin , signal , uartcts_list ):
227
- return
228
208
uartcts_list .append ([pin , name , signal ])
229
209
if "_RTS" in signal :
230
- if isPinAndSignalInList (pin , signal , uartrts_list ):
231
- return
232
210
uartrts_list .append ([pin , name , signal ])
233
211
234
212
235
213
# function to store SPI pins
236
214
def store_spi (pin , name , signal ):
237
215
if "_MISO" in signal :
238
- if isPinAndSignalInList (pin , signal , spimiso_list ):
239
- return
240
216
spimiso_list .append ([pin , name , signal ])
241
217
if "_MOSI" in signal :
242
- if isPinAndSignalInList (pin , signal , spimosi_list ):
243
- return
244
218
spimosi_list .append ([pin , name , signal ])
245
219
if "_SCK" in signal :
246
- if isPinAndSignalInList (pin , signal , spisclk_list ):
247
- return
248
220
spisclk_list .append ([pin , name , signal ])
249
221
if "_NSS" in signal :
250
- if isPinAndSignalInList (pin , signal , spissel_list ):
251
- return
252
222
spissel_list .append ([pin , name , signal ])
253
223
254
224
255
225
# function to store CAN pins
256
226
def store_can (pin , name , signal ):
257
227
if "_RX" in signal :
258
- if isPinAndSignalInList (pin , signal , canrd_list ):
259
- return
260
228
canrd_list .append ([pin , name , signal ])
261
229
if "_TX" in signal :
262
- if isPinAndSignalInList (pin , signal , cantd_list ):
263
- return
264
230
cantd_list .append ([pin , name , signal ])
265
231
266
232
267
233
# function to store ETH list
268
234
def store_eth (pin , name , signal ):
269
- if isPinAndSignalInList (pin , signal , eth_list ):
270
- return
271
235
eth_list .append ([pin , name , signal ])
272
236
273
237
274
238
# function to store QSPI pins
275
239
def store_qspi (pin , name , signal ):
276
240
if "_IO0" in signal :
277
- if isPinAndSignalInList (pin , signal , quadspidata0_list ):
278
- return
279
241
quadspidata0_list .append ([pin , name , signal ])
280
242
if "_IO1" in signal :
281
- if isPinAndSignalInList (pin , signal , quadspidata1_list ):
282
- return
283
243
quadspidata1_list .append ([pin , name , signal ])
284
244
if "_IO2" in signal :
285
- if isPinAndSignalInList (pin , signal , quadspidata2_list ):
286
- return
287
245
quadspidata2_list .append ([pin , name , signal ])
288
246
if "_IO3" in signal :
289
- if isPinAndSignalInList (pin , signal , quadspidata3_list ):
290
- return
291
247
quadspidata3_list .append ([pin , name , signal ])
292
248
if "_CLK" in signal :
293
- if isPinAndSignalInList (pin , signal , quadspisclk_list ):
294
- return
295
249
quadspisclk_list .append ([pin , name , signal ])
296
250
if "_NCS" in signal :
297
- if isPinAndSignalInList (pin , signal , quadspissel_list ):
298
- return
299
251
quadspissel_list .append ([pin , name , signal ])
300
252
301
253
302
254
# function to store SYS pins
303
255
def store_sys (pin , name , signal ):
304
256
if "_WKUP" in signal :
305
257
signal = signal .replace ("PWR" , "SYS" )
306
- if isPinAndSignalInList (pin , signal , syswkup_list ):
307
- return
308
258
syswkup_list .append ([pin , name , signal ])
309
259
310
260
311
261
# function to store USB pins
312
262
def store_usb (pin , name , signal ):
313
263
if "OTG" not in signal :
314
- if isPinAndSignalInList (pin , signal , usb_list ):
315
- return
316
264
usb_list .append ([pin , name , signal ])
317
265
if signal .startswith ("USB_OTG_FS" ):
318
- if isPinAndSignalInList (pin , signal , usb_otgfs_list ):
319
- return
320
266
usb_otgfs_list .append ([pin , name , signal ])
321
267
if signal .startswith ("USB_OTG_HS" ):
322
- if isPinAndSignalInList (pin , signal , usb_otghs_list ):
323
- return
324
268
usb_otghs_list .append ([pin , name , signal ])
325
269
326
270
327
271
# function to store SD pins
328
272
def store_sd (pin , name , signal ):
329
- # print(pin, signal, name)
330
- if isPinAndSignalInList (pin , signal , sd_list ):
331
- return
332
273
sd_list .append ([pin , name , signal ])
333
274
334
275
@@ -936,6 +877,7 @@ def natural_sortkey2(list_2_elem):
936
877
def sort_my_lists ():
937
878
io_list .sort (key = natural_sortkey )
938
879
alt_list .sort (key = natural_sortkey )
880
+ remap_list .sort (key = natural_sortkey )
939
881
adclist .sort (key = natural_sortkey )
940
882
daclist .sort (key = natural_sortkey )
941
883
i2cscl_list .sort (key = natural_sortkey )
@@ -969,6 +911,7 @@ def sort_my_lists():
969
911
def clean_all_lists ():
970
912
del io_list [:]
971
913
del alt_list [:]
914
+ del remap_list [:]
972
915
del adclist [:]
973
916
del daclist [:]
974
917
del i2cscl_list [:]
@@ -1013,7 +956,14 @@ def parse_pins():
1013
956
pin = m .group (0 )[:3 ] + "_" + m .group (0 )[3 :]
1014
957
name = s .attributes ["Name" ].value .strip () # full name: "PF0 / OSC_IN"
1015
958
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 )
1017
967
else :
1018
968
continue
1019
969
siglist = s .getElementsByTagName ("Signal" )
@@ -1185,11 +1135,16 @@ def parse_pins():
1185
1135
print_all_lists ()
1186
1136
1187
1137
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 )
1190
1140
)
1191
1141
)
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
+
1193
1148
# for io in io_list:
1194
1149
# print(io[0] + ", " + io[1])
1195
1150
0 commit comments