I am using SDK 2.4.1.
rom_dev_hid_generic_bm\hid_main.c\#147 reads:
/* WORKAROUND for artf44835 ROM driver BUG:
Code clearing STALL bits in endpoint reset routine corrupts memory area
next to the endpoint control data. For example When EP0, EP1_IN, EP1_OUT,
EP2_IN are used we need to specify 3 here. But as a workaround for this
issue specify 4. So that extra EPs control structure acts as padding buffer
to avoid data corruption. Corruption of padding memory doesn’t affect the
stack/program behaviour.
*/
usb_param.max_num_ep = 2 + 1;
usb_param.mem_base = (uint32_t)&g_memUsbStack;
usb_param.mem_size = USB_STACK_MEM_SIZE;
I have 3 questions:
1)
I read “For example When EP0, EP1_IN, EP1_OUT, EP2_IN are used we need to specify 3 here” as the value 3 referring to the number of Logical endpoints and NOT physical endpoints. Is this correct?
assuming that the workaround refers to logical endpoints this explains that “2 + 1” because of EP0 and EP1_IN (HID).
2)
why is this workaround missing from other ROM USB Stack based examples ?
For example, rom_dev_audio_bm\sources\audio_main.c\#99 reads:
usb_param.max_num_ep = 2;
2.a) this does not mention WORKAROUND for artf44835?
2.b) The example is using EP0,EP1_IN,EP1_OUT;so shouldn't this be 2+1 as well to address artf44835?
With the discrepancy mentioned above in [2.a], is artf44835 still relevant to LPC546xx or should it be dismissed?
Thank you
Hi Bob,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
1) Yes, it means the logical endpoint.
2) I think all ROM USB demo should add the corresponding workaround for artf44835 ROM driver bug, I'll contact the SDK library team for confirming, and inform you ASAP after I get some clarifications.
Have a great day,
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------