Compare commits
10 Commits
c4d395eaaa
...
main
Author | SHA1 | Date | |
---|---|---|---|
9fe40e1c77
|
|||
c4dcfe6efe
|
|||
07f61c24bf
|
|||
80e7d9e702
|
|||
798412d563
|
|||
42a5c411fd
|
|||
7ec1887027
|
|||
0944d29597
|
|||
05f8519864
|
|||
3b3f9b1f4d
|
15
.github/workflows/esp32_build.yml
vendored
15
.github/workflows/esp32_build.yml
vendored
@@ -1,16 +1,21 @@
|
|||||||
name: Thomas the tank engine - Build and Artifact the ESP-IDF Project
|
name: Thomas the tank engine - Build the ESP-IDF Project
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
pull_request:
|
pull_request:
|
||||||
|
merge_group:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
idf_ver:
|
idf_ver: [release-v5.0, release-v5.1, release-v5.2, release-v5.3]
|
||||||
[release-v4.4.7, release-v5.0.6, release-v5.1.4, release-v5.2.1]
|
idf_target: [esp32, esp32s3, esp32c3, esp32h2]
|
||||||
idf_target: [esp32, esp32s3, esp32c3]
|
include:
|
||||||
|
- idf_ver: release-v5.3
|
||||||
|
idf_target: esp32c5
|
||||||
|
exclude:
|
||||||
|
- idf_ver: release-v5.0
|
||||||
|
idf_target: esp32h2
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,3 +12,4 @@ sdkconfig.old
|
|||||||
!.vscode/launch.json
|
!.vscode/launch.json
|
||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
.history/*
|
.history/*
|
||||||
|
__pycache__
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
idf_component_register(SRCS "osr_ble.c"
|
|
||||||
INCLUDE_DIRS "."
|
|
||||||
PRIV_REQUIRES "nvs_flash")
|
|
@@ -1,2 +1,4 @@
|
|||||||
idf_component_register(SRCS "main.c"
|
idf_component_register(SRCS "main.c" "osr_ble.c"
|
||||||
INCLUDE_DIRS ".")
|
INCLUDE_DIRS "."
|
||||||
|
PRIV_REQUIRES
|
||||||
|
nvs_flash)
|
||||||
|
48
main/main.c
48
main/main.c
@@ -1,19 +1,55 @@
|
|||||||
|
#include <esp_chip_info.h>
|
||||||
|
#include <esp_flash.h>
|
||||||
|
#include <esp_log.h>
|
||||||
#include <esp_task_wdt.h>
|
#include <esp_task_wdt.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "osr_ble.h"
|
#include "osr_ble.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
|
#define TAG "app"
|
||||||
|
|
||||||
|
void esp32_info() {
|
||||||
|
esp_chip_info_t chip_info;
|
||||||
|
uint32_t flash_size;
|
||||||
|
esp_chip_info(&chip_info);
|
||||||
|
printf("This is %s chip with %d CPU core(s), %s%s%s%s, ", CONFIG_IDF_TARGET,
|
||||||
|
chip_info.cores,
|
||||||
|
(chip_info.features & CHIP_FEATURE_WIFI_BGN) ? "WiFi/" : "",
|
||||||
|
(chip_info.features & CHIP_FEATURE_BT) ? "BT" : "",
|
||||||
|
(chip_info.features & CHIP_FEATURE_BLE) ? "BLE" : "",
|
||||||
|
(chip_info.features & CHIP_FEATURE_IEEE802154)
|
||||||
|
? ", 802.15.4 (Zigbee/Thread)"
|
||||||
|
: "");
|
||||||
|
|
||||||
|
unsigned major_rev = chip_info.revision / 100;
|
||||||
|
unsigned minor_rev = chip_info.revision % 100;
|
||||||
|
printf("silicon revision v%d.%d, ", major_rev, minor_rev);
|
||||||
|
if (esp_flash_get_size(NULL, &flash_size) != ESP_OK) {
|
||||||
|
printf("Get flash size failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(
|
||||||
|
"%" PRIu32 "MB %s flash\n", flash_size / (uint32_t)(1024 * 1024),
|
||||||
|
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
|
||||||
|
|
||||||
|
printf("Minimum free heap size: %" PRIu32 " bytes\n",
|
||||||
|
esp_get_minimum_free_heap_size());
|
||||||
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
osr_ble_init();
|
osr_ble_init();
|
||||||
|
ESP_LOGI(TAG, "Setup done!");
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop(void* args) {
|
||||||
ESP_ERROR_CHECK(esp_task_wdt_reset());
|
while (1) {
|
||||||
|
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||||
|
ESP_LOGI(TAG, "Hello World!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void app_main() {
|
void app_main() {
|
||||||
setup();
|
setup();
|
||||||
while (1) {
|
xTaskCreatePinnedToCore(loop, "loop", 4096, NULL, 5, NULL, 1);
|
||||||
loop();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
4
pytest.ini
Normal file
4
pytest.ini
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[pytest]
|
||||||
|
addopts = --embedded-services esp,idf -s
|
||||||
|
python_files = *.py
|
||||||
|
timeout = 60
|
16
test/CMakeLists.txt
Normal file
16
test/CMakeLists.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# This is the project CMakeLists.txt file for the test subproject
|
||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
# Include the components directory of the main application:
|
||||||
|
#
|
||||||
|
set(EXTRA_COMPONENT_DIRS "../components")
|
||||||
|
|
||||||
|
# Set the components to include the tests for.
|
||||||
|
# This can be overriden from CMake cache:
|
||||||
|
# - when invoking CMake directly: cmake -D TEST_COMPONENTS="xxxxx" ..
|
||||||
|
# - when using idf.py: idf.py -T xxxxx build
|
||||||
|
#
|
||||||
|
set(TEST_COMPONENTS "logger" CACHE STRING "List of components to test")
|
||||||
|
|
||||||
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
|
project(component_unit_test)
|
6
test/Makefile
Normal file
6
test/Makefile
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
test:
|
||||||
|
@echo "Running tests..."
|
||||||
|
@idf.py fullclean build
|
||||||
|
pytest
|
||||||
|
|
||||||
|
.PHONE: test
|
2
test/main/CMakeLists.txt
Normal file
2
test/main/CMakeLists.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
idf_component_register(SRCS "components_test.c"
|
||||||
|
INCLUDE_DIRS ".")
|
16
test/main/components_test.c
Normal file
16
test/main/components_test.c
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "unity.h"
|
||||||
|
|
||||||
|
static void print_banner(const char* text);
|
||||||
|
|
||||||
|
void app_main(void) {
|
||||||
|
print_banner("Running all the registered tests");
|
||||||
|
UNITY_BEGIN();
|
||||||
|
unity_run_all_tests();
|
||||||
|
UNITY_END();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_banner(const char* text) {
|
||||||
|
printf("\n#### %s #####\n\n", text);
|
||||||
|
}
|
6
test/pytest_unittest.py
Normal file
6
test/pytest_unittest.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import pytest
|
||||||
|
from pytest_embedded import Dut
|
||||||
|
|
||||||
|
def test_unit_test(dut: Dut) -> None:
|
||||||
|
dut.expect("0 Failures")
|
||||||
|
dut.expect("Returned from app_main")
|
2
test/sdkconfig.defaults
Normal file
2
test/sdkconfig.defaults
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# disable watchdog
|
||||||
|
CONFIG_ESP_TASK_WDT_EN=n
|
Reference in New Issue
Block a user