summaryrefslogtreecommitdiff
path: root/examples/device
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2026-06-11 08:16:43 +0700
committerGitHub <[email protected]>2026-06-11 08:16:43 +0700
commit6f35e76667f4015ef429ace5730e20cc0037e042 (patch)
tree2363b6c2d57b1d784f8f236a28af5c45a5857ef3 /examples/device
parent575a8fbcd0e5880791ea5f834649149a8f787d95 (diff)
HIL: replace build.flags_on with named build variants (#3687)
* test/hil: replace build.flags_on with named variant schema Boards declare build variants as `variant: [{name, flags}]` instead of `build.flags_on`. The variant `name` is the build dir (cmake-build-<name>) and the HIL report row; `flags` is the raw CFLAGS string (-D...=1) injected via CFLAGS_CLI. No `variant` => a single build named after the board. - build.py: --build-name <name> (dir) + --cflag=<token> (raw CFLAGS, repeatable, =form survives the matrix's shell word-splitting); drop -f1/CFLAGS wrapping. - hil_ci_set_matrix.py: emit one build arg per variant. - hil_test.py: iterate variants; report row + build dir = variant name. - hil_ci.sh: copy all cmake-build-<board>* dirs for -b runs. - get_deps.py: accept (ignore) --build-name/--cflag from matrix args. - tinyusb.json: migrate all 6 flags_on boards to variant. * board_test: park CI build with busy spin instead of wfe
Diffstat (limited to 'examples/device')
-rw-r--r--examples/device/board_test/src/main.c50
1 files changed, 19 insertions, 31 deletions
diff --git a/examples/device/board_test/src/main.c b/examples/device/board_test/src/main.c
index 3d8cf9979..96dc1bd30 100644
--- a/examples/device/board_test/src/main.c
+++ b/examples/device/board_test/src/main.c
@@ -57,8 +57,16 @@ void tusb_time_delay_ms_api(uint32_t ms) {
// CI_BUILD (defined for all CI builds, see hw/bsp/family_support.cmake) skips the
// blink/echo loop below: after HIL tests, this firmware is flashed to park the
// board in a quiet, low-power idle state (no USB, LED, or UART activity).
-#ifndef CI_BUILD
+#ifdef CI_BUILD
+int main(void) {
+ while (1) {
+ #if defined(ESP_PLATFORM)
+ vTaskDelay(portMAX_DELAY);
+ #endif
+ }
+}
+#else
// Task parameter type: ULONG for ThreadX, void* for FreeRTOS and noos
#if CFG_TUSB_OS == OPT_OS_THREADX
#define RTOS_PARAM ULONG
@@ -112,46 +120,21 @@ static void board_test_loop(RTOS_PARAM param) {
}
}
-#endif // CI_BUILD
-
int main(void) {
-#ifdef CI_BUILD
- // Park the board in a quiet, low-power idle loop. board_init() is intentionally
- // skipped: no clocks, peripherals, USB, LED, or UART are brought up, so the MCU
- // just idles after CI flashes this over a board's previous test firmware.
- while (1) {
- #if defined(ESP_PLATFORM)
- vTaskDelay(portMAX_DELAY); // ESP runs FreeRTOS: yield this task indefinitely
- #elif defined(__ARM_ARCH) || defined(__arm__)
- __asm volatile("wfe"); // Cortex-M: sleep until an event
- #else
- // other architectures (e.g. RISC-V): spin
- #endif
- }
- // no return: the loop never exits (an unreachable return trips IAR's Pe111)
-#else
board_init();
board_led_write(true);
- #if CFG_TUSB_OS == OPT_OS_FREERTOS
+#if CFG_TUSB_OS == OPT_OS_FREERTOS
freertos_init();
- #elif CFG_TUSB_OS == OPT_OS_THREADX
+#elif CFG_TUSB_OS == OPT_OS_THREADX
tx_kernel_enter();
- #else
+#else
board_test_loop(NULL);
- #endif
-
- return 0;
#endif
-}
-#ifdef ESP_PLATFORM
-void app_main(void) {
- main();
+ return 0;
}
-#endif
-#ifndef CI_BUILD
//--------------------------------------------------------------------+
// FreeRTOS
//--------------------------------------------------------------------+
@@ -197,5 +180,10 @@ void tx_application_define(void *first_unused_memory) {
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
}
#endif
-
#endif // CI_BUILD
+
+#ifdef ESP_PLATFORM
+void app_main(void) {
+ main();
+}
+#endif