update esp build, replace TUSB_MCU_VENDOR_ESPRESSIF by ESP_PLATFORM

This commit is contained in:
hathach
2025-07-02 15:32:12 +07:00
parent 4579b4f825
commit 0388700ad7
27 changed files with 64 additions and 61 deletions

View File

@@ -93,7 +93,7 @@ jobs:
matrix: matrix:
toolchain: toolchain:
- 'aarch64-gcc' - 'aarch64-gcc'
- 'arm-clang' #- 'arm-clang'
- 'arm-gcc' - 'arm-gcc'
- 'msp430-gcc' - 'msp430-gcc'
- 'riscv-gcc' - 'riscv-gcc'

View File

@@ -39,7 +39,7 @@
#include "bsp/board_api.h" #include "bsp/board_api.h"
#include "tusb.h" #include "tusb.h"
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
// ESP-IDF need "freertos/" prefix in include path. // ESP-IDF need "freertos/" prefix in include path.
// CFG_TUSB_OS_INC_PATH should be defined accordingly. // CFG_TUSB_OS_INC_PATH should be defined accordingly.
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
@@ -158,17 +158,16 @@ int main(void)
xTaskCreate(audio_task, "audio", AUDIO_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL); xTaskCreate(audio_task, "audio", AUDIO_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL);
#endif #endif
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
return 0; return 0;
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) void app_main(void) {
{
main(); main();
} }
#endif #endif

View File

@@ -59,7 +59,7 @@ extern "C" {
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -38,7 +38,7 @@
#include "bsp/board_api.h" #include "bsp/board_api.h"
#include "tusb.h" #include "tusb.h"
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
// ESP-IDF need "freertos/" prefix in include path. // ESP-IDF need "freertos/" prefix in include path.
// CFG_TUSB_OS_INC_PATH should be defined accordingly. // CFG_TUSB_OS_INC_PATH should be defined accordingly.
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
@@ -132,15 +132,15 @@ int main(void)
xTaskCreate(usb_device_task, "usbd", USBD_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL); xTaskCreate(usb_device_task, "usbd", USBD_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL);
#endif #endif
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
return 0; return 0;
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) { void app_main(void) {
main(); main();
} }

View File

@@ -59,7 +59,7 @@ extern "C" {
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -44,7 +44,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -30,7 +30,7 @@
#include "bsp/board_api.h" #include "bsp/board_api.h"
#include "tusb.h" #include "tusb.h"
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define USBD_STACK_SIZE 4096 #define USBD_STACK_SIZE 4096
#else #else
// Increase stack size when debug log is enabled // Increase stack size when debug log is enabled
@@ -91,15 +91,15 @@ int main(void) {
xTaskCreate(cdc_task, "cdc", CDC_STACK_SZIE, NULL, configMAX_PRIORITIES - 2, NULL); xTaskCreate(cdc_task, "cdc", CDC_STACK_SZIE, NULL, configMAX_PRIORITIES - 2, NULL);
#endif #endif
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
return 0; return 0;
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) { void app_main(void) {
main(); main();
} }

View File

@@ -59,7 +59,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -31,7 +31,7 @@
#include "tusb.h" #include "tusb.h"
#include "usb_descriptors.h" #include "usb_descriptors.h"
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
// ESP-IDF need "freertos/" prefix in include path. // ESP-IDF need "freertos/" prefix in include path.
// CFG_TUSB_OS_INC_PATH should be defined accordingly. // CFG_TUSB_OS_INC_PATH should be defined accordingly.
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
@@ -112,17 +112,16 @@ int main(void)
xTimerStart(blinky_tm, 0); xTimerStart(blinky_tm, 0);
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
return 0; return 0;
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) void app_main(void) {
{
main(); main();
} }
#endif #endif

View File

@@ -59,7 +59,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -40,7 +40,7 @@
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF PROTYPES // MACRO CONSTANT TYPEDEF PROTYPES
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define USBD_STACK_SIZE 4096 #define USBD_STACK_SIZE 4096
#else #else
// Increase stack size when debug log is enabled // Increase stack size when debug log is enabled
@@ -95,15 +95,15 @@ int main(void) {
xTaskCreate(midi_task, "midi", MIDI_STACK_SIZE, NULL, configMAX_PRIORITIES - 2, NULL); xTaskCreate(midi_task, "midi", MIDI_STACK_SIZE, NULL, configMAX_PRIORITIES - 2, NULL);
#endif #endif
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
return 0; return 0;
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) { void app_main(void) {
main(); main();
} }

View File

@@ -292,7 +292,7 @@ void led_blinking_task(void* param) {
#define BLINKY_STACK_SIZE configMINIMAL_STACK_SIZE #define BLINKY_STACK_SIZE configMINIMAL_STACK_SIZE
#define VIDEO_STACK_SIZE (configMINIMAL_STACK_SIZE*4) #define VIDEO_STACK_SIZE (configMINIMAL_STACK_SIZE*4)
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define USBD_STACK_SIZE 4096 #define USBD_STACK_SIZE 4096
int main(void); int main(void);
void app_main(void) { void app_main(void) {
@@ -351,8 +351,8 @@ void freertos_init_task(void) {
xTaskCreate(video_task, "video", VIDEO_STACK_SZIE, NULL, configMAX_PRIORITIES - 2, NULL); xTaskCreate(video_task, "video", VIDEO_STACK_SZIE, NULL, configMAX_PRIORITIES - 2, NULL);
#endif #endif
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
} }

View File

@@ -58,7 +58,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -300,7 +300,7 @@ void led_blinking_task(void* param) {
#define BLINKY_STACK_SIZE configMINIMAL_STACK_SIZE #define BLINKY_STACK_SIZE configMINIMAL_STACK_SIZE
#define VIDEO_STACK_SIZE (configMINIMAL_STACK_SIZE*4) #define VIDEO_STACK_SIZE (configMINIMAL_STACK_SIZE*4)
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define USBD_STACK_SIZE 4096 #define USBD_STACK_SIZE 4096
int main(void); int main(void);
void app_main(void) { void app_main(void) {
@@ -359,8 +359,8 @@ void freertos_init_task(void) {
xTaskCreate(video_task, "video", VIDEO_STACK_SZIE, NULL, configMAX_PRIORITIES - 2, NULL); xTaskCreate(video_task, "video", VIDEO_STACK_SZIE, NULL, configMAX_PRIORITIES - 2, NULL);
#endif #endif
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
} }

View File

@@ -58,7 +58,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -27,7 +27,7 @@
#include "tusb.h" #include "tusb.h"
#include "bsp/board_api.h" #include "bsp/board_api.h"
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CDC_STACK_SZIE 2048 #define CDC_STACK_SZIE 2048
#else #else
#define CDC_STACK_SZIE (3*configMINIMAL_STACK_SIZE/2) #define CDC_STACK_SZIE (3*configMINIMAL_STACK_SIZE/2)

View File

@@ -30,7 +30,7 @@
#include "bsp/board_api.h" #include "bsp/board_api.h"
#include "tusb.h" #include "tusb.h"
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define USBH_STACK_SIZE 4096 #define USBH_STACK_SIZE 4096
#else #else
// Increase stack size when debug log is enabled // Increase stack size when debug log is enabled
@@ -86,15 +86,15 @@ int main(void) {
xTimerStart(blinky_tm, 0); xTimerStart(blinky_tm, 0);
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
return 0; return 0;
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) { void app_main(void) {
main(); main();
} }

View File

@@ -44,7 +44,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -268,7 +268,7 @@ void led_blinking_task(void* param) {
#define BLINKY_STACK_SIZE configMINIMAL_STACK_SIZE #define BLINKY_STACK_SIZE configMINIMAL_STACK_SIZE
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define USB_STACK_SIZE 4096 #define USB_STACK_SIZE 4096
#else #else
// Increase stack size when debug log is enabled // Increase stack size when debug log is enabled
@@ -285,7 +285,7 @@ StackType_t usb_stack[USB_STACK_SIZE];
StaticTask_t usb_taskdef; StaticTask_t usb_taskdef;
#endif #endif
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) { void app_main(void) {
main(); main();
} }
@@ -308,8 +308,8 @@ void init_freertos_task(void) {
xTaskCreate(usb_host_task, "usbh", USB_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL); xTaskCreate(usb_host_task, "usbh", USB_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL);
#endif #endif
// skip starting scheduler (and return) for ESP32-S2 or ESP32-S3 // only start scheduler for non-espressif mcu
#if !TUSB_MCU_VENDOR_ESPRESSIF #ifndef ESP_PLATFORM
vTaskStartScheduler(); vTaskStartScheduler();
#endif #endif
} }

View File

@@ -40,7 +40,7 @@
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -40,7 +40,7 @@ extern "C" {
#endif #endif
// Espressif IDF requires "freertos/" prefix in include path // Espressif IDF requires "freertos/" prefix in include path
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
#define CFG_TUSB_OS_INC_PATH freertos/ #define CFG_TUSB_OS_INC_PATH freertos/
#endif #endif

View File

@@ -71,9 +71,8 @@ int main(void)
} }
} }
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
void app_main(void) void app_main(void) {
{
main(); main();
} }
#endif #endif

View File

@@ -66,7 +66,6 @@ int sys_read(int fhdl, char *buf, size_t count) {
#elif defined(LOGGER_SWO) #elif defined(LOGGER_SWO)
#define ITM_BASE 0xE0000000 #define ITM_BASE 0xE0000000
#define ITM_STIM0 (*((volatile uint8_t*)(ITM_BASE + 0))) #define ITM_STIM0 (*((volatile uint8_t*)(ITM_BASE + 0)))
#define ITM_TER *((volatile uint32_t*)(ITM_BASE + 0xE00)) #define ITM_TER *((volatile uint32_t*)(ITM_BASE + 0xE00))
#define ITM_TCR *((volatile uint32_t*)(ITM_BASE + 0xE80)) #define ITM_TCR *((volatile uint32_t*)(ITM_BASE + 0xE80))
@@ -150,6 +149,9 @@ int board_getchar(void) {
return (sys_read(0, &c, 1) > 0) ? (int) c : (-1); return (sys_read(0, &c, 1) > 0) ? (int) c : (-1);
} }
void board_putchar(int c) {
sys_write(0, (const char*)&c, 1);
}
uint32_t tusb_time_millis_api(void) { uint32_t tusb_time_millis_api(void) {
return board_millis(); return board_millis();
@@ -158,7 +160,7 @@ uint32_t tusb_time_millis_api(void) {
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// FreeRTOS hooks // FreeRTOS hooks
//-------------------------------------------------------------------- //--------------------------------------------------------------------
#if CFG_TUSB_OS == OPT_OS_FREERTOS && !TUSB_MCU_VENDOR_ESPRESSIF #if CFG_TUSB_OS == OPT_OS_FREERTOS && !defined(ESP_PLATFORM)
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "task.h" #include "task.h"
@@ -240,5 +242,4 @@ void vApplicationSetupTimerInterrupt(void) {
} }
#endif #endif
#endif #endif

View File

@@ -41,7 +41,7 @@ extern "C" {
#if CFG_TUSB_OS == OPT_OS_ZEPHYR #if CFG_TUSB_OS == OPT_OS_ZEPHYR
#include <zephyr/kernel.h> #include <zephyr/kernel.h>
#elif CFG_TUSB_OS == OPT_OS_FREERTOS #elif CFG_TUSB_OS == OPT_OS_FREERTOS
#if TUSB_MCU_VENDOR_ESPRESSIF #ifdef ESP_PLATFORM
// ESP-IDF need "freertos/" prefix in include path. // ESP-IDF need "freertos/" prefix in include path.
// CFG_TUSB_OS_INC_PATH should be defined accordingly. // CFG_TUSB_OS_INC_PATH should be defined accordingly.
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
@@ -195,6 +195,7 @@ static inline void board_delay(uint32_t ms) {
// stdio getchar() is blocking, this is non-blocking version // stdio getchar() is blocking, this is non-blocking version
int board_getchar(void); int board_getchar(void);
void board_putchar(int c);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -156,6 +156,10 @@ int board_getchar(void) {
return getchar(); return getchar();
} }
void board_putchar(int c) {
putchar(c);
}
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// PHY Init // PHY Init
//-------------------------------------------------------------------- //--------------------------------------------------------------------

View File

@@ -101,10 +101,8 @@ def cmake_board(board, toolchain, build_flags_on):
if build_utils.skip_example(example, board): if build_utils.skip_example(example, board):
ret[2] += 1 ret[2] += 1
else: else:
rcmd = run_cmd(f'cmake examples/{example} -B {build_dir}/{example} -G Ninja ' rcmd = run_cmd(f'idf.py -C examples/{example} -B {build_dir}/{example} -G Ninja '
f'-DBOARD={board} {build_flags}') f'-DBOARD={board} {build_flags} build')
if rcmd.returncode == 0:
rcmd = run_cmd(f'cmake --build {build_dir}/{example}')
ret[0 if rcmd.returncode == 0 else 1] += 1 ret[0 if rcmd.returncode == 0 else 1] += 1
else: else:
rcmd = run_cmd(f'cmake examples -B {build_dir} -G Ninja -DBOARD={board} -DCMAKE_BUILD_TYPE=MinSizeRel ' rcmd = run_cmd(f'cmake examples -B {build_dir} -G Ninja -DBOARD={board} -DCMAKE_BUILD_TYPE=MinSizeRel '

View File

@@ -26,6 +26,8 @@ def skip_example(example, board):
# family.mk # family.mk
family_mk = family_dir / "family.mk" family_mk = family_dir / "family.mk"
if not family_mk.exists():
family_mk = family_dir / "family.cmake"
mk_contents = family_mk.read_text() mk_contents = family_mk.read_text()
# Find the mcu, first in family mk then board mk # Find the mcu, first in family mk then board mk