Hallo
Ich hab folgendes Problem: auf meinem ML507 (Xilinx Virtex 5 FX mit PPC)
fahre ich die UART (FTDI Chip) im Interrupt Modus (Receive). Anbei ist
mal der Xilkernel Thread mit Callback gepostet. Hier nun meine Frage:
Ich krieg den Interrupt genau einmal (wenn ich was sende), dannach ist
Schluss. Erneuter Aufruf vom XUart_Enable_Interrupt bringt nix, ja
selbst die (dyrtie) variante, die UART zu resetten und neu zu
Initialisieren auch nicht.
Eventuell kennt jemand aus der Hüfte ( ;-) ) die Funktion, die das Flag
resettet. In der xintc.h bin ich übrigens auch nicht fündig geworden.
Vielen Dank
Der (Bsp.) Code
1 | void* communication_worker_thread(void *arg)
|
2 | {
|
3 | XUartLite uart;
|
4 | XUartLite_Config myCfg;
|
5 | //...
|
6 | XUartLite_CfgInitialize(&uart,&myCfg,XPAR_RS232_DTE_BASEADDR);
|
7 | #if USE_UART_IN_INTERRUPT_MODE
|
8 | register_int_handler(UART_INTERRUPT_INTR,(XInterruptHandler)XUartLite_InterruptHandler,(void *)&uart);
|
9 | uart.RecvHandler = (XUartLite_Handler)USB_UART_RECEIVE_HANDLER; // define aus xparameters.h umgebogen
|
10 | XUartLite_EnableInterrupt(&uart);
|
11 | enable_interrupt(UART_INTC);
|
12 | #endif
|
13 | return NULL;
|
14 | }
|
15 |
|
16 | void USB_UART_RECEIVE_HANDLER(void)
|
17 | {
|
18 | NACKED_TRACE("UART interrupted!\r\n");
|
19 |
|
20 | // --> wie wieder freischalten
|
21 | }
|