I use e2 Studio Version: 2022-10 (22.10.0), with a RA6E1 mcu.
When i try to compile a test project with FSP4.2, Threadx and USBX CDC i get a compiler error.
"make (e=87): Error"
This indicates the Linker command line args too long. The Windows buffer is exceeded. More than 32000 chars.
Building target: USBX_pcdc_ra6e1.elf Invoking: GNU ARM Cross C Linker arm-none-eabi-gcc -mcpu=cortex-m33 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -O2 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wunused -Wuninitialized -Wall -Wextra -Wmissing-declarations -Wconversion -Wpointer-arith -Wshadow -Wlogical-op -Waggregate-return -Wfloat-equal -g -T "fsp.ld" -Xlinker --gc-sections -L "D:\\Projekte\\Renesas\\USBX_pcdc_ra6e1\\e2studio/script" -Wl,-Map,"USBX_pcdc_ra6e1.map" --specs=nano.specs --specs=rdimon.specs -o "USBX_pcdc_ra6e1.elf" -Wl,--start-group ./src/SEGGER_RTT/SEGGER_RTT.o ./src/SEGGER_RTT/SEGGER_RTT_printf.o ./src/common_utils.o ./src/hal_entry.o ./src/pcdc_acm_thread_entry.o ./src/rm_usbx_pcdc_descriptor.o ./src/rtt_thread_entry.o ./ra_gen/common_data.o ./ra_gen/hal_data.o ./ra_gen/main.o ./ra_gen/pcdc_acm_thread.o ./ra_gen/pin_data.o ./ra_gen/rtt_thread.o ./ra_gen/vector_data.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_activate.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_bulkin_thread.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_bulkout_thread.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_control_request.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_deactivate.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_entry.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_initialize.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_ioctl.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_read.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_unitialize.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_write.o ./ra/microsoft/azure-rtos/usbx/common/usbx_device_classes/src/ux_device_class_cdc_acm_write_with_callback.o ./ra/microsoft/azure-rtos/usbx/common/core/src/ux_dcd_sim_slave_address_set.o ./ra/microsoft/azure-rtos/usbx/common/core/src/ux_dcd_sim_slave_endpoint_create.o ./ra/microsoft/azure-rtos/usbx/common/core/src/ux_dcd_sim_slave_endpoint_destroy.o
This line has 35.000 chars.
ST with STM32CubeIDE solves this issue, the makefile builder create a objects.list file in the debug folder and call the linker in this way:
... makefile objects.list $(OPTIONAL_TOOL_DEPS) rm-none-eabi-gcc -o "Ux_Device_HID_CDC_ACM.elf" @"objects.list" $(USER_OBJS) $(LIBS)
how to modify the makefile builder or build process to fix this issue.
The issue is solved now:
You have to adjust the linker command:
@$(file >linkcl.rsp,$(subst \,/,${FLAGS}) ${cross_toolchain_flags} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}) ${COMMAND} @"linkcl.rsp"
Hi Sebastian,
Thanks for sharing the answer with us.
Regards