before boot the following wires can be set to give one of 3 modes of operation.
|UART||0||0||x or 1|
|FLASH (DEFAULT)||0||1||x or 1|
Once you have flashed your program on in Flash mode, take the low off the GPIO0 and reboot ,to run your program properly.
UART mode is where the code it uploaded to the chip and GPIO0 must be low on boot to enter this mode .
FLASH mode is when running the program. Take GPIO0 high after UART boot or it will stall on first reset.
SDIO mode is where the chip boots from an SD card. I dont think this is available yet.
For the two modes we care about, the processor expects GPIO15 to low and GPIO2 to be high on boot. GPIO0 selects between the two modes we are going to discuss here. During normal operation, we would want to use a resistor to pull GPIO0 high.5 That will cause the bootloader inside the ESP8266 to read data from the EEPROM chip into the ESP8266’s IRAM and boot our program. If we set GPIO0 low, however, the boot ROM inside the ESP8266 takes over and it begins communicating over the UART. Using this boot ROM we can push our programs to the flash memory. A good way to make use of this is to connect a switch from GPIO0 to ground so you can put it into program mode at will by holding the button at power on