first commit
This commit is contained in:
parent
5022320079
commit
3cda7df84b
93
.gitignore
vendored
Normal file
93
.gitignore
vendored
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
.config
|
||||||
|
*.o
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# gtags
|
||||||
|
GTAGS
|
||||||
|
GRTAGS
|
||||||
|
GPATH
|
||||||
|
|
||||||
|
# emacs
|
||||||
|
.dir-locals.el
|
||||||
|
|
||||||
|
# emacs temp file suffixes
|
||||||
|
*~
|
||||||
|
.#*
|
||||||
|
\#*#
|
||||||
|
|
||||||
|
# eclipse setting
|
||||||
|
.settings
|
||||||
|
|
||||||
|
# MacOS directory files
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Components Unit Test Apps files
|
||||||
|
components/**/build
|
||||||
|
components/**/sdkconfig
|
||||||
|
components/**/sdkconfig.old
|
||||||
|
|
||||||
|
# Example project files
|
||||||
|
examples/**/sdkconfig
|
||||||
|
examples/**/sdkconfig.old
|
||||||
|
examples/**/build
|
||||||
|
|
||||||
|
# Doc build artifacts
|
||||||
|
docs/_build/
|
||||||
|
docs/doxygen_sqlite3.db
|
||||||
|
|
||||||
|
# Downloaded font files
|
||||||
|
docs/_static/DejaVuSans.ttf
|
||||||
|
docs/_static/NotoSansSC-Regular.otf
|
||||||
|
|
||||||
|
# Unit test app files
|
||||||
|
tools/unit-test-app/sdkconfig
|
||||||
|
tools/unit-test-app/sdkconfig.old
|
||||||
|
tools/unit-test-app/build
|
||||||
|
tools/unit-test-app/builds
|
||||||
|
tools/unit-test-app/output
|
||||||
|
tools/unit-test-app/test_configs
|
||||||
|
|
||||||
|
# Unit Test CMake compile log folder
|
||||||
|
log_ut_cmake
|
||||||
|
|
||||||
|
# test application build files
|
||||||
|
tools/test_apps/**/build
|
||||||
|
tools/test_apps/**/sdkconfig
|
||||||
|
tools/test_apps/**/sdkconfig.old
|
||||||
|
|
||||||
|
# IDF monitor test
|
||||||
|
tools/test_idf_monitor/outputs
|
||||||
|
|
||||||
|
TEST_LOGS
|
||||||
|
|
||||||
|
# gcov coverage reports
|
||||||
|
*.gcda
|
||||||
|
*.gcno
|
||||||
|
coverage.info
|
||||||
|
coverage_report/
|
||||||
|
|
||||||
|
test_multi_heap_host
|
||||||
|
|
||||||
|
# VS Code Settings
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# VIM files
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Clion IDE CMake build & config
|
||||||
|
.idea/
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Results for the checking of the Python coding style and static analysis
|
||||||
|
.mypy_cache
|
||||||
|
flake8_output.txt
|
||||||
|
|
||||||
|
# ESP-IDF default build directory name
|
||||||
|
build
|
||||||
|
|
||||||
|
# lock files for examples and components
|
||||||
|
dependencies.lock
|
||||||
|
|
||||||
|
# managed_components for examples
|
||||||
|
managed_components
|
||||||
6
hello_world/CMakeLists.txt
Normal file
6
hello_world/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# The following 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.5)
|
||||||
|
|
||||||
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
|
project(hello_world)
|
||||||
8
hello_world/Makefile
Normal file
8
hello_world/Makefile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
|
||||||
|
# project subdirectory.
|
||||||
|
#
|
||||||
|
|
||||||
|
PROJECT_NAME := hello_world
|
||||||
|
|
||||||
|
include $(IDF_PATH)/make/project.mk
|
||||||
52
hello_world/README.md
Normal file
52
hello_world/README.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# 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
|
||||||
|
├── example_test.py Python script used for automated example testing
|
||||||
|
├── main
|
||||||
|
│ ├── CMakeLists.txt
|
||||||
|
│ ├── component.mk Component make file
|
||||||
|
│ └── hello_world_main.c
|
||||||
|
├── Makefile Makefile used by legacy GNU Make
|
||||||
|
└── 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.
|
||||||
20
hello_world/example_test.py
Normal file
20
hello_world/example_test.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from __future__ import division, print_function, unicode_literals
|
||||||
|
|
||||||
|
import ttfw_idf
|
||||||
|
|
||||||
|
|
||||||
|
@ttfw_idf.idf_example_test(env_tag='Example_GENERIC', target=['esp32', 'esp32s2', 'esp32c3'], ci_target=['esp32'])
|
||||||
|
def test_examples_hello_world(env, extra_data):
|
||||||
|
app_name = 'hello_world'
|
||||||
|
dut = env.get_dut(app_name, 'examples/get-started/hello_world')
|
||||||
|
dut.start_app()
|
||||||
|
res = dut.expect(ttfw_idf.MINIMUM_FREE_HEAP_SIZE_RE)
|
||||||
|
if not res:
|
||||||
|
raise ValueError('Maximum heap size info not found')
|
||||||
|
ttfw_idf.print_heap_size(app_name, dut.app.config_name, dut.TARGET, res[0])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
test_examples_hello_world()
|
||||||
2
hello_world/main/CMakeLists.txt
Normal file
2
hello_world/main/CMakeLists.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
idf_component_register(SRCS "hello_world_main.c"
|
||||||
|
INCLUDE_DIRS "")
|
||||||
4
hello_world/main/component.mk
Normal file
4
hello_world/main/component.mk
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#
|
||||||
|
# "main" pseudo-component makefile.
|
||||||
|
#
|
||||||
|
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
|
||||||
43
hello_world/main/hello_world_main.c
Normal file
43
hello_world/main/hello_world_main.c
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/* Hello World Example
|
||||||
|
|
||||||
|
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, this
|
||||||
|
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||||
|
CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
#include "freertos/task.h"
|
||||||
|
#include "esp_system.h"
|
||||||
|
#include "esp_spi_flash.h"
|
||||||
|
|
||||||
|
void app_main(void)
|
||||||
|
{
|
||||||
|
printf("Hello world!\n");
|
||||||
|
|
||||||
|
/* Print chip information */
|
||||||
|
esp_chip_info_t chip_info;
|
||||||
|
esp_chip_info(&chip_info);
|
||||||
|
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
|
||||||
|
CONFIG_IDF_TARGET,
|
||||||
|
chip_info.cores,
|
||||||
|
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
|
||||||
|
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
|
||||||
|
|
||||||
|
printf("silicon revision %d, ", chip_info.revision);
|
||||||
|
|
||||||
|
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
|
||||||
|
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
|
||||||
|
|
||||||
|
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
|
||||||
|
|
||||||
|
for (int i = 10; i >= 0; i--) {
|
||||||
|
printf("Restarting in %d seconds...\n", i);
|
||||||
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||||
|
}
|
||||||
|
printf("Restarting now.\n");
|
||||||
|
fflush(stdout);
|
||||||
|
esp_restart();
|
||||||
|
}
|
||||||
1386
hello_world/sdkconfig
Normal file
1386
hello_world/sdkconfig
Normal file
File diff suppressed because it is too large
Load Diff
0
hello_world/sdkconfig.ci
Normal file
0
hello_world/sdkconfig.ci
Normal file
Loading…
x
Reference in New Issue
Block a user