Open electretmike opened 1 month ago
Easier solution would be to remove CFG_TUD_MEM_SECTION
from the const
variables. Thay are not placed in RAM anyway
Hi, thank you for the issue, The correct fix would be add an interrupt EP buffer in CFG_TUD_MEM_SECTION
, until now the only message sent is ntb_parameters
but it could have other messages later.
CFG_TUD_MEM_SECTION
is necessary as explained in tusb_config.h
that some MCUs can only transfer to/from specific RAM region.
@rgrr
Hmmm... @electretmike : which NCM are you using? The old one or the recent one? Recent one has my name in the copyright (Hardy Griech).
If you are at the current one: all this section stuff was already in the original NCM driver (without looking for excuses). Thought it would be wise to not touch that part.
How is CFG_TUD_MEM_SECTION defined for your part? Perhaps this definition is simply wrong?
Operating System
Linux
Board
Custom STM32H7 based board
Firmware
class/net/ncm_device.c
What happened ?
When using CFG_TUD_MEM_SECTION I get a section conflict. This is because
ntb_parameters
is constant, whiletransmit_ntb
isn't. See https://stackoverflow.com/questions/30076949/gcc-error-variable-causes-a-section-type-conflictThis could be fixed by adding two configuration values:
CFG_TUD_RODATA_MEM_SECTION
andCFG_TUD_BSS_MEM_SECTION
and then replace all uses ofCFG_TUD_MEM_SECTION
with one of those two.How to reproduce ?
#define CFG_TUSB_MEM_SECTION __attribute__ ((section(".usb_ram")))
compiler:
arm-none-eabi-gcc (Fedora 13.2.0-5.fc40) 13.2.0
Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)
[build] Debug/_deps/tinyusb-src/src/class/net/ncm_device.c:140:73: error: 'ntb_parameters' causes a section type conflict with 'receive_ntb' [build] 140 | CFG_TUD_MEM_SECTION CFG_TUSB_MEM_ALIGN tu_static const ntb_parameters_t ntb_parameters = { [build] | ^~~~~~~~~~~~~~ [build] Debug/_deps/tinyusb-src/src/class/net/ncm_device.c:157:58: note: 'receive_ntb' was declared here [build] 157 | CFG_TUD_MEM_SECTION CFG_TUSB_MEM_ALIGN tu_static uint8_t receive_ntb[CFG_TUD_NCM_OUT_NTB_MAX_SIZE];
Screenshots
No response
I have checked existing issues, dicussion and documentation