Posted May 19, 201014 yr Hello! I have a OMAP-35xx board ported with WinCE-6.0 which uses a TL16c754 quad uart chip This chip has 4 interruptlines going to a CPLD, where they are OR'ed, and connected to the CPU. So, in other words i need to share GPIO irq. This system used to run Windows CE .net. The ISR is actually just GIISR.DLL, which was called for each uart like this:- KernelLibIoControl(pHWHead->hIsrHandler, IOCTL_GIISR_INFO, &Info, sizeof(Info), NULL, 0, NULL) where the GIISR_INFO struct is: Info.SysIntr = pSerialHead->pHWObj->dwIntID Info.CheckPort = TRUE Info.PortIsIO = FALSE Info.UseMaskReg = FALSE Info.PortAddr = (DWORD)pSerialHead->pCPLDUartReg Info.PortSize = sizeof(BYTE) Info.Mask = pSerialHead->UARTChannelNumMask My problem is: When we work with one port, the quart work fine (both receive and transmit) (At 115200 baud rate if we transmit data through any one port throughput comes aroung 10k byte per second which is fine ) When we try to send data through one port and receive data on another port the throughput goes down and we can see some framing errors. (At 115200 baud rate if we transmit data through both port throughput comes aroung 2.8k byte per second) When we try to send data from PC to one of the port on device, redirect this data to another port on device and send it back to PC. It works for some time and then one of the port just hangs, while the other port keeps on working. When the port hangs RTS of device/ CTS of PC becomes off for ever. And it becomes on only on device restart. Is this the latency issue? if yes how could we able to overcome it? Is there any way like usinf isr16550.dll would help to improve the performance ? Is this a design issue to have 8 uart with one interrupt ? How could we be able to improve the performance. Please do share your experience in this regard. I would be highly thankful for your advice/suggession. Thank you, Misbah
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.