esp-idf/examples/storage/parttool
Kevin (Lao Kaiyao) 432864e917 Merge branch 'ci/enable_c5_mp_ci_jobs' into 'master'
ci(esp32c5mp): enable esp32c5 build on CI

See merge request espressif/esp-idf!29895
2024-04-08 12:16:16 +08:00
..
main Build & config: Remove leftover files from the unsupported "make" build system 2021-11-11 15:32:36 +01:00
CMakeLists.txt tools: Increase the minimal supported CMake version to 3.16 2022-06-01 06:35:02 +00:00
partitions_example.csv parttool: added tests to check the external interface (parsing) of the parttool commands 2022-09-20 11:28:55 +05:30
parttool_example.py style: format python files with isort and double-quote-string-fixer 2021-01-26 10:49:01 +08:00
parttool_example.sh Whitespace: Automated whitespace fixes (large commit) 2020-11-11 07:36:35 +00:00
pytest_parttool_example.py ci: fix pytest generic env markers 2024-04-03 18:10:43 +08:00
README.md ci(esp32c5mp): disable the unsupported tests 2024-04-07 12:13:29 +08:00
sdkconfig.ci example_tests: Deletes usage esp32c3 ECO0 in CI (by default ECO3) 2021-09-24 13:55:07 +08:00
sdkconfig.defaults examples: remove non-existent options from sdkconfig.defaults 2019-07-29 04:57:38 +02:00

Supported Targets ESP32 ESP32-C2 ESP32-C3 ESP32-C5 ESP32-C6 ESP32-H2 ESP32-P4 ESP32-S2 ESP32-S3

Partitions Tool Example

This example demonstrates common operations the partitions tool parttool.py allows the user to perform:

  • reading, writing and erasing partitions,
  • retrieving info on a certain partition,
  • dumping the entire partition table

Users taking a look at this example should focus on the contents of the Python script parttool_example.py or shell script parttool_example.sh. The scripts contain programmatic invocation of the tool's functions via the Python API and command-line interface, respectively. Note that on Windows, the shell script example requires a POSIX-compatible environment via MSYS2/Git Bash/WSL etc.

The example performs the operations mentioned above in a straightforward manner: it performs writes to partitions and then verifies correct content by reading it back. For partitions, contents are compared to the originally written file. For the partition table, contents are verified against the partition table CSV file. An erased partition's contents is compared to a generated blank file.

How to use example

Build and Flash

Before running either of the example scripts, it is necessary to build and flash the firmware using the usual means:

idf.py build flash

Running parttool_example.py

The example can be executed by running the script parttool_example.py or parttool_example.sh.

Python script:

python parttool_example.py

Shell script:

./parttool_example.sh

The script searches for valid target devices connected to the host and performs the operations on the first one it finds. To perform the operations on a specific device, specify the port it is attached to during script invocation:

Python script:

python parttool_example.py --port /dev/ttyUSB2

Shell script:

./parttool_example.sh /dev/ttyUSB2

Example output

Running the script produces the following output:

Checking if device app binary matches built binary
Found data partition at offset 0x110000 with size 0x10000
Writing to data partition
Reading data partition
Erasing data partition
Reading data partition

Partition tool operations performed successfully!