Windows CE 6.0 UART registry keys clarifications

In general the UARTB and UARTC registry keys explanations are missing in the below link:

So the below questions:-

  1. What exactly the ‘EnableDMA’ and ‘MDDBufferSize’, ‘ThreadPriority’ and ‘UsingISR’ settings control? Can we customize some of these keys? For e.g. disable the DMA? Increase or decrease the Buffer size?

[upload|LPgPeXVq1W14bRGRMS5OHaNPBKA=]

  1. The UARTC registry keys is different from that of UARTB. For e.g. it is missing ‘Priority256’ and ‘ThreadPriority’ keys. Why is this difference?
    [upload|fqBFZuA/eAqRbZBwUEk+Cv9LcNI=]

Thanks in advance for your support.

Priority256 defines serial driver thread priority, ThreadPriority defines priority of serial driver dispatch thread. It’s not recommended to change their values without deep understanding of serial driver architecture. If Priority256 or ThreadPriority are not defined in registry their value are set do default level.

Yes you can disable DMA or change buffer size (65536 is a max size). The UsingISR setting is ignored when DMA is enabled.

Hi @alex.tx , thanks for the clarification.
We are trying to understand the Vybrid WinCE UART driver architecture and usage constraints since we have two different serial protocol stacks, each using UARTB or UARTC and running in parallel, with hard real-time requirements.

  1. Can you please clarify the default values taken by Priority256 and ThreadPriority when not defined in Registry?
  2. Can we define Priority256 and ThreadPriority in the Registry with value 16 for UARTC, same as that of UARTB.?

Hi Vijay,
It is actually “ThreadPriorty” and not “ThreadPriority”. It is misspelled in the driver and it queries the value of “ThreadPriorty”. In case the value is not found then it takes the following value,
#define DEFAULT_CE_THREAD_PRIORITY 103

Hi Sahil, OK thanks.

So can you please confirm that the default priority level for Priority256 is also “DEFAULT_CE_THREAD_PRIORITY 103”?

Also, Can we define UARTC Priority256 and ThreadPriorty keys in the Registry with value 16, same as that of UARTB?

Yes, default value for Priority256 and ThreadPriorty is DEFAULT_CE_THREAD_PRIORITY 103"
Yes you can set it to 16, but it can affect a whole system performance.