Can I use the Program Pin (gpio27 or gpio31) and other boot control pins (gpio25 and gpio21) for other functions?

Yes, but they should be used as output pins only, not as input pins.  And there should not be any pullup resistors.  The reason for this is that these pins are sampled immediately after reset release, and this includes software resets as well as hardware resets.  The reset will cause these pins to be inputs with pull-down resistors enabled.  So internal software enabled usages of the pin will be cancelled by the reset, and the pins will be inputs when software starts up after reset.  But there needs to be nothing external that drives these pins.  Gainspan's GS2100M EVB is an example where gpio31 is used as the spi1_dout signal after reset.  It also uses the gpio25 pin as uart0_cts.  These functions are outputs.

Powered by Zendesk