The DIO Driver provides services for reading and writing to/from
- DIO Channels (GPIO Pins)
- DIO Ports (GPIO whole Registers)
- DIO Channel Groups (GPIO register submask)
This specification is applicable to drivers only for on chip DIO pins and ports
This module works on pins and ports which are configured by the PORT driver for this purpose.
For this reason, there is no configuration and initialization of this port structure in the DIO Driver
- See also
- DIO Configuration
◆ DIO_SW_MAJOR_VERSION
#define DIO_SW_MAJOR_VERSION (1U) |
Driver Implementation Major Version.
◆ DIO_SW_MINOR_VERSION
#define DIO_SW_MINOR_VERSION (3U) |
Driver Implementation Minor Version.
◆ DIO_SW_PATCH_VERSION
#define DIO_SW_PATCH_VERSION (2U) |
Driver Implementation Patch Version.
◆ DIO_AR_RELEASE_MAJOR_VERSION
#define DIO_AR_RELEASE_MAJOR_VERSION (4U) |
AUTOSAR Major version specification implemented by DIO Driver.
◆ DIO_AR_RELEASE_MINOR_VERSION
#define DIO_AR_RELEASE_MINOR_VERSION (3U) |
AUTOSAR Minor version specification implemented by DIO Driver.
◆ DIO_AR_RELEASE_REVISION_VERSION
#define DIO_AR_RELEASE_REVISION_VERSION (1U) |
AUTOSAR Patch version specification implemented by DIO Driver.
◆ DIO_VENDOR_ID
#define DIO_VENDOR_ID ((uint16) 44U) |
Texas Instruments Vendor ID.
◆ DIO_MODULE_ID
#define DIO_MODULE_ID ((uint16) 120U) |
◆ DIO_HW_UNIT_CNT
#define DIO_HW_UNIT_CNT (10U) |
Total HW units or Instances.
- used for array allocation. This should be +1 of the max unit number This is dependent on the SoC and not recommended to be modified
◆ DIO_E_PARAM_INVALID_CHANNEL_ID
#define DIO_E_PARAM_INVALID_CHANNEL_ID (0x0AU) |
ERROR:API service called with invalid channel ID.
◆ DIO_E_PARAM_INVALID_PORT_ID
#define DIO_E_PARAM_INVALID_PORT_ID (0x14U) |
ERROR:API service called with invalid port ID.
◆ DIO_E_PARAM_INVALID_GROUP
#define DIO_E_PARAM_INVALID_GROUP (0x1FU) |
ERROR:API service called with invalid channel group ID.
◆ DIO_E_PARAM_POINTER
#define DIO_E_PARAM_POINTER (0x20U) |
◆ DIO_SID_READ_CHANNEL
#define DIO_SID_READ_CHANNEL (0U) |
◆ DIO_SID_WRITE_CHANNEL
#define DIO_SID_WRITE_CHANNEL (1U) |
◆ DIO_SID_READ_PORT
#define DIO_SID_READ_PORT (2U) |
◆ DIO_SID_WRITE_PORT
#define DIO_SID_WRITE_PORT (3U) |
◆ DIO_SID_READ_CHL_GROUP
#define DIO_SID_READ_CHL_GROUP (4U) |
◆ DIO_SID_WRITE_CHL_GROUP
#define DIO_SID_WRITE_CHL_GROUP (5U) |
◆ DIO_SID_FLIP_CHANNEL
#define DIO_SID_FLIP_CHANNEL (7U) |
◆ DIO_SID_GET_VERSION_INFO
#define DIO_SID_GET_VERSION_INFO (18U) |
◆ DIO_PORT_WIDTH
#define DIO_PORT_WIDTH (32U) |
Width of GPIO register in this platform not to be modified.
◆ DIO_MCAL_2139_FIXED
#define DIO_MCAL_2139_FIXED (0U) |
Read back issue in Maxwell is resolved or not.
◆ Dio_ReadChannel()
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()
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()
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()
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()
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()
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()
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()
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
*