The ESP32 has multiple versions of the same processor, and it is recommended to program it using their native ESP-IDF tool. The C++ code of each project is separately compiled for the ESP32 according to the parameters set in the configurator using the “”idf.py menuconfig”” command. . More details can be found at this link: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#build-your-first-project.
However, ESP-IDF has multiple versions, and C++ code written for one version of the ESP-IDF compiler may not compile correctly in another ESP-IDF version. Nonetheless, ESP-IDF has detailed documentation available, which makes it possible to find solutions to problems that may arise.
Because of this and because we are dealing with a rather complex SoC (system-on-chip) which supports many different functionalities (e.g. Wi-Fi, Bluetooth), it is not advisable to write communication protocols from scratch in assembler.
If you still want to do it, you will need as much information as possible about the SoC hardware,
so make sure to review these links:
https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf and https://espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf.
https://espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
Additionally, for documentation on the Xtensa processor architecture,
https://github.com/espressif/xtensa-isa-doc
refer to this Github project https://github.com/espressif/xtensa-isa-doc and this link for the PDF created from published latex documents:
https://github.com/espressif/xtensa-isa-doc/releases/download/latest/Xtensa.pdf
A good place to start is the Stack Overflow thread here: https://stackoverflow.com/questions/63900236/programming-esp32-and-esp8266.
. If you manage to run any example, even a “”Hello World”” app, we would be happy to publish it in the VIDI magazine, so be sure to get back to us if you succeed.