MCUSW
Dio.h File Reference

Introduction

This file contains interface header for DIO MCAL driver to be used by other AUTOSAR MCAL Layers.

Go to the source code of this file.

Data Structures

struct  Dio_ChannelGroupType
 Type definition for identifying channel groups (meaning a set of pins in one port) More...
 
struct  Dio_RegisterReadbackType
 

Macros

#define DIO_PORT_WIDTH   (32U)
 Width of GPIO register in this platform not to be modified. More...
 
#define DIO_MCAL_2139_FIXED   (0U)
 Read back issue in Maxwell is resolved or not. More...
 
DIO Driver Module SW Version Info

Defines for DIO Driver version used for compatibility checks

#define DIO_SW_MAJOR_VERSION   (10U)
 Driver Implementation Major Version. More...
 
#define DIO_SW_MINOR_VERSION   (0U)
 Driver Implementation Minor Version. More...
 
#define DIO_SW_PATCH_VERSION   (0U)
 Driver Implementation Patch Version. More...
 
DIO Driver Module AUTOSAR Version Info

Defines for DIO Driver AUTOSAR version used for compatibility checks

#define DIO_AR_RELEASE_MAJOR_VERSION   (4U)
 AUTOSAR Major version specification implemented by DIO Driver. More...
 
#define DIO_AR_RELEASE_MINOR_VERSION   (3U)
 AUTOSAR Minor version specification implemented by DIO Driver. More...
 
#define DIO_AR_RELEASE_REVISION_VERSION   (1U)
 AUTOSAR Patch version specification implemented by DIO Driver. More...
 
DIO Driver ID Info
#define DIO_VENDOR_ID   ((uint16) 44U)
 Texas Instruments Vendor ID. More...
 
#define DIO_MODULE_ID   ((uint16) 120U)
 DIO Driver Module ID. More...
 
Dio Error Codes

Error codes returned by Driver functions

#define DIO_E_PARAM_INVALID_CHANNEL_ID   (0x0AU)
 ERROR:API service called with invalid channel ID. More...
 
#define DIO_E_PARAM_INVALID_PORT_ID   (0x14U)
 ERROR:API service called with invalid port ID. More...
 
#define DIO_E_PARAM_INVALID_GROUP   (0x1FU)
 ERROR:API service called with invalid channel group ID. More...
 
#define DIO_E_PARAM_POINTER   (0x20U)
 ERROR:Dio_GetVersionInfo() called with NULL_PTR as parameter. More...
 
Dio Service Ids

The Service Id is one of the argument to Det_ReportError function and is used to identify the source of the error

#define DIO_SID_READ_CHANNEL   (0U)
 Dio_ReadChannel() More...
 
#define DIO_SID_WRITE_CHANNEL   (1U)
 Dio_WriteChannel() More...
 
#define DIO_SID_READ_PORT   (2U)
 Dio_ReadPort() More...
 
#define DIO_SID_WRITE_PORT   (3U)
 Dio_WritePort() More...
 
#define DIO_SID_READ_CHL_GROUP   (4U)
 Dio_ReadChannelGroup() More...
 
#define DIO_SID_WRITE_CHL_GROUP   (5U)
 Dio_WriteChannelGroup() More...
 
#define DIO_SID_FLIP_CHANNEL   (7U)
 Dio_FlipChannel() More...
 
#define DIO_SID_GET_VERSION_INFO   (18U)
 Dio_GetVersionInfo() More...
 

Typedefs

typedef uint32 Dio_ChannelType
 type definition for identifying DIO channels (meaning single port pins) More...
 
typedef uint32 Dio_PortType
 type definition for identifying ports More...
 
typedef uint32 Dio_PortLevelType
 type definition for setting port level values More...
 
typedef uint8 Dio_LevelType
 type definition for setting DIO channnel level values (allowed values: STD_HIGH and STD_LOW) More...
 

Enumerations

enum  Dio_DirectionType { DIO_DIR_INPUT = 0x1U, DIO_DIR_OUTPUT = 0x0U }
 

Functions

Dio_LevelType Dio_ReadChannel (Dio_ChannelType ChannelId)
 Returns the value of the specified DIO channel. More...
 
void Dio_WriteChannel (Dio_ChannelType ChannelId, Dio_LevelType Level)
 Service to set a level of a channel. More...
 
Dio_PortLevelType Dio_ReadPort (Dio_PortType PortId)
 Returns the level of all channels of that port. More...
 
void Dio_WritePort (Dio_PortType PortId, Dio_PortLevelType Level)
 Service to set a value of the port. More...
 
Dio_PortLevelType Dio_ReadChannelGroup (const Dio_ChannelGroupType *ChannelGroupIdPtr)
 This Service reads a subset of the adjoining bits of a port. More...
 
void Dio_WriteChannelGroup (const Dio_ChannelGroupType *ChannelGroupIdPtr, Dio_PortLevelType Level)
 Service to set a subset of the adjoining bits of a port to a specified level. More...
 
void Dio_GetVersionInfo (Std_VersionInfoType *versioninfo)
 Service to get the version information of this module. More...
 
Dio_LevelType Dio_FlipChannel (Dio_ChannelType ChannelId)
 Service to flip (change from 1 to 0 or from 0 to 1) the level of a channel and return the level of the channel. More...
 
Std_ReturnType Dio_RegisterReadback (Dio_ChannelType ChannelId, Dio_RegisterReadbackType *DioRegRbPtr)
 This function reads the important registers of the hardware unit and returns the value in the structure. More...
 

Function Documentation

◆ Dio_ReadChannel()

Dio_LevelType Dio_ReadChannel ( Dio_ChannelType  ChannelId)

Returns the value of the specified DIO channel.

*  Service name      : Dio_ReadChannel
*  Syntax            : Dio_LevelType Dio_ReadChannel(
*                          Dio_ChannelType ChannelId )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x00
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : ChannelId
*                      ID of DIO channel
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Dio_LevelType - STD_HIGH The physical level of the
*                      corresponding Pin is STD_HIGH
*                      - STD_LOW The physical level of the corresponding Pin
*                      is STD_LOW
*  Description       : Returns the value of the specified DIO channel.
*  

◆ Dio_WriteChannel()

void Dio_WriteChannel ( Dio_ChannelType  ChannelId,
Dio_LevelType  Level 
)

Service to set a level of a channel.

*  Service name      : Dio_WriteChannel
*  Syntax            : void Dio_WriteChannel( Dio_ChannelType ChannelId,
*                                             Dio_LevelType Level )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x01
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : ChannelId - ID of DIO channel
*                      Level - Value to be written
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Service to set a level of a channel.
*  

◆ Dio_ReadPort()

Dio_PortLevelType Dio_ReadPort ( Dio_PortType  PortId)

Returns the level of all channels of that port.

*  Service name      : Dio_ReadPort
*  Syntax            : Dio_PortLevelType Dio_ReadPort( Dio_PortType PortId )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x02
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : PortId - ID of DIO Port
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Dio_PortLevelType - Level of all channels of that port
*  Description       : Returns the level of all channels of that port.
*  

◆ Dio_WritePort()

void Dio_WritePort ( Dio_PortType  PortId,
Dio_PortLevelType  Level 
)

Service to set a value of the port.

*  Service name      : Dio_WritePort
*  Syntax            : void Dio_WritePort( Dio_PortType PortId,
*                                          Dio_PortLevelType Level )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x03
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : PortId - ID of DIO Port
*                      Level - Value to be written
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Service to set a value of the port.
*  

◆ Dio_ReadChannelGroup()

Dio_PortLevelType Dio_ReadChannelGroup ( const Dio_ChannelGroupType ChannelGroupIdPtr)

This Service reads a subset of the adjoining bits of a port.

*  Service name      : Dio_ReadChannelGroup
*  Syntax            : Dio_PortLevelType Dio_ReadChannelGroup(
*                              const Dio_ChannelGroupType* ChannelGroupIdPtr )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x04
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : ChannelGroupIdPtr - Pointer to ChannelGroup
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Dio_PortLevelType - Level of a subset of the adjoining
*                      bits of a port
*  Description       : This Service read a subset of the adjoining bits of a
*                      port.
*  

◆ Dio_WriteChannelGroup()

void Dio_WriteChannelGroup ( const Dio_ChannelGroupType ChannelGroupIdPtr,
Dio_PortLevelType  Level 
)

Service to set a subset of the adjoining bits of a port to a specified level.

*  Service name      : Dio_WriteChannelGroup
*  Syntax            : void Dio_WriteChannelGroup( const Dio_ChannelGroupType*
*                              ChannelGroupIdPtr, Dio_PortLevelType Level )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x05
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : ChannelGroupIdPtr - Pointer to ChannelGroup
*                      Level - Value to be written
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Service to set a subset of the adjoining bits of a port
*                      to a specified level
*  

◆ Dio_GetVersionInfo()

void Dio_GetVersionInfo ( Std_VersionInfoType *  versioninfo)

Service to get the version information of this module.

*  Service name      : Dio_GetVersionInfo
*  Syntax            : void Dio_GetVersionInfo(
*                          Std_VersionInfoType* versioninfo )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x12
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : None
*  Parameters (inout): None
*  Parameters (out)  : versioninfo - Pointer to where to store the version
*                      information of this module.
*  Return value      : None
*  Description       : Service to get the version information of this module
*  

◆ Dio_FlipChannel()

Dio_LevelType Dio_FlipChannel ( Dio_ChannelType  ChannelId)

Service to flip (change from 1 to 0 or from 0 to 1) the level of a channel and return the level of the channel.

*  Service name      : Dio_FlipChannel
*  Syntax            : Dio_LevelType Dio_FlipChannel(
*                              Dio_ChannelType ChannelId )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x11
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : ChannelId
*                      - ID of DIO channel
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Dio_LevelType
*  Return value      : Dio_LevelType - STD_HIGH The physical level of the
*                      corresponding Pin is STD_HIGH
*                      - STD_LOW The physical level of the corresponding Pin is
*                      STD_LOW
*  Description       : Service to flip (change from 1 to 0 or from 0 to 1) the
*                      level of a channel and return the level of the channel
*                      after flip
*  

◆ Dio_RegisterReadback()

Std_ReturnType Dio_RegisterReadback ( Dio_ChannelType  ChannelId,
Dio_RegisterReadbackType DioRegRbPtr 
)

This function reads the important registers of the hardware unit and returns the value in the structure.

*  This API should be called after DIO initialization in the app.
*
*  This API could be used to readback the register contents
*  and then the readback value could be compared during DIO execution to
*  check the correctness of the HW unit. Since this API is used for this
*  purpose, the register returned are the ones which doesn't
*  change during execution.
*
*  \verbatim
*  Service name        : Dio_RegisterReadback
*  Syntax              : uint32 Dio_RegisterReadback(
*                              Dio_ChannelType ChannelId )
*  Mode                : Supervisor Mode (Privileged Mode)
*  Sync/Async          : Synchronous
*  Reentrancy          : Reentrant
*  Parameters (in)     : ChannelId
*                       - ID of DIO channel
*  Parameters (inout)  : None
*  Parameters (out)    : Value of the PID register
*  Return value        : uint32
*