add new tusb_int_handler(rhport, in_isr) as common irq handler

update tusb_init() to take rhport and role, defined as macro with optional argument for backward compatible
This commit is contained in:
hathach
2024-10-10 16:22:12 +07:00
parent ffdf81f53a
commit 57aac432b5
59 changed files with 192 additions and 286 deletions

View File

@@ -86,7 +86,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -209,7 +209,7 @@ void usb_device_task(void* param)
// init device stack on configured roothub port
// This should be called after scheduler/kernel is started.
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -79,7 +79,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -156,7 +156,7 @@ void usb_device_task(void* param)
// init device stack on configured roothub port
// This should be called after scheduler/kernel is started.
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -97,7 +97,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -30,11 +30,6 @@
extern "C" {
#endif
// board_test example is special example that doesn't enable device or host stack
// This can cause some TinyUSB API missing, this define hack to allow us to fill those API
// to pass the compilation process
#define tud_int_handler(x)
//--------------------------------------------------------------------
// COMMON CONFIGURATION
//--------------------------------------------------------------------

View File

@@ -52,7 +52,7 @@ int main(void) {
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -51,7 +51,7 @@ int main(void) {
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -132,7 +132,7 @@ static void usb_device_task(void *param) {
// init device stack on configured roothub port
// This should be called after scheduler/kernel is started.
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -46,7 +46,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
#if (CFG_TUSB_MCU == OPT_MCU_RP2040)
stdio_init_all();

View File

@@ -75,7 +75,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -70,7 +70,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -57,7 +57,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -57,7 +57,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -58,7 +58,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -136,7 +136,7 @@ void usb_device_task(void* param)
// init device stack on configured roothub port
// This should be called after scheduler/kernel is started.
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -81,7 +81,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -62,7 +62,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -63,7 +63,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -54,7 +54,7 @@ int main(void) {
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -216,7 +216,7 @@ int main(void) {
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -100,7 +100,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -106,7 +106,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -55,7 +55,7 @@ int main(void)
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -68,7 +68,7 @@ int main(void) {
freertos_init_task();
#else
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();
@@ -319,7 +319,7 @@ void usb_device_task(void *param) {
// init device stack on configured roothub port
// This should be called after scheduler/kernel is started.
// Otherwise, it could cause kernel issue since USB IRQ handler does use RTOS queue API.
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -68,7 +68,7 @@ int main(void) {
freertos_init_task();
#else
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();
@@ -327,7 +327,7 @@ void usb_device_task(void *param) {
// init device stack on configured roothub port
// This should be called after scheduler/kernel is started.
// Otherwise, it could cause kernel issue since USB IRQ handler does use RTOS queue API.
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -91,7 +91,7 @@ int main(void) {
board_init();
// init device stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -79,8 +79,8 @@ int main(void) {
printf("TinyUSB Host HID <-> Device CDC Example\r\n");
// init device and host stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -82,8 +82,8 @@ int main(void) {
printf("TinyUSB Host Information -> Device CDC Example\r\n");
// init device and host stack on configured roothub port
tud_init(BOARD_TUD_RHPORT);
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUD_RHPORT, TUSB_ROLE_DEVICE);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -62,7 +62,7 @@ int main(void)
printf("TinyUSB Bare API Example\r\n");
// init host stack on configured roothub port
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -50,7 +50,7 @@ int main(void) {
printf("TinyUSB Host CDC MSC HID Example\r\n");
// init host stack on configured roothub port
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -126,7 +126,7 @@ static void usb_host_task(void *param) {
(void) param;
// init host stack on configured roothub port
if (!tuh_init(BOARD_TUH_RHPORT)) {
if (!tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST)) {
printf("Failed to init USB Host Stack\r\n");
vTaskSuspend(NULL);
}

View File

@@ -19,13 +19,13 @@ add_executable(${PROJECT})
# Example source
target_sources(${PROJECT} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
)
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
)
# Example include
target_include_directories(${PROJECT} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src
)
${CMAKE_CURRENT_SOURCE_DIR}/src
)
# Configure compilation flags and libraries for the example without RTOS.
# See the corresponding function in hw/bsp/FAMILY/family.cmake for details.

View File

@@ -4,11 +4,11 @@ mcu:LPC177X_8X
mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
mcu:MAX3421
mcu:MIMXRT1XXX
mcu:MIMXRT10XX
mcu:MIMXRT11XX
mcu:RP2040
mcu:MSP432E4
mcu:RP2040
mcu:RX65X
mcu:RAXXX
mcu:MAX3421

View File

@@ -66,7 +66,7 @@ int main(void) {
printf("TinyUSB Device Info Example\r\n");
// init host stack on configured roothub port
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -52,7 +52,7 @@ int main(void)
printf("Note: Events only displayed for explicit supported controllers\r\n");
// init host stack on configured roothub port
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();

View File

@@ -78,7 +78,7 @@ int main(void) {
printf("TinyUSB Host MassStorage Explorer Example\r\n");
// init host stack on configured roothub port
tuh_init(BOARD_TUH_RHPORT);
tusb_init(BOARD_TUH_RHPORT, TUSB_ROLE_HOST);
if (board_init_after_tusb) {
board_init_after_tusb();