|
1 |
| -# ESP32 Arduino Lib Builder [](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml) |
| 1 | +# ESP32 Arduino Lib Builder |
2 | 2 |
|
3 |
| -This repository contains the scripts that produce the libraries included with esp32-arduino. |
| 3 | +This repository contains the scripts that produce the SDK included with esp32-arduino. It not only supports local compilation but also provides an automated compilation and SDK download process through GitHub Actions. |
4 | 4 |
|
5 |
| -Tested on Ubuntu (32 and 64 bit), Raspberry Pi and MacOS. |
| 5 | +If you want to directly use the precompiled SDK based on the branches below, please check the [arduino-esp32-SDK](https://github.com/esp-arduino-libs/arduino-esp32-sdk) repository. |
6 | 6 |
|
7 |
| -### Build on Ubuntu and Raspberry Pi |
8 |
| -```bash |
9 |
| -sudo apt-get install git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache jq |
10 |
| -sudo pip install --upgrade pip |
11 |
| -git clone https://github.com/espressif/esp32-arduino-lib-builder |
12 |
| -cd esp32-arduino-lib-builder |
13 |
| -./build.sh |
14 |
| -``` |
15 |
| -### Documentation |
| 7 | +## Contents |
16 | 8 |
|
17 |
| -For more information about how to use the Library builder, please refer to this [Documentation page](https://docs.espressif.com/projects/arduino-esp32/en/latest/lib_builder.html?highlight=lib%20builder) |
| 9 | +- [ESP32 Arduino Lib Builder](#esp32-arduino-lib-builder) |
| 10 | + - [Contents](#contents) |
| 11 | + - [Feature](#feature) |
| 12 | + - [Branches](#branches) |
| 13 | + - [Release Versions](#release-versions) |
| 14 | + - [Debug Versions](#debug-versions) |
| 15 | + - [High Performance Versions](#high-performance-versions) |
| 16 | + - [How to Use](#how-to-use) |
| 17 | + - [Compilation in Github](#compilation-in-github) |
| 18 | + - [Compilation in Local](#compilation-in-local) |
| 19 | + |
| 20 | +## Feature |
| 21 | + |
| 22 | +In comparison to the original [esp32-arduino-lib-builder](https://github.com/espressif/esp32-arduino-lib-builder), this repository is used for recompiling specific versions of the SDK in `arduino-esp32` and has the following branches: |
| 23 | + |
| 24 | +* `release/*` is used to recompile the original SDK for a specified version. |
| 25 | +* `debug/*` is used to recompile debug versions based on a specified SDK version. |
| 26 | +* `high_perf/*` is used to recompile high performance versions based on a specified SDK version. It changes some configurations (as below) and can achieve higher performance in some cases, especially for avoiding [screen drifting](https://docs.espressif.com/projects/esp-faq/en/latest/software-framework/peripherals/lcd.html#why-do-i-get-drift-overall-drift-of-the-display-when-esp32-s3-is-driving-an-rgb-lcd-screen) when using RGB LCDs. |
| 27 | + |
| 28 | + * For ESP32-S3 SoCs: |
| 29 | + * It changes the optimization level from `-Os` to `-O2` by enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y`. |
| 30 | + * It increases the size of the data cache line from `32` to `64` by enabling `CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y`. |
| 31 | + * For ESP32-S3R8 SoC: |
| 32 | + * It enables the function **XIP on PSRAM** by enabling `CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y` and `CONFIG_SPIRAM_RODATA=y`. |
| 33 | + |
| 34 | +## Branches |
| 35 | + |
| 36 | +### Release Versions |
| 37 | + |
| 38 | +* [release/v2.0.13](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v2.0.13) |
| 39 | +* [release/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.0-alpha3) |
| 40 | + |
| 41 | +### Debug Versions |
| 42 | + |
| 43 | +* [debug/v2.0.13](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v2.0.13) |
| 44 | +* [debug/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.0-alpha3) |
| 45 | + |
| 46 | +### High Performance Versions |
| 47 | + |
| 48 | +* [high_perf/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.0-alpha3) |
| 49 | + |
| 50 | +## How to Use |
| 51 | + |
| 52 | +### Compilation in Github |
| 53 | + |
| 54 | +1. Click `Fork` to fork this repository into your account. |
| 55 | + |
| 56 | + <img src="docs/_static/auto_step_0-1.png"> |
| 57 | + |
| 58 | +2. Uncheck the `Copy the master branch only` option and click `Create fork`. |
| 59 | + |
| 60 | + <img src="docs/_static/auto_step_0-2.png"> |
| 61 | + |
| 62 | +3. If you want to change the default configurations, follow the below steps: |
| 63 | + |
| 64 | + * Choose a branch based on the version you want to recompile. Here take `release/v3.0.0-alpha3` as an example. |
| 65 | + |
| 66 | + <img src="docs/_static/auto_step_1.png"> |
| 67 | + |
| 68 | + * To change the default configurations, mofify the files in the `configs` folder based on your application requirements. |
| 69 | + |
| 70 | + <img src="docs/_static/auto_step_2.png"> |
| 71 | + |
| 72 | + * Commit the changes. |
| 73 | + |
| 74 | + <img src="docs/_static/auto_step_3.png"> |
| 75 | + |
| 76 | + * Select `Create a new branch for this commit and start a pull request`, change the branch name if needed and click `Propose changes`. |
| 77 | + |
| 78 | + <img src="docs/_static/auto_step_4.png"> |
| 79 | + |
| 80 | + * Do not create a pull request, just click `Action`. Here you can see the compilation process. (Default to compile all targets) |
| 81 | + |
| 82 | + <img src="docs/_static/auto_step_5.png"> |
| 83 | + |
| 84 | + <img src="docs/_static/auto_step_6.png"> |
| 85 | + |
| 86 | +4. If you don't need to change the default configurations or just want to compile a specific target, follow the below steps: |
| 87 | + |
| 88 | + * Click `Actions` and enter the `Manual Build SDK For the Specific Target` workflow. |
| 89 | + |
| 90 | + <img src="docs/_static/manual_step_1.png"> |
| 91 | + |
| 92 | + * Click `Run workflow`, select the branch and the target, click `Run workflow`. Then the compilation process will start. |
| 93 | + |
| 94 | + <img src="docs/_static/manual_step_2.png"> |
| 95 | + |
| 96 | + <img src="docs/_static/manual_step_3.png"> |
| 97 | + |
| 98 | +5. After the compilation is complete, download the zip file from the `Artifacts`. |
| 99 | + |
| 100 | + <img src="docs/_static/auto_step_7.png"> |
| 101 | + |
| 102 | +6. To replace the original SDK, please refer to the [steps](https://github.com/esp-arduino-libs/arduino-esp32-sdk#how-to-use) for more details. |
| 103 | + |
| 104 | +### Compilation in Local |
| 105 | + |
| 106 | +1. Choose a branch version based on your application requirements and download it to the local. |
| 107 | +2. Modify the files in the `configs` folder based on your application requirements. |
| 108 | +3. Consult its README for compilation instructions. Note that the process involves downloading `ESP-IDF`, `arduino-esp32`, and several large components, which may take a considerable amount of time. Please be patient. |
| 109 | +6. After the compilation is complete, the SDK will be located in the `out` folder. |
| 110 | +7. To replace the original SDK, please refer to the [steps](https://github.com/esp-arduino-libs/arduino-esp32-sdk#how-to-use) for more details. |
0 commit comments