Pocket PC FAQ Forums Forum Index Pocket PC FAQ Forums
The place to discuss Windows Mobile, Pocket PCs, Smartphones, Handheld PCs, Windows CE and More!
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

QUART Serial port driver issue in WinCE 6.0

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Pocket PC FAQ Forums Forum Index -> Windows CE Questions/Comments
View previous topic :: View next topic  
Author Message
Misbah
Pocketeer


Joined: 19 May 2010
Posts: 2
Location: India

PostPosted: Wed May 19, 2010 3:27 pm    Post subject: QUART Serial port driver issue in WinCE 6.0 Reply with quote

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
_________________
Senior Embeded design engineer,
Tes electronis solution,
Bangalore India
Back to top
View user's profile Send private message Send e-mail
ChrisDeHerrera
Site Admin


Joined: 01 Feb 2000
Posts: 7017
Location: Los Angeles, CA, USA

PostPosted: Wed May 19, 2010 6:29 pm    Post subject: Reply with quote

Hi,
The problem sounds like the cpu is not able to keep up with the requests.

I would suggest that you look at minimizing the code that is executing on the device especially in the processing of the serial requests.
_________________
Chris De Herrera
Microsoft MVP - Mobile Devices & Tablet PC
http://www.pocketpcfaq.com- The most complete set of FAQs on Windows CE
http://www.tabletpctalk.com - Get the latest Tablet PC News
http://www.pocketpctalk.com - Get the latest Pocket PC News
http://www.mobilitytalk.com - Quickly view all the Pocket PC & Tablet PC News on one page
Back to top
View user's profile Send private message Visit poster's website
Misbah
Pocketeer


Joined: 19 May 2010
Posts: 2
Location: India

PostPosted: Thu May 20, 2010 1:09 am    Post subject: quart driver issue in wince 6.0 Reply with quote

Hi Chris ,

Thanks for your reply.

Yes you are right.

I am using standard wince pdd/mdd driver architecture and i just added code which is platform dependent initialization routines. Rest i beleave windows architecture of pdd/mdd driver should take care of latency and other performance issue. I have not added any overhead function to it.

I dont know how to optimise this issue, whether using other driver architecture or ISR or anything else because i guess multiple uarts is something that we can do in wince very efficiently. If you have done such driver can you please share your design and architecture. which wince pdd/mdd architecture you used ISR and other technical details.


Thank you,
Misbah
_________________
Senior Embeded design engineer,
Tes electronis solution,
Bangalore India
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Pocket PC FAQ Forums Forum Index -> Windows CE Questions/Comments All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



Copyright 2001-2010, Chris De Herrera, All Rights Reserved

Powered by phpBB © 2001, 2005 phpBB Group