Discuss here different C compiler set ups, and compiling executables for the ESP8266
User avatar
By Gnanaguru
#74595 Hi fellows,

I just now saw "AMMAURO #3 - ESP8266 IoT 2017, native C SDK Getting Started for Windows, Mac & Linux" video. And I've practically implement it also. Even though the doubts I've got are basic, which I can't figure out by myself.

1.What does the toolchain does ?
I know that its comprises compiler,assemblers,linkers,libraries,debuggers for producing the software But what is compiled//linked/debugged? Where is that source code that is undergone these steps?

2. Really what does the esp-open-clone github clone has ?
I've gone through it. I can see lx-106 hal (maybe that ESP8266 controller one, but not sure about Hardware Abstraction Layer!!), esptool (this is familier thing....its for dumping bin files to esp flash) , esp-open-lwip & crosstool-NG (no idea about these)
User avatar
By MrAureliusR
#77436 I've seen you posting elsewhere asking these same questions. You seem to know a little bit about development, so it makes me extremely confused as to why you don't understand what a toolchain is.

A toolchain is a package of binaries and header files for developing software for a target architecture. In this case, it's the ESP8266. It includes versions of gcc and binutils that are modified to compile and link code for the ESP8266. It also includes all the header files needed so that you can call functions in the SDK, etc.

"But what is compiled//linked/debugged?" If you're asking about compiling the toolchain itself, it pulls down all the code from esp-open-sdk repository as well as the official SDK files from Espressif. It uses as much open source code as possible, and only links in the binary blobs from Espressif where absolutely necessary, as no open source replacement is available.

Your second question was difficult to parse. Are you asking what is included in the esp-open-sdk repo? It contains all the tools necessary to build the Espressif SDK, plus open-source replacements for many of the tools contained within the official SDK that are closed-source. So this repo blends all these sources together to create a toolchain that is (almost entirely) open-source.

I hope that answers your questions.. and I hope Google Translate is able to translate my answer correctly.