ESP8266 Support WIKI

User Tools

Site Tools


setup-windows-compiler-esp8266

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
setup-windows-compiler-esp8266 [2017/11/19 14:17]
wickedcode [Visual Studio IDE]
setup-windows-compiler-esp8266 [2018/02/25 04:12]
dcm684 [Things to watch out for] Escaped underscore
Line 3: Line 3:
 ===== Visual Studio IDE ===== ===== Visual Studio IDE =====
  
-This document will allow you to develop native C/C++ firmware applications for the ESP8266 using Windows. You can setup your development environment using Microsoft Visual Studio IDE. Using the accompanying serial terminal and flash writer application,​ you will be able to edit compile, link, flash and run without ever needing to leave the IDE. You can download [[https://​www.visualstudio.com/​free-developer-offers/​|Microsoft Visual Studio Comunity]] for free.+This document will allow you to develop native C/C++ firmware applications for the ESP8266 using Windows. You can setup your development environment using Microsoft Visual Studio IDE. Using the accompanying serial terminal and flash writer application,​ you will be able to edit compile, link, flash and run without ever needing to leave the IDE. You can download [[https://​www.visualstudio.com/​free-developer-offers/​|Microsoft Visual Studio Comunity]] for free. If you want to setup environment manually (more control) please refer to Toolset installation section. Otherwise you can use [[http://​bbs.espressif.com/​viewtopic.php?​f=7&​t=3577|ESP8266 Wizard]].
  
 You can also use a [[http://​visualgdb.com/​|third-party plugin]] to [[http://​visualgdb.com/​tutorials/​esp8266/​|setup building and debugging automatically]]. You can also use a [[http://​visualgdb.com/​|third-party plugin]] to [[http://​visualgdb.com/​tutorials/​esp8266/​|setup building and debugging automatically]].
Line 13: Line 13:
  
 This particular version of the toolset is designed to work under Windows 7 or 8, 32 or 64bit. ​ This particular version of the toolset is designed to work under Windows 7 or 8, 32 or 64bit. ​
-You can download a pre-built ESP8266 toolchain that contains Python and the ESP8266 SDK [[http://​gnutoolchains.com/​esp8266/​|here]]. Alternatively you can gather the necessary components manually:+You can **[[http://​gnutoolchains.com/​esp8266/​|download]]** a pre-built ESP8266 toolchain that contains Python and the ESP8266 SDK. Alternatively you can gather the necessary components manually:
  
   * Create a directory to put all your ESP stuff in. I put mine in **E:​\ESP8266**,​ but obviously yours will be different.   * Create a directory to put all your ESP stuff in. I put mine in **E:​\ESP8266**,​ but obviously yours will be different.
Line 19: Line 19:
   * You need **[[http://​pyserial.sourceforge.net/​|PySerial]]**.   * You need **[[http://​pyserial.sourceforge.net/​|PySerial]]**.
   * Get **[[http://​www.mingw.org/​|minGW]]**. In the package manager, choose **mingw-developer-toolkit** and **mingw-base**. This will give you **make.exe** and some important utilities, like **mkdir.exe** that the makefiles will need.   * Get **[[http://​www.mingw.org/​|minGW]]**. In the package manager, choose **mingw-developer-toolkit** and **mingw-base**. This will give you **make.exe** and some important utilities, like **mkdir.exe** that the makefiles will need.
-  * Get the **[[https://​github.com/​espressif/​esp_iot_rtos_sdk/​archive/​master.zip|sdk]]**. Install it under your chosen directory. Mine is in **E:​\ESP8266\esp_iot_rtos_sdk-master**. +  * Get the **[[https://​github.com/​espressif/​esp_iot_rtos_sdk/​archive/​master.zip|sdk]]**. Install it under your chosen directory. Mine is in **E:​\ESP8266\esp\_iot\_rtos\_sdk-master**. 
-  * Download the missing libraries for the SDK: **[[https://​github.com/​espressif/​esp_iot_rtos_sdk_lib/​archive/​master.zip|FreeRTOS libraries for SDK]]**. Add them to the **E:​\ESP8266\esp_iot_rtos_sdk-master\lib** directory.+  * Download the missing libraries for the SDK: **[[https://​github.com/​espressif/​esp_iot_rtos_sdk_lib/​archive/​master.zip|FreeRTOS libraries for SDK]]**. Add them to the **E:​\ESP8266\esp\_iot\_rtos\_sdk-master\lib** directory.
   * Get the **[[https://​drive.google.com/​file/​d/​0B1kVUQJ3na10RkhtRDE1UFZBVzg/​view?​usp=sharing|pre-built compiler]]**. Stick it in your chosen directory. Mine is in **E:​\ESP8266\xtensa-lx106-elf**.   * Get the **[[https://​drive.google.com/​file/​d/​0B1kVUQJ3na10RkhtRDE1UFZBVzg/​view?​usp=sharing|pre-built compiler]]**. Stick it in your chosen directory. Mine is in **E:​\ESP8266\xtensa-lx106-elf**.
   * Get the missing xtensa includes for gcc **[[http://​bbs.espressif.com/​viewtopic.php?​f=5&​t=67|here]]**. It is the file **xtensa.tar.bz2**. Extract them into the compiler subdirectory:​ **E:​\ESP8266\xtensa-lx106-elf\xtensa-lx106-elf\include**.   * Get the missing xtensa includes for gcc **[[http://​bbs.espressif.com/​viewtopic.php?​f=5&​t=67|here]]**. It is the file **xtensa.tar.bz2**. Extract them into the compiler subdirectory:​ **E:​\ESP8266\xtensa-lx106-elf\xtensa-lx106-elf\include**.
Line 37: Line 37:
  
   * So in my project setup, in Visual Studio, I use ESPMAKE instead of make.   * So in my project setup, in Visual Studio, I use ESPMAKE instead of make.
-  * Modify the makefile in the xPL_ESP8266 ​project so that it reflects your locations for the tools and sdk. You should be able to compile and flash by simply typing '​make'​ or 'make flash' in the xPL_ESP8266 ​directory.+  * Modify the makefile in the xPL\_ESP8266 ​project so that it reflects your locations for the tools and sdk. You should be able to compile and flash by simply typing '​make'​ or 'make flash' in the xPL\_ESP8266 ​directory.
   * Get the enhanced **[[https://​github.com/​peteben/​ESP-Termie|serial terminal and firmware tool]]**. You need the modified Python tool to flash the chip, **esptool-py.py**. This version is enhanced to reset the chip and bring it into firmware update mode automatically by using DTR. It also connects to Termie, the serial terminal application to share the serial port connection.   * Get the enhanced **[[https://​github.com/​peteben/​ESP-Termie|serial terminal and firmware tool]]**. You need the modified Python tool to flash the chip, **esptool-py.py**. This version is enhanced to reset the chip and bring it into firmware update mode automatically by using DTR. It also connects to Termie, the serial terminal application to share the serial port connection.
   * Compile '​Termie'​ the serial terminal. I modified this program to use a named pipe to communicate with the esptool-py flasher application. Thus it knows when to disconnect from the serial port when you want to flash the chip.   * Compile '​Termie'​ the serial terminal. I modified this program to use a named pipe to communicate with the esptool-py flasher application. Thus it knows when to disconnect from the serial port when you want to flash the chip.
Line 59: Line 59:
 By default, all code goes into iram, which is only 32k, so it is easy to overflow that segment by linking in a bunch of stuff from the libraries or from your own code. By default, all code goes into iram, which is only 32k, so it is easy to overflow that segment by linking in a bunch of stuff from the libraries or from your own code.
  
-Use **ICACHE_FLASH_ATTR** on your functions to make sure they go into irom instead. Irom resides off-chip on a 4M flash ROM, thus leaving about 240-440kB for applications. Although the final compiled program appears huge (about 180k in irom, and 28k in iram), most of this is library code that runs the Wifi and IP stacks. The actual user application is something like 8k.+Use **ICACHE\_FLASH\_ATTR** on your functions to make sure they go into irom instead. Irom resides off-chip on a 4M flash ROM, thus leaving about 240-440kB for applications. Although the final compiled program appears huge (about 180k in irom, and 28k in iram), most of this is library code that runs the Wifi and IP stacks. The actual user application is something like 8k.
  
 The hardware design shown above also assumes that the switch will remain open at bootup, as GPIO2 needs to be high for the chip to boot normally. ​ The hardware design shown above also assumes that the switch will remain open at bootup, as GPIO2 needs to be high for the chip to boot normally. ​
Line 68: Line 68:
 [[http://​www.esp8266.com/​viewtopic.php?​f=9&​t=820|Eclipse IDE for ESP8266]] [[http://​www.esp8266.com/​viewtopic.php?​f=9&​t=820|Eclipse IDE for ESP8266]]
  
-======Arduino IDE =====+===== Arduino IDE =====
  Go to Arduino site and download the IDE   Go to Arduino site and download the IDE 
 Unzip it wherever ​ Unzip it wherever ​
setup-windows-compiler-esp8266.txt · Last modified: 2018/02/25 04:12 by dcm684