When I run the keyboard2mouse example on the LPC55S69-EVK with the default settings, it works perfectly.
However, its current operation seems to be:
PC <--> LPCIP3511HS <--> LPC55S69 <--> OHCI <--> Keyboard
But I want to modify the operation mode to:
PC <--> LPCIP3511FS<-->LPC55s69<--> IP3516HS <--> Keyboard
So I tried the following modification:
usb_host_config.h:
#define USB_HOST_CONFIG_OHCI 0U
#define USB_HOST_CONFIG_IP3516HS 1U
usb_device_config.h
#define USB_DEVICE_CONFIG_LPCIP3511FS 1U
#define USB_DEVICE_CONFIG_LPCIP3511HS 0U
I encountered the following error message:
arm-none-eabi/bin/ld.exe: region `USB_RAM' overflowed by 3840 bytes
Memory region Used Size Region Size %age Used
PROGRAM_FLASH: 83524 B 630 KB 12.95%
SRAM: 29408 B 256 KB 11.22%
SRAMX: 0 GB 32 KB 0.00%
USB_RAM: 20224 B 16 KB 123.44%
SRAM4: 0 GB 16 KB 0.00%
How to solve this problem ?
Hi inse1979
According to the error message "USB_RAM: 20224 B 16 KB 123.44%", your USB_RAM is overfolow. The reason is that, when you switch your USB Host controller from OHCI -> IP3516HS, the USB_RAM requirement exceeds 16k, which results in the overflow error.
IP3516HS driver needs more USB_RAM memory because its increased complexity.
While USB_RAM is only 16KB, your configuration is 20224B which is over the limit.
I ever tested the the same with SDK demos, switching USB demo from USB0. see article sections 2.1 and 2.2 of following article. There's no issue.
Therefore, I suggest you optimize your code by disabling unnecessary USB classes or points to release more memory. Or reduce USB devices or endpoints or buffer sizes.
Hope this helps,
Jun Zhang