Difference between revisions of "Unit PL011"
From Ultibo.org
Line 758: | Line 758: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Address |
| The address of the PL011 registers | | The address of the PL011 registers | ||
|- | |- | ||
− | ! | + | ! Name |
| The text description of this device which will show in the device list (Optional) | | The text description of this device which will show in the device list (Optional) | ||
|- | |- | ||
− | ! | + | ! IRQ |
| The interrupt number for the PL011 | | The interrupt number for the PL011 | ||
|- | |- | ||
− | ! | + | ! ClockRate |
| The clock source frequency for the PL011 | | The clock source frequency for the PL011 | ||
|- | |- | ||
− | ! | + | ! Return |
| Pointer to the new UART device or nil if the UART device could not be created | | Pointer to the new UART device or nil if the UART device could not be created | ||
|- | |- | ||
Line 782: | Line 782: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! UART |
| The UART device to destroy | | The UART device to destroy | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 800: | Line 800: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Not intended to be called directly by applications, use UARTDeviceOpen instead | + | | Not intended to be called directly by applications, use UARTDeviceOpen instead. |
|- | |- | ||
|} | |} | ||
Line 812: | Line 812: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Not intended to be called directly by applications, use UARTDeviceClose instead | + | | Not intended to be called directly by applications, use UARTDeviceClose instead. |
|- | |- | ||
|} | |} | ||
Line 824: | Line 824: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Not intended to be called directly by applications, use UARTDeviceRead instead | + | | Not intended to be called directly by applications, use UARTDeviceRead instead. |
|- | |- | ||
|} | |} | ||
Line 836: | Line 836: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Not intended to be called directly by applications, use UARTDeviceWrite instead | + | | Not intended to be called directly by applications, use UARTDeviceWrite instead. |
|- | |- | ||
|} | |} | ||
Line 848: | Line 848: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Not intended to be called directly by applications, use UARTDeviceGetStatus instead | + | | Not intended to be called directly by applications, use UARTDeviceGetStatus instead. |
|- | |- | ||
|} | |} | ||
Line 860: | Line 860: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | Not intended to be called directly by applications, use UARTDeviceSetStatus instead | + | | Not intended to be called directly by applications, use UARTDeviceSetStatus instead. |
|- | |- | ||
|} | |} | ||
Line 872: | Line 872: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| Not intended to be called directly by applications | | Not intended to be called directly by applications | ||
|- | |- | ||
Line 884: | Line 884: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| Not intended to be called directly by applications | | Not intended to be called directly by applications | ||
|- | |- | ||
Line 896: | Line 896: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| Not intended to be called directly by applications | | Not intended to be called directly by applications | ||
|- | |- | ||
Line 908: | Line 908: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! UART |
| The PL011 UART device to enable the interrupt for | | The PL011 UART device to enable the interrupt for | ||
|- | |- | ||
− | ! | + | ! Interrupt |
| The interrupt to enable | | The interrupt to enable | ||
|- | |- | ||
− | ! | + | ! Note |
| Caller must hold the UART lock | | Caller must hold the UART lock | ||
|- | |- | ||
Line 926: | Line 926: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Network |
| The PL011 UART device to disable the interrupt for | | The PL011 UART device to disable the interrupt for | ||
|- | |- | ||
− | ! | + | ! Interrupt |
| The interrupt to disable | | The interrupt to disable | ||
|- | |- | ||
− | ! | + | ! Note |
| Caller must hold the UART lock | | Caller must hold the UART lock | ||
|- | |- |
Revision as of 04:41, 24 April 2018
Return to Unit Reference
Contents
[hide]Description
ARM PrimeCell PL011 UART Driver unit
To be documented
Constants
[Expand]
PL011 specific constants
PL011_*
[Expand]
PL011 UART data
PL011_UART_DR_*
[Expand]
PL011 UART receive status/error clear
PL011_UART_RSRECR_*
[Expand]
PL011 UART flag
PL011_UART_FR_*
[Expand]
PL011 UART integer baud rate divisor
PL011_UART_IBRD_*
[Expand]
PL011 UART fractional baud rate divisor
PL011_UART_FBRD_*
[Expand]
PL011 UART line control
PL011_UART_LCRH_*
[Expand]
PL011 UART control
PL011_UART_CR_*
[Expand]
PL011 UART interrupt FIFO level select
PL011_UART_IFLS_*
[Expand]
PL011 UART interrupt mask set/clear
PL011_UART_IMSC_*
[Expand]
PL011 UART raw interrupt status
PL011_UART_RIS_*
[Expand]
PL011 UART masked interrupt status
PL011_UART_MIS_*
[Expand]
PL011 UART interrupt clear
PL011_UART_ICR_*
[Expand]
PL011 UART DMA Control
[Expand]
PL011 UART test control
[Expand]
PL011 UART integration test input
[Expand]
PL011 UART integration test output
[Expand]
PL011 UART test data
Type definitions
PL011 UART registers
PL011 UART properties
Public variables
PL011 specific variables
PL011_RX_IRQ_MASK:Boolean = False;
|
If True then mask RX interrupts while RX FIFO is not empty (Allows for implementation variations) |
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 PL011UARTGetStatus(UART:PUARTDevice):LongWord;
Description: Implementation of UARTDeviceGetStatus API for PL011 UART
[Expand]
function PL011UARTSetStatus(UART:PUARTDevice; Status:LongWord):LongWord;
Description: Implementation of UARTDeviceSetStatus API for PL011 UART
[Expand]
procedure PL011UARTInterruptHandler(UART:PUARTDevice);
Description: Interrupt handler for the PL011 UART device
[Expand]
procedure PL011UARTReceive(UART:PUARTDevice);
Description: Receive handler for the PL011 UART device
[Expand]
procedure PL011UARTTransmit(UART:PUARTDevice);
Description: Transmit handler for the PL011 UART device
[Expand]
procedure PL011UARTEnableInterrupt(UART:PPL011UART; Interrupt:LongWord);
Description: Enable the specified interrupt in the interrupt mask register of a PL011 UART device
[Expand]
procedure PL011UARTDisableInterrupt(UART:PPL011UART; Interrupt:LongWord);
Description: Disable the specified interrupt in the interrupt mask register of a PL011 UART device
Return to Unit Reference