parent
32fdc2e7c5
commit
0b639272bf
@ -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) |
||||||
@ -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 |
||||||
@ -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() |
||||||
@ -0,0 +1,2 @@ |
|||||||
|
idf_component_register(SRCS "hello_world_main.c" |
||||||
|
INCLUDE_DIRS "") |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
#
|
||||||
|
# "main" pseudo-component makefile.
|
||||||
|
#
|
||||||
|
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
|
||||||
@ -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(); |
||||||
|
} |
||||||
Loading…
Reference in new issue