Espressif IoT Development Framework for ESP32-XX
 
 
 
 
 
Go to file
Angus Gratton 73001bcda2 Move details about partition tables to their own ReST doc in docs/ 2016-08-18 21:42:37 +08:00
bin Initial public version 2016-08-17 23:08:22 +08:00
components Fix 'make bootloader' not printing instructions 2016-08-18 21:42:37 +08:00
docs Move details about partition tables to their own ReST doc in docs/ 2016-08-18 21:42:37 +08:00
make Make: Fix make bootloader, make bootloader-flash, cleaning of bootloader 2016-08-18 21:15:47 +08:00
tools Fix gen_esp32part.py locations & documentation (thanks @wujiangang\!) 2016-08-18 21:42:37 +08:00
.gitignore Initial public version 2016-08-17 23:08:22 +08:00
.gitmodules Initial public version 2016-08-17 23:08:22 +08:00
Kconfig Initial public version 2016-08-17 23:08:22 +08:00
LICENSE Initial public version 2016-08-17 23:08:22 +08:00
README.buildenv Initial public version 2016-08-17 23:08:22 +08:00
README.md Move details about partition tables to their own ReST doc in docs/ 2016-08-18 21:42:37 +08:00

README.md

Using Espressif IoT Development Framework with the ESP32

Prerequisites

Configuring your project

make menuconfig

Compiling your project

make app

Flashing the Bootloader

ESP32 has a bootloader in ROM which runs after reset, but ESP-IDF also uses a second stage software bootloader. The ROM bootloader loads the software bootloader, which then loads the firmware app of the ESP32. The software bootloader must be flashed to offset 0x5000 in the flash.

To build the software bootloader, navigate to your project's top-level directory and run:

make bootloader

If you've configured the serial port details in make menuconfig, then

make bootloader-flash

... will automatically run esptool.py to flash the image. Otherwise, you can customise the esptool.py command that is printed out as part of make bootloader.

You only need to flash the ESP32 bootloader once.

The Partition Table

Once you've compiled your project, the "build" directory will contain a binary file with a name like "my_app.bin". This is an ESP32 image binary that can be loaded by the bootloader.

A single ESP32's flash can contain multiple apps, as well as many different kinds of data (calibration data, filesystems, parameter storage, etc). For this reason a partition table is flashed to offset 0x4000 in the flash.

Each entry in the partition table has a name (label), type (app, data, or something else), subtype and the offset in flash where the partition is loaded.

The simplest way to use the partition table is to make menuconfig and choose one of the simple predefined partition tables:

  • "Single factory app, no OTA"
  • "Factory app, two OTA definitions"

In both cases the factory app is flashed at offset 0x10000. If you make partition_table then it will print a summary of the partition table.

For more details about partition tables and how to create custom variations, view the docs/partition_tables.rst file.