diff --git a/src/genpinmap/genpinmap_arduino.py b/src/genpinmap/genpinmap_arduino.py index 0c6489bc..4d1e9555 100644 --- a/src/genpinmap/genpinmap_arduino.py +++ b/src/genpinmap/genpinmap_arduino.py @@ -156,19 +156,31 @@ def get_gpio_af_numF1(pintofind, iptofind): return mygpioaf +# Return 0 if pin/signal not already in the list +def isPinAndSignalInList(pin, signal, lst): + return len([item for item in lst if item[0] == pin and item[2] == signal]) + + def store_pin(pin, name): + if pin in [p[0] for p in io_list]: + return # store pin I/O p = [pin, name] - io_list.append(p) + if p not in io_list: + io_list.append(p) # function to store ADC list def store_adc(pin, name, signal): + if isPinAndSignalInList(pin, signal, adclist): + return adclist.append([pin, name, signal]) # function to store DAC list def store_dac(pin, name, signal): + if isPinAndSignalInList(pin, signal, daclist): + return daclist.append([pin, name, signal]) @@ -176,72 +188,110 @@ def store_dac(pin, name, signal): def store_i2c(pin, name, signal): # is it SDA or SCL ? if "_SCL" in signal: + if isPinAndSignalInList(pin, signal, i2cscl_list): + return i2cscl_list.append([pin, name, signal]) if "_SDA" in signal: + if isPinAndSignalInList(pin, signal, i2csda_list): + return i2csda_list.append([pin, name, signal]) # function to store timers def store_pwm(pin, name, signal): if "_CH" in signal: + if isPinAndSignalInList(pin, signal, pwm_list): + return pwm_list.append([pin, name, signal]) # function to store Uart pins def store_uart(pin, name, signal): if "_TX" in signal: + if isPinAndSignalInList(pin, signal, uarttx_list): + return uarttx_list.append([pin, name, signal]) if "_RX" in signal: + if isPinAndSignalInList(pin, signal, uartrx_list): + return uartrx_list.append([pin, name, signal]) if "_CTS" in signal: + if isPinAndSignalInList(pin, signal, uartcts_list): + return uartcts_list.append([pin, name, signal]) if "_RTS" in signal: + if isPinAndSignalInList(pin, signal, uartrts_list): + return uartrts_list.append([pin, name, signal]) # function to store SPI pins def store_spi(pin, name, signal): if "_MISO" in signal: + if isPinAndSignalInList(pin, signal, spimiso_list): + return spimiso_list.append([pin, name, signal]) if "_MOSI" in signal: + if isPinAndSignalInList(pin, signal, spimosi_list): + return spimosi_list.append([pin, name, signal]) if "_SCK" in signal: + if isPinAndSignalInList(pin, signal, spisclk_list): + return spisclk_list.append([pin, name, signal]) if "_NSS" in signal: + if isPinAndSignalInList(pin, signal, spissel_list): + return spissel_list.append([pin, name, signal]) # function to store CAN pins def store_can(pin, name, signal): if "_RX" in signal: + if isPinAndSignalInList(pin, signal, canrd_list): + return canrd_list.append([pin, name, signal]) if "_TX" in signal: + if isPinAndSignalInList(pin, signal, cantd_list): + return cantd_list.append([pin, name, signal]) # function to store ETH list def store_eth(pin, name, signal): + if isPinAndSignalInList(pin, signal, eth_list): + return eth_list.append([pin, name, signal]) # function to store QSPI pins def store_qspi(pin, name, signal): + if isPinAndSignalInList(pin, signal, qspi_list): + return qspi_list.append([pin, name, signal]) # function to store SYS pins def store_sys(pin, name, signal): if "_WKUP" in signal: + if isPinAndSignalInList(pin, signal, syswkup_list): + return syswkup_list.append([pin, name, signal]) # function to store USB pins def store_usb(pin, name, signal): if "OTG" not in signal: + if isPinAndSignalInList(pin, signal, usb_list): + return usb_list.append([pin, name, signal]) if signal.startswith("USB_OTG_FS"): + if isPinAndSignalInList(pin, signal, usb_otgfs_list): + return usb_otgfs_list.append([pin, name, signal]) if signal.startswith("USB_OTG_HS"): + if isPinAndSignalInList(pin, signal, usb_otghs_list): + return usb_otghs_list.append([pin, name, signal]) @@ -944,7 +994,7 @@ for mcu_file in mcu_list: print(" * I/O pins found: %i" % nb_pin) # io_list.sort(key=natural_sortkey) # for io in io_list: - # print(io[1]) + # print(io[0] + ", " + io[1]) print("done\n") clean_all_lists()