Ok. So after trying different modems I managed to find a GSM modem that has only one interface and a Device class of 0x02. Enumeration is taking place and I can get the UX_HOST_CLASS_CDC_ACM. I'm probing and decoding the USB lines and, among other things, see the endpoint descriptors as follows: 07 05 83 03 0F 00 01 07 05 81 02 00 02 00 07 05 02 02 00 02 00 Comparing to the standard I interpret that the first one is the interrupt endpoint, second one is the BULK IN endpoint with endpoint address 129, and the third is the BULK OUT with endpoint address 2. However, when I printf the endpoint addresses in my code I get the BULK IN address at 129 and the BULK OUT address at a 1. When I make calls to ux_host_class_cdc_acm_write and decode the data I can see the correct data going out through endpoint 1 (instead of 2!). Is there anyway I can reconfigure the endpoint descriptor? I have tried changing the values in the structs before making calls to write e.g. with cdc_acm- ux_host_class_cdc_acm_bulk_out_endpoint- ux_endpoint_device- ux_device_address=2 cdc_acm- ux_host_class_cdc_acm_bulk_out_endpoint- ux_endpoint_descriptor.bEndpointAddress=2 but the data still goes out endpoint 1. Am I interpreting something incorrectly? EDIT: is decryption of these source files available to common users? I find that some files I am able to view with the PROTECTED watermark, but for most (e.g. ux_host_class_cdc_acm_entry.c) I get a message saying "Decryption not permitted". EDIT EDIT: seems like regular users dont have viewing access to USBX source files...
↧