diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..e353ef6 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,15 @@ +--- +kind: pipeline +type: docker +name: Build + +steps: + - name: Submodules + image: alpine/git + commands: + - git submodule update --init --recursive + + - name: IDF Build + image: "espressif/idf:v5.0" + commands: + - bash -c ". $IDF_PATH/export.sh && idf.py build && idf.py size-components" diff --git a/README.md b/README.md index e7b9054..1a1101d 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,2 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-H4 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +# Playground project for LuaT ESP32-S3 -# Hello World Example - -Starts a FreeRTOS task to print "Hello World". - -(See the README.md file in the upper level 'examples' directory for more information about examples.) - -## How to use example - -Follow detailed instructions provided specifically for this example. - -Select the instructions depending on Espressif chip installed on your development board: - -- [ESP32 Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/index.html) -- [ESP32-S2 Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html) - - -## Example folder contents - -The project **hello_world** contains one source file in C language [hello_world_main.c](main/hello_world_main.c). 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 -├── pytest_hello_world.py Python script used for automated testing -├── main -│ ├── CMakeLists.txt -│ └── hello_world_main.c -└── README.md This is the file you are currently reading -``` - -For more information on structure and contents of ESP-IDF projects, please refer to Section [Build System](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html) of the ESP-IDF Programming Guide. - -## Troubleshooting - -* Program upload failure - - * Hardware connection is not correct: run `idf.py -p PORT monitor`, and reboot your board to see if there are any output logs. - * The baud rate for downloading is too high: lower your baud rate in the `menuconfig` menu, and try again. - -## Technical support and feedback - -Please use the following feedback channels: - -* For technical queries, go to the [esp32.com](https://esp32.com/) forum -* For a feature request or bug report, create a [GitHub issue](https://github.com/espressif/esp-idf/issues) - -We will get back to you as soon as possible. diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 07686dc..8a3ab69 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,2 +1,2 @@ -idf_component_register(SRCS "hello_world_main.c" +idf_component_register(SRCS "main.c" INCLUDE_DIRS "") diff --git a/main/hello_world_main.c b/main/hello_world_main.c deleted file mode 100644 index bfa7df8..0000000 --- a/main/hello_world_main.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" - -void app_main(void) { - printf("Hello world!\n"); - - for (;;) { - vTaskSuspend(NULL); - } -} diff --git a/main/main.c b/main/main.c new file mode 100644 index 0000000..986d588 --- /dev/null +++ b/main/main.c @@ -0,0 +1,35 @@ +#include +#include + +/* FreeRTOS */ +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +/* ESP */ +#include "driver/gpio.h" +#include "esp_log.h" + +#define LED0_PIN 10 + +static const char *LOG_TAG = "MAIN"; + +void app_main(void) { + ESP_LOGI(LOG_TAG, "Hello world"); + + gpio_config_t led_cfg = { + .pin_bit_mask = (1U << LED0_PIN), + .mode = GPIO_MODE_OUTPUT, + .intr_type = GPIO_INTR_DISABLE, + .pull_down_en = GPIO_PULLDOWN_DISABLE, + .pull_up_en = GPIO_PULLUP_DISABLE, + }; + + gpio_config(&led_cfg); + + for (;;) { + gpio_set_level(LED0_PIN, 1); + vTaskDelay(pdMS_TO_TICKS(50)); + gpio_set_level(LED0_PIN, 0); + vTaskDelay(pdMS_TO_TICKS(950)); + } +} diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 246872d..2d07d55 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -1,9 +1,11 @@ -# This file was generated using idf.py save-defconfig. It can be edited manually. -# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration -# +# Target is ESP32-S3 CONFIG_IDF_TARGET="esp32s3" + +# External QSPI flash (1.8V) CONFIG_ESPTOOLPY_FLASHMODE_QIO=y CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y + +# Internal SiP SPI PSRAM (1.8V) CONFIG_SPIRAM=y CONFIG_SPIRAM_MODE_OCT=y CONFIG_SPIRAM_SPEED_80M=y