diff options
| author | Zixun LI <[email protected]> | 2026-05-23 21:12:30 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-05-23 21:12:30 +0200 |
| commit | 65fb8dfbadbb0b5970a1e984c290b5d6a5bcb315 (patch) | |
| tree | 070990b12b8bf13b27873dad44515a04653aae70 /hw | |
| parent | 4c87db341e4af7d53ce9cbbdf693593a520dc538 (diff) | |
| parent | 311fb46eb2f963254af6ab206b74828a0ba0273c (diff) | |
Merge pull request #3622 from mickabrig7/master
fix(dcd_ch32_usbfs): fix dropped bulk OUT packets by properly re-arming EP_RX_CTRL state
Diffstat (limited to 'hw')
| -rw-r--r-- | hw/bsp/ch32v10x/linker/ch32v10x.ld | 23 | ||||
| -rw-r--r-- | hw/bsp/ch32v20x/family.cmake | 3 | ||||
| -rw-r--r-- | hw/bsp/ch32v20x/linker/ch32v20x.ld | 23 | ||||
| -rw-r--r-- | hw/bsp/ch32v30x/linker/ch32v30x.ld | 24 |
4 files changed, 38 insertions, 35 deletions
diff --git a/hw/bsp/ch32v10x/linker/ch32v10x.ld b/hw/bsp/ch32v10x/linker/ch32v10x.ld index cd5c8dc17..a2de3c25f 100644 --- a/hw/bsp/ch32v10x/linker/ch32v10x.ld +++ b/hw/bsp/ch32v10x/linker/ch32v10x.ld @@ -13,6 +13,7 @@ ENTRY( _start ) __stack_size = 2048; PROVIDE( _stack_size = __stack_size ); +_estack = ORIGIN(RAM) + LENGTH(RAM); SECTIONS { @@ -150,16 +151,16 @@ SECTIONS PROVIDE( _ebss = .); } >RAM AT>FLASH - PROVIDE( _end = _ebss); - PROVIDE( end = . ); - - .stack ORIGIN(RAM) + LENGTH(RAM) - __stack_size : - { - PROVIDE( _heap_end = . ); - . = ALIGN(4); - PROVIDE(_susrstack = . ); - . = . + __stack_size; - PROVIDE( _eusrstack = .); - } >RAM + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE( end = . ); + PROVIDE( _end = . ); + . = . + __stack_size; + . = ALIGN(8); + } >RAM + PROVIDE( _heap_end = ORIGIN(RAM) + LENGTH(RAM) - __stack_size ); + PROVIDE( _susrstack = _heap_end ); + PROVIDE( _eusrstack = ORIGIN(RAM) + LENGTH(RAM) ); } diff --git a/hw/bsp/ch32v20x/family.cmake b/hw/bsp/ch32v20x/family.cmake index 59a96f70d..785f5ee35 100644 --- a/hw/bsp/ch32v20x/family.cmake +++ b/hw/bsp/ch32v20x/family.cmake @@ -61,8 +61,9 @@ function(family_add_board BOARD_TARGET) if (RHPORT_DEVICE EQUAL 0) target_compile_definitions(${BOARD_TARGET} PUBLIC CFG_TUD_WCH_USBIP_FSDEV=1) + target_compile_definitions(${BOARD_TARGET} PUBLIC CFG_TUH_WCH_USBIP_FSDEV=1) elseif (RHPORT_DEVICE EQUAL 1) - target_compile_definitions(${BOARD_TARGET} PUBLIC CFG_TUH_WCH_USBIP_USBFS=1) + target_compile_definitions(${BOARD_TARGET} PUBLIC CFG_TUD_WCH_USBIP_USBFS=1) else() message(FATAL_ERROR "Invalid RHPORT_DEVICE ${RHPORT_DEVICE}") endif() diff --git a/hw/bsp/ch32v20x/linker/ch32v20x.ld b/hw/bsp/ch32v20x/linker/ch32v20x.ld index f84808b0d..bfa9a8436 100644 --- a/hw/bsp/ch32v20x/linker/ch32v20x.ld +++ b/hw/bsp/ch32v20x/linker/ch32v20x.ld @@ -12,6 +12,7 @@ MEMORY ENTRY( _start ) PROVIDE( _stack_size = __stack_size ); +_estack = ORIGIN(RAM) + LENGTH(RAM); SECTIONS { @@ -149,16 +150,16 @@ SECTIONS PROVIDE( _ebss = .); } >RAM AT>FLASH - PROVIDE( _end = _ebss); - PROVIDE( end = . ); - - .stack ORIGIN(RAM) + LENGTH(RAM) - __stack_size : - { - PROVIDE( _heap_end = . ); - . = ALIGN(4); - PROVIDE(_susrstack = . ); - . = . + __stack_size; - PROVIDE( _eusrstack = .); - } >RAM + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE( end = . ); + PROVIDE( _end = . ); + . = . + __stack_size; + . = ALIGN(8); + } >RAM + PROVIDE( _heap_end = ORIGIN(RAM) + LENGTH(RAM) - __stack_size ); + PROVIDE( _susrstack = _heap_end ); + PROVIDE( _eusrstack = ORIGIN(RAM) + LENGTH(RAM) ); } diff --git a/hw/bsp/ch32v30x/linker/ch32v30x.ld b/hw/bsp/ch32v30x/linker/ch32v30x.ld index 6dd5d344a..2941c41a0 100644 --- a/hw/bsp/ch32v30x/linker/ch32v30x.ld +++ b/hw/bsp/ch32v30x/linker/ch32v30x.ld @@ -12,6 +12,7 @@ MEMORY ENTRY( _start ) PROVIDE( _stack_size = __stack_size ); +_estack = ORIGIN(RAM) + LENGTH(RAM); SECTIONS { @@ -151,17 +152,16 @@ SECTIONS PROVIDE( _ebss = .); } >RAM AT>FLASH - PROVIDE( _end = _ebss); - PROVIDE( end = . ); - - .stack ORIGIN(RAM) + LENGTH(RAM) - __stack_size : - { - PROVIDE( _heap_end = . ); - . = ALIGN(4); - PROVIDE(_susrstack = . ); - . = . + __stack_size; - PROVIDE( _eusrstack = .); - __freertos_irq_stack_top = .; - } >RAM + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE( end = . ); + PROVIDE( _end = . ); + . = . + __stack_size; + . = ALIGN(8); + } >RAM + PROVIDE( _heap_end = ORIGIN(RAM) + LENGTH(RAM) - __stack_size ); + PROVIDE( _susrstack = _heap_end ); + PROVIDE( _eusrstack = ORIGIN(RAM) + LENGTH(RAM) ); } |
