enable USBMC for uno r4, add board_init_after_tusb() API
add BOARD_UPPERCASE for board detection
This commit is contained in:
@@ -84,6 +84,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
// Init values
|
// Init values
|
||||||
sampFreq = AUDIO_SAMPLE_RATE;
|
sampFreq = AUDIO_SAMPLE_RATE;
|
||||||
clkValid = 1;
|
clkValid = 1;
|
||||||
|
|||||||
@@ -85,6 +85,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
// Init values
|
// Init values
|
||||||
sampFreq = AUDIO_SAMPLE_RATE;
|
sampFreq = AUDIO_SAMPLE_RATE;
|
||||||
clkValid = 1;
|
clkValid = 1;
|
||||||
|
|||||||
@@ -99,6 +99,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
// Init values
|
// Init values
|
||||||
sampFreq = sampleRatesList[0];
|
sampFreq = sampleRatesList[0];
|
||||||
clkValid = 1;
|
clkValid = 1;
|
||||||
|
|||||||
@@ -42,6 +42,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -58,6 +58,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -136,6 +136,10 @@ void usb_device_task(void* param)
|
|||||||
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
|
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
// RTOS forever loop
|
// RTOS forever loop
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -77,6 +77,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -60,6 +60,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -138,6 +138,10 @@ void usb_device_task(void* param)
|
|||||||
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
|
// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API.
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
// RTOS forever loop
|
// RTOS forever loop
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -64,6 +64,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -65,6 +65,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -232,6 +232,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
/* initialize lwip, dhcp-server, dns-server, and http */
|
/* initialize lwip, dhcp-server, dns-server, and http */
|
||||||
init_lwip();
|
init_lwip();
|
||||||
while (!netif_is_up(&netif_data));
|
while (!netif_is_up(&netif_data));
|
||||||
|
|||||||
@@ -105,6 +105,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
TU_LOG1("Headset running\r\n");
|
TU_LOG1("Headset running\r\n");
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -96,6 +96,10 @@ int main(void)
|
|||||||
// init device stack on configured roothub port
|
// init device stack on configured roothub port
|
||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -83,6 +83,10 @@ int main(void)
|
|||||||
tud_init(BOARD_TUD_RHPORT);
|
tud_init(BOARD_TUD_RHPORT);
|
||||||
tuh_init(BOARD_TUH_RHPORT);
|
tuh_init(BOARD_TUH_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ int main(void)
|
|||||||
// init host stack on configured roothub port
|
// init host stack on configured roothub port
|
||||||
tuh_init(BOARD_TUH_RHPORT);
|
tuh_init(BOARD_TUH_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
// tinyusb host task
|
// tinyusb host task
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ int main(void)
|
|||||||
// init host stack on configured roothub port
|
// init host stack on configured roothub port
|
||||||
tuh_init(BOARD_TUH_RHPORT);
|
tuh_init(BOARD_TUH_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
// tinyusb host task
|
// tinyusb host task
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ int main(void)
|
|||||||
// init host stack on configured roothub port
|
// init host stack on configured roothub port
|
||||||
tuh_init(BOARD_TUH_RHPORT);
|
tuh_init(BOARD_TUH_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
// tinyusb host task
|
// tinyusb host task
|
||||||
|
|||||||
@@ -80,6 +80,11 @@ int main(void)
|
|||||||
|
|
||||||
// init host stack on configured roothub port
|
// init host stack on configured roothub port
|
||||||
tuh_init(BOARD_TUH_RHPORT);
|
tuh_init(BOARD_TUH_RHPORT);
|
||||||
|
|
||||||
|
if (board_init_after_tusb) {
|
||||||
|
board_init_after_tusb();
|
||||||
|
}
|
||||||
|
|
||||||
msc_app_init();
|
msc_app_init();
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ INC += \
|
|||||||
$(TOP)/$(FAMILY_PATH) \
|
$(TOP)/$(FAMILY_PATH) \
|
||||||
$(TOP)/src \
|
$(TOP)/src \
|
||||||
|
|
||||||
|
BOARD_UPPER = $(shell echo $(BOARD) | tr a-z A-Z)
|
||||||
|
CFLAGS += -DBOARD_$(BOARD_UPPER)
|
||||||
|
|
||||||
# Log level is mapped to TUSB DEBUG option
|
# Log level is mapped to TUSB DEBUG option
|
||||||
ifneq ($(LOG),)
|
ifneq ($(LOG),)
|
||||||
|
|||||||
@@ -54,6 +54,9 @@
|
|||||||
// Initialize on-board peripherals : led, button, uart and USB
|
// Initialize on-board peripherals : led, button, uart and USB
|
||||||
void board_init(void);
|
void board_init(void);
|
||||||
|
|
||||||
|
// Init board after tinyusb is initialized
|
||||||
|
void board_init_after_tusb(void) TU_ATTR_WEAK;
|
||||||
|
|
||||||
// Turn LED on or off
|
// Turn LED on or off
|
||||||
void board_led_write(bool state);
|
void board_led_write(bool state);
|
||||||
|
|
||||||
|
|||||||
@@ -181,6 +181,11 @@ endfunction()
|
|||||||
function(family_configure_common TARGET RTOS)
|
function(family_configure_common TARGET RTOS)
|
||||||
family_add_rtos(${TARGET} ${RTOS})
|
family_add_rtos(${TARGET} ${RTOS})
|
||||||
|
|
||||||
|
string(TOUPPER ${BOARD} BOARD_UPPER)
|
||||||
|
target_compile_definitions(${TARGET} PUBLIC
|
||||||
|
BOARD_${BOARD_UPPER}
|
||||||
|
)
|
||||||
|
|
||||||
# run size after build
|
# run size after build
|
||||||
add_custom_command(TARGET ${TARGET} POST_BUILD
|
add_custom_command(TARGET ${TARGET} POST_BUILD
|
||||||
COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET}>
|
COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET}>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
CPU_CORE = cortex-m4
|
CPU_CORE = cortex-m4
|
||||||
MCU_VARIANT = ra4m1
|
MCU_VARIANT = ra4m1
|
||||||
|
|
||||||
LD_FILE = $(BOARD_PATH)/${BOARD}.ld
|
LD_FILE = ${BOARD_PATH}/${BOARD}.ld
|
||||||
|
|
||||||
# For flash-jlink target
|
# For flash-jlink target
|
||||||
JLINK_DEVICE = R7FA4M1AB
|
JLINK_DEVICE = R7FA4M1AB
|
||||||
|
|||||||
@@ -124,6 +124,13 @@ void board_init(void) {
|
|||||||
board_led_write(false);
|
board_led_write(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void board_init_after_tusb(void) {
|
||||||
|
// For board that use USB LDO regulator
|
||||||
|
#if defined(BOARD_UNO_R4)
|
||||||
|
R_USB_FS0->USBMC |= R_USB_FS0_USBMC_VDCEN_Msk;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void board_led_write(bool state) {
|
void board_led_write(bool state) {
|
||||||
R_IOPORT_PinWrite(&port_ctrl, LED1, state ? LED_STATE_ON : !LED_STATE_ON);
|
R_IOPORT_PinWrite(&port_ctrl, LED1, state ? LED_STATE_ON : !LED_STATE_ON);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -726,8 +726,6 @@ void dcd_init(uint8_t rhport)
|
|||||||
|
|
||||||
rusb->PHYSLEW = 0x5;
|
rusb->PHYSLEW = 0x5;
|
||||||
rusb->DPUSR0R_FS_b.FIXPHY0 = 0u; /* USB_BASE Transceiver Output fixed */
|
rusb->DPUSR0R_FS_b.FIXPHY0 = 0u; /* USB_BASE Transceiver Output fixed */
|
||||||
|
|
||||||
// rusb2->USBMC = (uint16_t) (rusb2->USBMC | RUSB2_USBMC_VDCEN_Msk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Setup default control pipe */
|
/* Setup default control pipe */
|
||||||
|
|||||||
Reference in New Issue
Block a user