mirror of
https://github.com/0xFEEDC0DE64/arduino-esp32.git
synced 2025-07-29 18:27:15 +02:00
Esp32 s3 support (#6341)
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com> Co-authored-by: Unexpected Maker <seon@unexpectedmaker.com> Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com> Co-authored-by: Tomáš Pilný <34927466+PilnyTomas@users.noreply.github.com> Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com> Co-authored-by: Ivan Grokhotkov <ivan@espressif.com> Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com> Co-authored-by: Limor "Ladyada" Fried <limor@ladyada.net>
This commit is contained in:
@ -2,37 +2,178 @@
|
||||
Library Builder
|
||||
###############
|
||||
|
||||
How to Use Library Builder
|
||||
--------------------------
|
||||
About
|
||||
-----
|
||||
|
||||
Espressif has provided a `tool <https://github.com/espressif/esp32-arduino-lib-builder>`_ to simplify building your own compiled libraries for use in Arduino IDE (or your favorite IDE).
|
||||
To generate custom libraries, follow these steps:
|
||||
Espressif provides a `tool <https://github.com/espressif/esp32-arduino-lib-builder>`_ to simplify building your own compiled libraries for use in Arduino IDE (or your favorite IDE).
|
||||
|
||||
This tool can be used to change the project or a specific configuration according to your needs.
|
||||
|
||||
- Step 1 - Clone the ESP32 Arduino lib builder::
|
||||
Installing
|
||||
----------
|
||||
|
||||
To install the Library Builder into your environment, please, follow the instructions below.
|
||||
|
||||
- Clone the ESP32 Arduino lib builder:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git clone https://github.com/espressif/esp32-arduino-lib-builder
|
||||
|
||||
- Step 2 - Go to the ``esp32-arduino-lib-builder`` folder::
|
||||
- Go to the ``esp32-arduino-lib-builder`` folder:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cd esp32-arduino-lib-builder
|
||||
|
||||
- Step 3 - Run the ``update-components`` script::
|
||||
- Build:
|
||||
|
||||
./tools/update-components.sh`
|
||||
.. code-block:: bash
|
||||
|
||||
- Step 4 - Run ``install-esp-idf`` installation script (if you already have an ``$IDF_PATH`` defined, it will use your local copy of the repository)::
|
||||
./build.sh
|
||||
|
||||
./tools/install-esp-idf.sh
|
||||
If everything works, you may see the following message: ``Successfully created esp32 image.``
|
||||
|
||||
- Step 5 - Copy the configuration (recommended) or directly edit sdkconfig using ``idf.py menuconfig``::
|
||||
Dependencies
|
||||
************
|
||||
|
||||
cp sdkconfig.esp32s2 sdkconfig
|
||||
To build the library you will need to install some dependencies. Maybe you already have installed it, but it is a good idea to check before building.
|
||||
|
||||
- Step 6 - Build::
|
||||
- Install all dependencies (**Ubuntu**):
|
||||
|
||||
idf.py build
|
||||
.. code-block:: bash
|
||||
|
||||
The script automates the process of building `Arduino as an ESP-IDF component <https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md>`_.
|
||||
Once it is complete, you can cherry pick the needed libraries from ``out/tools/sdk/lib``, or run ``tools/copy-to-arduino.sh`` to copy the entire built system.
|
||||
``tools/config.sh`` contains a number of variables that control the process, particularly the ``$IDF_BRANCH`` variable. You can adjust this to try building against newer versions, but there are absolutely no guarantees that any components will work or even successfully compile against a newer IDF.
|
||||
sudo apt-get install git wget curl libssl-dev libncurses-dev flex bison gperf cmake ninja-build ccache jq
|
||||
|
||||
- Install Python and upgrade pip:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt-get install python3
|
||||
sudo pip install --upgrade pip
|
||||
|
||||
- Install all required packages:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install --user setuptools pyserial click cryptography future pyparsing pyelftools
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
If you have all the dependencies met, it is time to build the libraries.
|
||||
|
||||
To build using the default configuration:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh
|
||||
|
||||
Custom Build
|
||||
************
|
||||
|
||||
There are some options to help you create custom libraries. You can use the following options:
|
||||
|
||||
Usage
|
||||
^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
build.sh [-s] [-A arduino_branch] [-I idf_branch] [-i idf_commit] [-c path] [-t <target>] [-b <build|menuconfig|idf_libs|copy_bootloader|mem_variant>] [config ...]
|
||||
|
||||
Skip Install/Update
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Skip installing/updating of ESP-IDF and all components
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -s
|
||||
|
||||
This option can be used if you already have the ESP-IDF and all components already in your environment.
|
||||
|
||||
Set Arduino-ESP32 Branch
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Set which branch of arduino-esp32 to be used for compilation
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -A <arduino_branch>
|
||||
|
||||
Set ESP-IDF Branch
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Set which branch of ESP-IDF is to be used for compilation
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -I <idf_branch>
|
||||
|
||||
Set the ESP-IDF Commit
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Set which commit of ESP-IDF to be used for compilation
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -i <idf_commit>
|
||||
|
||||
Deploy
|
||||
^^^^^^
|
||||
|
||||
Deploy the build to github arduino-esp32
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -d
|
||||
|
||||
Set the Arduino-ESP32 Destination Folder
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Set the arduino-esp32 folder to copy the result to. ex. '$HOME/Arduino/hardware/espressif/esp32'
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -c <path>
|
||||
|
||||
This function is used to copy the compiled libraries to the Arduino folder.
|
||||
|
||||
Set the Target
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Set the build target(chip). ex. 'esp32s3'
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -t <target>
|
||||
|
||||
This build command will build for the ESP32-S3 target. You can specify other targets.
|
||||
|
||||
* esp32
|
||||
* esp32s2
|
||||
* esp32c3
|
||||
* esp32s3
|
||||
|
||||
Set Build Type
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Set the build type. ex. 'build' to build the project and prepare for uploading to a board.
|
||||
|
||||
.. note:: This command depends on the ``-t`` argument.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -t esp32 -b <build|menuconfig|idf_libs|copy_bootloader|mem_variant>
|
||||
|
||||
Additional Configuration
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Specify additional configs to be applied. ex. 'qio 80m' to compile for QIO Flash@80MHz. Requires -b
|
||||
|
||||
.. note:: This command requires the ``-b`` to work properly.
|
||||
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build.sh -t esp32 -b idf_libs qio 80m
|
||||
|
Reference in New Issue
Block a user