Add Arduino as Component examples (#8878)
* Example for IDF component registry * Added readme * updated readme * remove idf dependency * add empty lines on file end * idf_component.yml version change * Updated readme for local development --------- Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
This commit is contained in:
parent
b303cb4571
commit
00a9579982
7 changed files with 103 additions and 0 deletions
|
|
@ -65,4 +65,6 @@ dependencies:
|
|||
version: "^1.4.2"
|
||||
rules:
|
||||
- if: "target in [esp32s3]"
|
||||
examples:
|
||||
- path: ../idf_component_examples/
|
||||
|
||||
|
|
|
|||
8
idf_component_examples/Hello_world/CMakeLists.txt
Normal file
8
idf_component_examples/Hello_world/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# For more information about build system see
|
||||
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
|
||||
# The following five lines of boilerplate have to be in your project's
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(main)
|
||||
63
idf_component_examples/Hello_world/README.md
Normal file
63
idf_component_examples/Hello_world/README.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
|
||||
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||
|
||||
# _Hello world example_
|
||||
|
||||
This is the simplest buildable example made to be used as a template for new projects running Arduino-esp32 as an ESP-IDF component.
|
||||
See [Arduino-esp32](https://components.espressif.com/components/espressif/arduino-esp32) in ESP Registry.
|
||||
|
||||
## How to use example
|
||||
|
||||
To create a ESP-IDF project from this example with the latest relase of Arduino-esp32, you can simply run command: `idf.py create-project-from-example "espressif/arduino-esp32:hello_world"`.
|
||||
ESP-IDF will download all dependencies needed from the component registry and setup the project for you.
|
||||
|
||||
If you want to use cloned Arduino-esp32 repository, you can build this example directly.
|
||||
Go to the example folder `arduino-esp32/idf_component_examples/Hello_world`.
|
||||
First you need to comment line 6 `pre_release: true` in examples `/main/idf_component.yml`.
|
||||
Then just run command: `idf.py build`.
|
||||
|
||||
## Example folder contents
|
||||
|
||||
The project **Hello_world** contains one source file in C++ language [main.cpp](main/main.cpp). The file is located in folder [main](main).
|
||||
|
||||
ESP-IDF projects are built using CMake. The project build configuration is contained in `CMakeLists.txt`
|
||||
files that provide set of directives and instructions describing the project's source files and targets
|
||||
(executable, library, or both).
|
||||
|
||||
Below is short explanation of remaining files in the project folder.
|
||||
|
||||
```
|
||||
├── CMakeLists.txt
|
||||
├── main
|
||||
│ ├── CMakeLists.txt
|
||||
│ ├── idf_component.yml
|
||||
│ └── main.cpp
|
||||
└── README.md This is the file you are currently reading
|
||||
```
|
||||
|
||||
## How to add Arduino libraries
|
||||
|
||||
In the project create folder `components/` and clone the library there.
|
||||
In the library folder create new CMakeLists.txt file, add lines shown below to the file and edit the SRCS to match the library source files.
|
||||
|
||||
```
|
||||
idf_component_register(SRCS "user_library.cpp" "another_source.c"
|
||||
INCLUDE_DIRS "."
|
||||
REQUIRES arduino-esp32
|
||||
)
|
||||
```
|
||||
|
||||
Below is structure of the project folder with the Arduino libraries.
|
||||
|
||||
```
|
||||
├── CMakeLists.txt
|
||||
├── components
|
||||
│ ├── user_library
|
||||
│ │ ├── CMakeLists.txt This needs to be added
|
||||
│ │ ├── ...
|
||||
├── main
|
||||
│ ├── CMakeLists.txt
|
||||
│ ├── idf_component.yml
|
||||
│ └── main.cpp
|
||||
└── README.md This is the file you are currently reading
|
||||
```
|
||||
2
idf_component_examples/Hello_world/main/CMakeLists.txt
Normal file
2
idf_component_examples/Hello_world/main/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
idf_component_register(SRCS "main.cpp"
|
||||
INCLUDE_DIRS ".")
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
## IDF Component Manager Manifest File
|
||||
dependencies:
|
||||
espressif/arduino-esp32:
|
||||
version: '*'
|
||||
override_path: '../../../'
|
||||
pre_release: true
|
||||
10
idf_component_examples/Hello_world/main/main.cpp
Normal file
10
idf_component_examples/Hello_world/main/main.cpp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#include "Arduino.h"
|
||||
|
||||
void setup(){
|
||||
Serial.begin(115200);
|
||||
}
|
||||
|
||||
void loop(){
|
||||
Serial.println("Hello world!");
|
||||
delay(1000);
|
||||
}
|
||||
12
idf_component_examples/Hello_world/sdkconfig.defaults
Normal file
12
idf_component_examples/Hello_world/sdkconfig.defaults
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# Arduino ESP32
|
||||
#
|
||||
CONFIG_AUTOSTART_ARDUINO=y
|
||||
# end of Arduino ESP32
|
||||
|
||||
#
|
||||
# FREERTOS
|
||||
#
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
# end of FREERTOS
|
||||
# end of Component config
|
||||
Loading…
Reference in a new issue