obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but that tree was gitignored, so a clone of this repository could not build the firmware it ships. It is now committed here as ordinary files in its own folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP bridge's signature verification (--trust) used on the bench. Nothing is fetched from or pushed to the colleague's repository; this repository and its remotes carry everything. The folder's own .gitignore keeps build output, downloaded components and private key material out, as it did there; the committed file set is identical to that repository's tracked files. The ESP32-C5 is still flashed from obu-firmware/, which only takes vanetza-idf from microbu-esp32c5/, so the two stay separate folders. FLASHING.md says how to take a newer version of the colleague's tree (copy it over the folder, rebuild, test, commit).
31 lines
1.3 KiB
C++
31 lines
1.3 KiB
C++
#include <cstdio>
|
|
#include <esp_task_wdt.h>
|
|
#include <nvs_flash.h>
|
|
#include <freertos/FreeRTOS.h>
|
|
#include <freertos/task.h>
|
|
int vidf_test_main();
|
|
void run_hil_server();
|
|
extern "C" void app_main() {
|
|
// The ESP32-C5 ROM UART0 clock repair for warm resets is applied by the component
|
|
// itself (ports/esp_idf/src/esp32c5_rom_uart_clock.c) before app_main runs.
|
|
std::puts("vanetza-idf component tests beginning");
|
|
// NVS for the credential store tests (the application's job, credentials.hpp)
|
|
esp_err_t nvs = nvs_flash_init();
|
|
if (nvs == ESP_ERR_NVS_NO_FREE_PAGES || nvs == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
|
ESP_ERROR_CHECK(nvs_flash_erase());
|
|
nvs = nvs_flash_init();
|
|
}
|
|
ESP_ERROR_CHECK(nvs);
|
|
// The security tests run about a minute of software ECDSA without yielding; give the
|
|
// idle-task watchdog that long instead of interleaving its reports with the output.
|
|
esp_task_wdt_config_t watchdog = {};
|
|
watchdog.timeout_ms = 300000;
|
|
watchdog.idle_core_mask = (1 << portNUM_PROCESSORS) - 1;
|
|
watchdog.trigger_panic = false;
|
|
esp_task_wdt_reconfigure(&watchdog);
|
|
const int result = vidf_test_main();
|
|
std::printf("VIDF_TEST_RESULT=%d\n", result);
|
|
if (result == 0) run_hil_server();
|
|
for (;;) vTaskDelay(pdMS_TO_TICKS(1000));
|
|
}
|