Skip to content

Commit 530109a

Browse files
committed
feat: update README
1 parent 6601c44 commit 530109a

13 files changed

+106
-13
lines changed

README.md

Lines changed: 106 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,110 @@
1-
# ESP32 Arduino Lib Builder [![ESP32 Arduino Libs CI](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml/badge.svg)](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml)
1+
# ESP32 Arduino Lib Builder
22

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.
44

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.
66

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
168

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.

docs/_static/auto_step_0-1.png

33.5 KB
Loading

docs/_static/auto_step_0-2.png

85.1 KB
Loading

docs/_static/auto_step_1.png

76.7 KB
Loading

docs/_static/auto_step_2.png

153 KB
Loading

docs/_static/auto_step_3.png

171 KB
Loading

docs/_static/auto_step_4.png

173 KB
Loading

docs/_static/auto_step_5.png

95.7 KB
Loading

docs/_static/auto_step_6.png

60.6 KB
Loading

docs/_static/auto_step_7.png

73.2 KB
Loading

docs/_static/manual_step_1.png

47 KB
Loading

docs/_static/manual_step_2.png

104 KB
Loading

docs/_static/manual_step_3.png

83.9 KB
Loading

0 commit comments

Comments
 (0)