Why is writing USB BTABLE being ignored or overwritten?
I am trying to write a USB driver. I set-up EndPoint 0 when I get a RESET from the host. This writes both the EndPoint Register as well as the Buffer Descriptor Table.
I can see that the EndPoint 0 register is written correctly, but the Buffer Descriptor Table always reads back zero. It is as-if it cannot be written at this point. When I set a breakpoint, and step through the code, then it is set correctly, but this does not work, because by that time the host would have given up.
Is there anything special about the timing when setting up the buffer descriptor table or am I missing something else?