TI-RTOS Drivers  tidrivers_tivac_2_16_00_08
Data Structures | Macros | Typedefs | Variables
UARTTivaDMA.h File Reference

Detailed Description

UART driver implementation for a Tiva UART controller thay uses DMA.

============================================================================

The UART header file should be included in an application as follows:

Refer to UART.h for a complete description of APIs & example of use.


#include <stdint.h>
#include <stdbool.h>
#include <ti/drivers/UART.h>
#include <ti/sysbios/knl/Semaphore.h>
#include <ti/sysbios/family/arm/m3/Hwi.h>
Include dependency graph for UARTTivaDMA.h:

Go to the source code of this file.

Data Structures

struct  UARTTivaDMA_HWAttrs
 UARTTivaDMA Hardware attributes. More...
 
struct  UARTTivaDMA_Object
 UARTTivaDMA Object. More...
 

Macros

#define ti_sysbios_family_arm_m3_Hwi__nolocalnames
 

Typedefs

typedef struct UARTTivaDMA_HWAttrs UARTTivaDMA_HWAttrs
 UARTTivaDMA Hardware attributes. More...
 
typedef struct UARTTivaDMA_Object UARTTivaDMA_Object
 UARTTivaDMA Object. More...
 
typedef struct UARTTivaDMA_ObjectUARTTivaDMA_Handle
 

Variables

const UART_FxnTable UARTTivaDMA_fxnTable
 

Macro Definition Documentation

#define ti_sysbios_family_arm_m3_Hwi__nolocalnames

Typedef Documentation

UARTTivaDMA Hardware attributes.

The fields, with the exception of intPriority, are used by driverlib APIs and therefore must be populated by driverlib macro definitions. For TivaWare these definitions are found in:

  • inc/hw_memmap.h
  • inc/hw_ints.h

intPriority is the UART peripheral's interrupt priority, as defined by the underlying OS. It is passed unmodified to the underlying OS's interrupt handler creation code, so you need to refer to the OS documentation for usage. For example, for SYS/BIOS applications, refer to the ti.sysbios.family.arm.m3.Hwi documentation for SYS/BIOS usage of interrupt priorities. If the driver uses the ti.drivers.ports interface instead of making OS calls directly, then the HwiP port handles the interrupt priority in an OS specific way. In the case of the SYS/BIOS port, intPriority is passed unmodified to Hwi_create().

A sample structure is shown below:

1 const UARTTivaDMA_HWAttrs uartTivaHWAttrs[] = {
2  {
3  .baseAddr = UART1_BASE,
4  .intNum = INT_UART1,
5  .intPriority = (~0),
6  .rxChannelIndex = UDMA_CH22_UART1RX,
7  .txChannelIndex = UDMA_CH23_UART1TX,
8  },
9  {
10  .baseAddr = UART3_BASE,
11  .intNum = INT_UART3
12  .intPriority = (~0),
13  .rxChannelIndex = UDMA_CH16_UART3RX,
14  .txChannelIndex = UDMA_CH17_UART3TX,
15  },
16 };

UARTTivaDMA Object.

The application must not access any member variables of this structure!

Variable Documentation

const UART_FxnTable UARTTivaDMA_fxnTable
Copyright 2016, Texas Instruments Incorporated