EmbDev.net

Forum: ARM programming with GCC/GNU tools Problem with DMA interrupt


von Torsten L. (ziba)


Rate this post
useful
not useful
Hello,

I'am using the AT91SAM9RL64 Eval Board. To get to know USB, I extended
the  USB-Example "usb-device-core-project-1.4-at91sam9rl-ek" from the
ATMEL homepage.

I extended the configuration descriptor with two endpoint descriptors,
one bulk in- EP (1) and one bulk out EP (6). The size of the endpoints
is 512 byte. DMA is activated.

For testing I call the USBD_Write- function with the following
parameters:
USBD_Write( 0x1,&data,512,(TransferCallback)usbdWriteCallback,0);

Directly after this, my Callback- function is executed, because an
interrupt is triggered by the DMA Channel1, but I didn't read Data by
the host.

In my opinion this interrupt should only be triggert, when the host
read's data. Do you know a possible reason for this behavior? What I
have to consider?

On the host I use the LibUsb-Win32 driver/library.

Thx
Torsten

von Martin T. (mthomas) (Moderator)


Rate this post
useful
not useful
Maybe you can compare your code with the cdc-serial project also in the
software-package. It also sets up bulk-endpoints and descriptors are
included. It might be easier to adapt this example to your needs than to
add code to the core-example.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.