@@ -156,92 +156,142 @@ def get_gpio_af_numF1(pintofind, iptofind):
156156 return mygpioaf
157157
158158
159+ # Return 0 if pin/signal not already in the list
160+ def isPinAndSignalInList (pin , signal , lst ):
161+ return len ([item for item in lst if item [0 ] == pin and item [2 ] == signal ])
162+
163+
159164def store_pin (pin , name ):
165+ if pin in [p [0 ] for p in io_list ]:
166+ return
160167 # store pin I/O
161168 p = [pin , name ]
162- io_list .append (p )
169+ if p not in io_list :
170+ io_list .append (p )
163171
164172
165173# function to store ADC list
166174def store_adc (pin , name , signal ):
175+ if isPinAndSignalInList (pin , signal , adclist ):
176+ return
167177 adclist .append ([pin , name , signal ])
168178
169179
170180# function to store DAC list
171181def store_dac (pin , name , signal ):
182+ if isPinAndSignalInList (pin , signal , daclist ):
183+ return
172184 daclist .append ([pin , name , signal ])
173185
174186
175187# function to store I2C list
176188def store_i2c (pin , name , signal ):
177189 # is it SDA or SCL ?
178190 if "_SCL" in signal :
191+ if isPinAndSignalInList (pin , signal , i2cscl_list ):
192+ return
179193 i2cscl_list .append ([pin , name , signal ])
180194 if "_SDA" in signal :
195+ if isPinAndSignalInList (pin , signal , i2csda_list ):
196+ return
181197 i2csda_list .append ([pin , name , signal ])
182198
183199
184200# function to store timers
185201def store_pwm (pin , name , signal ):
186202 if "_CH" in signal :
203+ if isPinAndSignalInList (pin , signal , pwm_list ):
204+ return
187205 pwm_list .append ([pin , name , signal ])
188206
189207
190208# function to store Uart pins
191209def store_uart (pin , name , signal ):
192210 if "_TX" in signal :
211+ if isPinAndSignalInList (pin , signal , uarttx_list ):
212+ return
193213 uarttx_list .append ([pin , name , signal ])
194214 if "_RX" in signal :
215+ if isPinAndSignalInList (pin , signal , uartrx_list ):
216+ return
195217 uartrx_list .append ([pin , name , signal ])
196218 if "_CTS" in signal :
219+ if isPinAndSignalInList (pin , signal , uartcts_list ):
220+ return
197221 uartcts_list .append ([pin , name , signal ])
198222 if "_RTS" in signal :
223+ if isPinAndSignalInList (pin , signal , uartrts_list ):
224+ return
199225 uartrts_list .append ([pin , name , signal ])
200226
201227
202228# function to store SPI pins
203229def store_spi (pin , name , signal ):
204230 if "_MISO" in signal :
231+ if isPinAndSignalInList (pin , signal , spimiso_list ):
232+ return
205233 spimiso_list .append ([pin , name , signal ])
206234 if "_MOSI" in signal :
235+ if isPinAndSignalInList (pin , signal , spimosi_list ):
236+ return
207237 spimosi_list .append ([pin , name , signal ])
208238 if "_SCK" in signal :
239+ if isPinAndSignalInList (pin , signal , spisclk_list ):
240+ return
209241 spisclk_list .append ([pin , name , signal ])
210242 if "_NSS" in signal :
243+ if isPinAndSignalInList (pin , signal , spissel_list ):
244+ return
211245 spissel_list .append ([pin , name , signal ])
212246
213247
214248# function to store CAN pins
215249def store_can (pin , name , signal ):
216250 if "_RX" in signal :
251+ if isPinAndSignalInList (pin , signal , canrd_list ):
252+ return
217253 canrd_list .append ([pin , name , signal ])
218254 if "_TX" in signal :
255+ if isPinAndSignalInList (pin , signal , cantd_list ):
256+ return
219257 cantd_list .append ([pin , name , signal ])
220258
221259
222260# function to store ETH list
223261def store_eth (pin , name , signal ):
262+ if isPinAndSignalInList (pin , signal , eth_list ):
263+ return
224264 eth_list .append ([pin , name , signal ])
225265
226266
227267# function to store QSPI pins
228268def store_qspi (pin , name , signal ):
269+ if isPinAndSignalInList (pin , signal , qspi_list ):
270+ return
229271 qspi_list .append ([pin , name , signal ])
230272
231273
232274# function to store SYS pins
233275def store_sys (pin , name , signal ):
234276 if "_WKUP" in signal :
277+ if isPinAndSignalInList (pin , signal , syswkup_list ):
278+ return
235279 syswkup_list .append ([pin , name , signal ])
236280
237281
238282# function to store USB pins
239283def store_usb (pin , name , signal ):
240284 if "OTG" not in signal :
285+ if isPinAndSignalInList (pin , signal , usb_list ):
286+ return
241287 usb_list .append ([pin , name , signal ])
242288 if signal .startswith ("USB_OTG_FS" ):
289+ if isPinAndSignalInList (pin , signal , usb_otgfs_list ):
290+ return
243291 usb_otgfs_list .append ([pin , name , signal ])
244292 if signal .startswith ("USB_OTG_HS" ):
293+ if isPinAndSignalInList (pin , signal , usb_otghs_list ):
294+ return
245295 usb_otghs_list .append ([pin , name , signal ])
246296
247297
@@ -944,7 +994,7 @@ def parse_pins():
944994 print (" * I/O pins found: %i" % nb_pin )
945995 # io_list.sort(key=natural_sortkey)
946996 # for io in io_list:
947- # print(io[1])
997+ # print(io[0] + ", " + io[ 1])
948998 print ("done\n " )
949999 clean_all_lists ()
9501000
0 commit comments