summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-05-10 11:15:11 +0700
committerhathach <[email protected]>2023-05-10 11:15:11 +0700
commitc0e4c02b9d70240b97aa4924e6002ccb3d8057dd (patch)
treec3d860b46a9db5acd23579f36a5c8ac14cf988e0
parentbc579c045e5d62050f0b58f20fd28fb71e4070a8 (diff)
allow imxrt build with dual exmaples
-rw-r--r--examples/cmake/toolchain/set_flags.cmake3
-rw-r--r--examples/dual/CMakeLists.txt11
-rw-r--r--examples/dual/host_hid_to_device_cdc/CMakeLists.txt28
-rw-r--r--hw/bsp/family_support.cmake4
-rw-r--r--hw/bsp/imxrt/family.cmake4
-rw-r--r--src/portable/chipidea/ci_hs/hcd_ci_hs.c2
6 files changed, 30 insertions, 22 deletions
diff --git a/examples/cmake/toolchain/set_flags.cmake b/examples/cmake/toolchain/set_flags.cmake
index 27631abcd..3f109b59e 100644
--- a/examples/cmake/toolchain/set_flags.cmake
+++ b/examples/cmake/toolchain/set_flags.cmake
@@ -8,7 +8,8 @@ foreach(LANG IN ITEMS C CXX ASM)
#cmake_print_variables(CMAKE_${LANG}_FLAGS_INIT)
# optimization flags
- set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-Og")
+ set(CMAKE_${LANG}_FLAGS_RELEASE_INIT "-Os")
+ set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0")
endforeach()
# Linker
diff --git a/examples/dual/CMakeLists.txt b/examples/dual/CMakeLists.txt
index d211c8b83..15081cf26 100644
--- a/examples/dual/CMakeLists.txt
+++ b/examples/dual/CMakeLists.txt
@@ -4,9 +4,10 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/../../hw/bsp/family_support.cmake)
project(tinyusb_dual_examples C CXX ASM)
family_initialize_project(tinyusb_dual_examples ${CMAKE_CURRENT_LIST_DIR})
+
if (FAMILY STREQUAL "rp2040" AND NOT TARGET tinyusb_pico_pio_usb)
- message("Skipping dual host/device mode examples as Pico-PIO-USB is not available")
-else()
- # family_add_subdirectory will filter what to actually add based on selected FAMILY
- family_add_subdirectory(host_hid_to_device_cdc)
-endif()
+ message("Skipping dual host/device mode examples as Pico-PIO-USB is not available")
+else ()
+ # family_add_subdirectory will filter what to actually add based on selected FAMILY
+ family_add_subdirectory(host_hid_to_device_cdc)
+endif ()
diff --git a/examples/dual/host_hid_to_device_cdc/CMakeLists.txt b/examples/dual/host_hid_to_device_cdc/CMakeLists.txt
index 3505d39eb..c6d19a720 100644
--- a/examples/dual/host_hid_to_device_cdc/CMakeLists.txt
+++ b/examples/dual/host_hid_to_device_cdc/CMakeLists.txt
@@ -14,14 +14,14 @@ add_executable(${PROJECT})
# Example source
target_sources(${PROJECT} PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
- ${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.c
- )
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.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... see the corresponding function
# in hw/bsp/FAMILY/family.cmake for details.
@@ -29,12 +29,12 @@ family_configure_dual_usb_example(${PROJECT})
# due to warnings from Pico-PIO-USB
target_compile_options(${PROJECT} PUBLIC
- -Wno-error=shadow
- -Wno-error=cast-align
- -Wno-error=cast-qual
- -Wno-error=redundant-decls
- -Wno-error=sign-conversion
- -Wno-error=conversion
- -Wno-error=sign-compare
- -Wno-error=unused-function
- )
+ -Wno-error=shadow
+ -Wno-error=cast-align
+ -Wno-error=cast-qual
+ -Wno-error=redundant-decls
+ -Wno-error=sign-conversion
+ -Wno-error=conversion
+ -Wno-error=sign-compare
+ -Wno-error=unused-function
+ )
diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake
index 26baa6365..01e7bb018 100644
--- a/hw/bsp/family_support.cmake
+++ b/hw/bsp/family_support.cmake
@@ -27,8 +27,8 @@ if (NOT TARGET _family_support_marker)
foreach(MCU IN LISTS FAMILY_MCUS)
# For each line in only.txt
foreach(_line ${ONLYS_LINES})
- # If mcu:xxx exists for this mcu then include
- if (${_line} STREQUAL "mcu:${MCU}")
+ # If mcu:xxx exists for this mcu or board:xxx then include
+ if (${_line} STREQUAL "mcu:${MCU}" OR ${_line} STREQUAL "board:${BOARD}")
set(${RESULT} 1 PARENT_SCOPE)
return()
endif()
diff --git a/hw/bsp/imxrt/family.cmake b/hw/bsp/imxrt/family.cmake
index 85ad104a0..b510c064e 100644
--- a/hw/bsp/imxrt/family.cmake
+++ b/hw/bsp/imxrt/family.cmake
@@ -173,3 +173,7 @@ endfunction()
function(family_configure_host_example TARGET)
family_configure_target(${TARGET})
endfunction()
+
+function(family_configure_dual_usb_example TARGET)
+ family_configure_target(${TARGET})
+endfunction()
diff --git a/src/portable/chipidea/ci_hs/hcd_ci_hs.c b/src/portable/chipidea/ci_hs/hcd_ci_hs.c
index d607627b4..b06633f30 100644
--- a/src/portable/chipidea/ci_hs/hcd_ci_hs.c
+++ b/src/portable/chipidea/ci_hs/hcd_ci_hs.c
@@ -76,6 +76,8 @@ bool hcd_init(uint8_t rhport)
#endif
// FIXME force full speed, still have issue with Highspeed enumeration
+ // 1. Have issue when plug/unplug devices, maybe the port is not reset properly
+ // 2. Also does not seems to detect disconnection
hcd_reg->PORTSC1 |= PORTSC1_FORCE_FULL_SPEED;
return ehci_init(rhport, (uint32_t) &hcd_reg->CAPLENGTH, (uint32_t) &hcd_reg->USBCMD);