Difference between revisions of "Unit PL011"

From Ultibo.org
Jump to: navigation, search
Line 572: Line 572:
 
----
 
----
  
''To be documented''
+
 
 +
'''PL011 UART registers'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PPL011UARTRegisters = ^TPL011UARTRegisters;</code>
 +
 
 +
<code>TPL011UARTRegisters = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Note: Layout of the PL011 registers (See: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0183g/index.html)
 +
|-
 +
| <code>DR:LongWord;</code>
 +
| Data Register
 +
|-
 +
| <code>RSRECR:LongWord;</code>
 +
| Receive Status Register / Error Clear Register
 +
|-
 +
| <code>Reserved01:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved02:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved03:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved04:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FR:LongWord;</code>
 +
| Flag register
 +
|-
 +
| <code>Reserved05:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ILPR:LongWord;</code>
 +
| IrDA Low-Power Counter Register
 +
|-
 +
| <code>IBRD:LongWord;</code>
 +
| Integer Baud rate divisor
 +
|-
 +
| <code>FBRD:LongWord;</code>
 +
| Fractional Baud rate divisor
 +
|-
 +
| <code>LCRH:LongWord;</code>
 +
| Line Control register
 +
|-
 +
| <code>CR:LongWord;</code>
 +
| Control register
 +
|-
 +
| <code>IFLS:LongWord;</code>
 +
| Interrupt FIFO Level Select Register
 +
|-
 +
| <code>IMSC:LongWord;</code>
 +
| Interrupt Mask Set Clear Register
 +
|-
 +
| <code>RIS:LongWord;</code>
 +
| Raw Interrupt Status Register
 +
|-
 +
| <code>MIS:LongWord;</code>
 +
| Masked Interrupt Status Register
 +
|-
 +
| <code>ICR:LongWord;</code>
 +
| Interrupt Clear Register
 +
|-
 +
| <code>DMACR:LongWord;</code>
 +
| DMA Control Register
 +
|-
 +
| <code>Reserved11:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved12:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved13:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved14:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved15:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved16:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved17:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved18:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved19:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1A:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1B:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1C:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Reserved1D:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ITCR:LongWord;</code>
 +
| Test Control Register
 +
|-
 +
| <code>ITIP:LongWord;</code>
 +
| Integration Test Input Register
 +
|-
 +
| <code>ITOP:LongWord;</code>
 +
| Integration Test Output Register
 +
|-
 +
| <code>TDR:LongWord;</code>
 +
| Test Data Register
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''PL011 UART properties'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PPL011UART = ^TPL011UART;</code>
 +
 
 +
<code>TPL011UART = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''UART Properties''
 +
|-
 +
| <code>UART:TUARTDevice;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''PL011 Properties''
 +
| &nbsp;
 +
|-
 +
| <code>IRQ:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ClockRate:LongWord;</code>
 +
| Device clock rate
 +
|-
 +
| <code>Registers:PPL011UARTRegisters;</code>
 +
| Device registers
 +
|-
 +
|colspan="2"|''Statistics Properties''
 +
|-
 +
| <code>InterruptCount:LongWord;</code>
 +
| Number of interrupt requests received by the device
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===

Revision as of 23:44, 23 January 2017

Return to Unit Reference


Description


ARM PrimeCell PL011 UART Driver unit

To be documented

Constants



[Expand]
PL011 specific constants PL011_*


[Expand]
PL011 UART data constants PL011_UART_DR_*


[Expand]
PL011 UART receive status/error clear constants PL011_UART_RSRECR_*


[Expand]
PL011 UART flag constants PL011_UART_FR_*


[Expand]
PL011 UART integer baud rate divisor constants PL011_UART_IBRD_*


[Expand]
PL011 UART fractional baud rate divisor constants PL011_UART_FBRD_*


[Expand]
PL011 UART line control constants PL011_UART_LCRH_*


[Expand]
PL011 UART control constants PL011_UART_CR_*


[Expand]
PL011 UART interrupt FIFO level select constants PL011_UART_IFLS_*


[Expand]
PL011 UART interrupt mask set/clear constants PL011_UART_IMSC_*


[Expand]
PL011 UART raw interrupt status constants PL011_UART_RIS_*


[Expand]
PL011 UART masked interrupt status constants PL011_UART_MIS_*


[Expand]
PL011 UART interrupt clear constants PL011_UART_ICR_*


[Expand]
PL011 UART DMA Control constants






Type definitions



PL011 UART registers

[Expand]

PPL011UARTRegisters = ^TPL011UARTRegisters;

TPL011UARTRegisters = record

PL011 UART properties

[Expand]

PPL011UART = ^TPL011UART;

TPL011UART = record


Public variables


None defined

Function declarations



PL011 functions

[Expand]
function PL011UARTCreate(Address:LongWord; const Name:String; IRQ,ClockRate:LongWord):PUARTDevice;
Description: Create and register a new PL011 UART device which can be accessed using the UART API


[Expand]
function PL011UARTDestroy(UART:PUARTDevice):LongWord;
Description: Close, deregister and destroy a PL011 UART device created by this driver


PL011 UART functions

[Expand]
function PL011UARTOpen(UART:PUARTDevice; BaudRate,DataBits,StopBits,Parity,FlowControl:LongWord):LongWord;
Description: Implementation of UARTDeviceOpen API for PL011 UART


[Expand]
function PL011UARTClose(UART:PUARTDevice):LongWord;
Description: Implementation of UARTDeviceClose API for PL011 UART


[Expand]
function PL011UARTRead(UART:PUARTDevice; Buffer:Pointer; Size,Flags:LongWord; var Count:LongWord):LongWord;
Description: Implementation of UARTDeviceRead API for PL011 UART


[Expand]
function PL011UARTWrite(UART:PUARTDevice; Buffer:Pointer; Size,Flags:LongWord; var Count:LongWord):LongWord;
Description: Implementation of UARTDeviceWrite API for PL011 UART


[Expand]
function PL011UARTStatus(UART:PUARTDevice):LongWord;
Description: Implementation of UARTDeviceStatus API for PL011 UART


[Expand]
procedure PL011UARTInterruptHandler(UART:PUARTDevice);
Description: To be documented


[Expand]
procedure PL011UARTReceive(UART:PUARTDevice);
Description: To be documented


[Expand]
procedure PL011UARTTransmit(UART:PUARTDevice);
Description: To be documented


Return to Unit Reference