moving irq to bsp for lpc17/40

This commit is contained in:
hathach 2019-11-21 23:19:38 +07:00
parent bbec47b647
commit f5d737aa7e
14 changed files with 91 additions and 113 deletions

View File

@ -17,9 +17,6 @@ MCU_DIR = hw/mcu/nxp/lpcopen/lpc40xx/lpc_chip_40xx
# All source paths should be relative to the top level. # All source paths should be relative to the top level.
LD_FILE = hw/bsp/ea4088qs/lpc4088.ld LD_FILE = hw/bsp/ea4088qs/lpc4088.ld
# TODO remove later
SRC_C += src/portable/$(VENDOR)/$(CHIP_FAMILY)/hal_$(CHIP_FAMILY).c
SRC_C += \ SRC_C += \
$(MCU_DIR)/../gcc/cr_startup_lpc40xx.c \ $(MCU_DIR)/../gcc/cr_startup_lpc40xx.c \
$(MCU_DIR)/src/chip_17xx_40xx.c \ $(MCU_DIR)/src/chip_17xx_40xx.c \

View File

@ -113,6 +113,21 @@ void board_init(void)
LPC_USB->StCtrl = 0x3; LPC_USB->StCtrl = 0x3;
} }
//--------------------------------------------------------------------+
// USB Interrupt Handler
//--------------------------------------------------------------------+
void USB_IRQHandler(void)
{
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0);
#endif
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0);
#endif
}
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+

View File

@ -235,22 +235,22 @@ void board_init(void)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
void USB0_IRQHandler(void) void USB0_IRQHandler(void)
{ {
#if TUSB_OPT_HOST_ENABLED #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0); tuh_isr(0);
#endif #endif
#if TUSB_OPT_DEVICE_ENABLED #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0); tud_isr(0);
#endif #endif
} }
void USB1_IRQHandler(void) void USB1_IRQHandler(void)
{ {
#if TUSB_OPT_HOST_ENABLED #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
tuh_isr(1); tuh_isr(1);
#endif #endif
#if TUSB_OPT_DEVICE_ENABLED #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
tud_isr(1); tud_isr(1);
#endif #endif
} }

View File

@ -17,9 +17,6 @@ MCU_DIR = hw/mcu/nxp/lpcopen/lpc175x_6x/lpc_chip_175x_6x
# All source paths should be relative to the top level. # All source paths should be relative to the top level.
LD_FILE = hw/bsp/lpcxpresso1769/lpc1769.ld LD_FILE = hw/bsp/lpcxpresso1769/lpc1769.ld
# TODO remove later
SRC_C += src/portable/$(VENDOR)/$(CHIP_FAMILY)/hal_$(CHIP_FAMILY).c
SRC_C += \ SRC_C += \
$(MCU_DIR)/../gcc/cr_startup_lpc175x_6x.c \ $(MCU_DIR)/../gcc/cr_startup_lpc175x_6x.c \
$(MCU_DIR)/src/chip_17xx_40xx.c \ $(MCU_DIR)/src/chip_17xx_40xx.c \

View File

@ -143,6 +143,20 @@ void board_init(void)
#endif #endif
} }
//--------------------------------------------------------------------+
// USB Interrupt Handler
//--------------------------------------------------------------------+
void USB_IRQHandler(void)
{
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0);
#endif
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0);
#endif
}
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+

View File

@ -17,9 +17,6 @@ MCU_DIR = hw/mcu/nxp/lpcopen/lpc175x_6x/lpc_chip_175x_6x
# All source paths should be relative to the top level. # All source paths should be relative to the top level.
LD_FILE = hw/bsp/mbed1768/lpc1768.ld LD_FILE = hw/bsp/mbed1768/lpc1768.ld
# TODO remove later
SRC_C += src/portable/$(VENDOR)/$(CHIP_FAMILY)/hal_$(CHIP_FAMILY).c
SRC_C += \ SRC_C += \
$(MCU_DIR)/../gcc/cr_startup_lpc175x_6x.c \ $(MCU_DIR)/../gcc/cr_startup_lpc175x_6x.c \
$(MCU_DIR)/src/chip_17xx_40xx.c \ $(MCU_DIR)/src/chip_17xx_40xx.c \
@ -44,5 +41,7 @@ FREERTOS_PORT = ARM_CM3
JLINK_DEVICE = LPC1768 JLINK_DEVICE = LPC1768
JLINK_IF = swd JLINK_IF = swd
# flash using jlink # flash using pyocd
flash: flash-jlink flash: $(BUILD)/$(BOARD)-firmware.hex
pyocd flash -t lpc1768 $<

View File

@ -135,6 +135,20 @@ void board_init(void)
#endif #endif
} }
//--------------------------------------------------------------------+
// USB Interrupt Handler
//--------------------------------------------------------------------+
void USB_IRQHandler(void)
{
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0);
#endif
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0);
#endif
}
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+

View File

@ -177,26 +177,25 @@ void board_init(void)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
void USB0_IRQHandler(void) void USB0_IRQHandler(void)
{ {
#if TUSB_OPT_HOST_ENABLED #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0); tuh_isr(0);
#endif #endif
#if TUSB_OPT_DEVICE_ENABLED #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0); tud_isr(0);
#endif #endif
} }
void USB1_IRQHandler(void) void USB1_IRQHandler(void)
{ {
#if TUSB_OPT_HOST_ENABLED #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
tuh_isr(1); tuh_isr(1);
#endif #endif
#if TUSB_OPT_DEVICE_ENABLED #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
tud_isr(1); tud_isr(1);
#endif #endif
} }
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+

View File

@ -118,6 +118,31 @@ void board_init(void)
// CLOCK_EnableUsbhs1Clock(kCLOCK_Usb480M, 480000000U); // CLOCK_EnableUsbhs1Clock(kCLOCK_Usb480M, 480000000U);
} }
//--------------------------------------------------------------------+
// USB Interrupt Handler
//--------------------------------------------------------------------+
void USB0_IRQHandler(void)
{
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0);
#endif
#if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0);
#endif
}
void USB1_IRQHandler(void)
{
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
tuh_isr(1);
#endif
#if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
tud_isr(1);
#endif
}
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+

View File

@ -224,22 +224,22 @@ void board_init(void)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
void USB0_IRQHandler(void) void USB0_IRQHandler(void)
{ {
#if TUSB_OPT_HOST_ENABLED #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
tuh_isr(0); tuh_isr(0);
#endif #endif
#if TUSB_OPT_DEVICE_ENABLED #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE
tud_isr(0); tud_isr(0);
#endif #endif
} }
void USB1_IRQHandler(void) void USB1_IRQHandler(void)
{ {
#if TUSB_OPT_HOST_ENABLED #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST
tuh_isr(1); tuh_isr(1);
#endif #endif
#if TUSB_OPT_DEVICE_ENABLED #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE
tud_isr(1); tud_isr(1);
#endif #endif
} }

View File

@ -88,6 +88,9 @@ typedef struct TU_ATTR_ALIGNED(4)
// Initialize controller to device mode // Initialize controller to device mode
void dcd_init (uint8_t rhport); void dcd_init (uint8_t rhport);
// Interrupt Handler
void dcd_isr (uint8_t rhport);
// Enable device interrupt // Enable device interrupt
void dcd_int_enable (uint8_t rhport); void dcd_int_enable (uint8_t rhport);

View File

@ -1,7 +1,7 @@
/* /*
* The MIT License (MIT) * The MIT License (MIT)
* *
* Copyright (c) 2019 Ha Thach (tinyusb.org) * Copyright (c) 2019, Ha Thach (tinyusb.org)
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
@ -24,27 +24,12 @@
* This file is part of the TinyUSB stack. * This file is part of the TinyUSB stack.
*/ */
#include "common/tusb_common.h" #include "tusb_option.h"
#if (CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC40XX) #if (CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC40XX)
#include "chip.h" #include "chip.h"
extern void hcd_isr(uint8_t hostid);
extern void dcd_isr(uint8_t rhport);
void USB_IRQHandler(void)
{
#if TUSB_OPT_HOST_ENABLED
hcd_isr(0);
#endif
#if TUSB_OPT_DEVICE_ENABLED
dcd_isr(0);
#endif
}
//FIXME move later
void hcd_int_enable(uint8_t rhport) void hcd_int_enable(uint8_t rhport)
{ {
(void) rhport; (void) rhport;
@ -57,5 +42,5 @@ void hcd_int_disable(uint8_t rhport)
NVIC_DisableIRQ(USB_IRQn); NVIC_DisableIRQ(USB_IRQn);
} }
#endif #endif

View File

@ -1,70 +0,0 @@
/*
* The MIT License (MIT)
*
* Copyright (c) 2019 Ha Thach (tinyusb.org)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* This file is part of the TinyUSB stack.
*/
#include "tusb.h"
#if (CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_RT10XX)
#include "chip.h"
extern void dcd_isr(uint8_t rhport);
extern void hcd_isr(uint8_t hostid);
#if CFG_TUSB_RHPORT0_MODE
#if CFG_TUSB_MCU == OPT_MCU_RT10XX
void USB_OTG1_IRQHandler(void)
#else
void USB0_IRQHandler(void)
#endif
{
#if TUSB_OPT_HOST_ENABLED
hcd_isr(0);
#endif
#if TUSB_OPT_DEVICE_ENABLED
dcd_isr(0);
#endif
}
#endif
#if CFG_TUSB_RHPORT1_MODE
#if CFG_TUSB_MCU == OPT_MCU_RT10XX
void USB_OTG2_IRQHandler(void)
#else
void USB1_IRQHandler(void)
#endif
{
#if TUSB_OPT_HOST_ENABLED
hcd_isr(1);
#endif
#if TUSB_OPT_DEVICE_ENABLED
dcd_isr(1);
#endif
}
#endif
#endif

View File

@ -1,7 +1,7 @@
/* /*
* The MIT License (MIT) * The MIT License (MIT)
* *
* Copyright (c) 2019 hathach for Adafruit Industries * Copyright (c) 2019, Ha Thach (tinyusb.org)
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal