The WDG driver provides services for handlign the watch dog timer on the SOC.
* Digital Windowed Watchdog(DWWD) Overview :
* The Digital Watchdog Timer(DWT) generates reset after a programmable
* period, if not serviced within that period. In DWT, time-out
* boundary is configurable.
* In DWWD, along with configurable time-out boundary, the start time
* boundary is also configurable. The DWWD can generate Reset or
* Interrupt, if not serviced within window(Open Window) defined by
* start time and time-out boundary. Also the DWWD can generate Reset or
* Interrupt if serviced outside Open Window (within Closed Window).
* Generation of Reset or Interrupt depends on the DWWD Reaction
* configuration.
*
* DWWD Down Counter Overview :
* Upper 12 bit part of the down counter is configurable and
* remaining 13 bit are always 1.
* Minimum possible time-out value is 2^13 RTI clock cycles.
* Maximum possible time-out value is 2^25 RTI clock cycles.
* Example :
* RTI frequency : 32kHz
* 12 bit preload value : 0x004
* 25 bit preload value : 0x0009FFF
* time-out value(in RTI clock cycles) : 40959.
* time-out value(in seconds) : 40959 + 1 / 32000 = 1.28 seconds.
*
*
* DWWD Window Sizes Overview :
* time-out value...........................................3 2 1 0
* (100%)|___________________________Open Window________________________|
* (50%)| Closed Window |________Open Window___________|
* (25%)| Closed Window |___OW_________|
* (12.5%)| Closed Window |_OW___|
* (6.25%)| Closed Window |OW |
* (3.125%)| Closed Window |OW|
* For time-out value calculation refer DWWD Down Counter Overview.
*
*
*
- See also
- WDG Configuration
|
#define | INIT_VAL_ZERO (0U) |
| For assigning use macro name instead of value 0U to avoid MISRAC violation. More...
|
|
◆ WDG_SW_MAJOR_VERSION
#define WDG_SW_MAJOR_VERSION (9U) |
Driver Implementation Major Version.
◆ WDG_SW_MINOR_VERSION
#define WDG_SW_MINOR_VERSION (1U) |
Driver Implementation Minor Version.
◆ WDG_SW_PATCH_VERSION
#define WDG_SW_PATCH_VERSION (0U) |
Driver Implementation Patch Version.
◆ WDG_AR_RELEASE_MAJOR_VERSION
#define WDG_AR_RELEASE_MAJOR_VERSION (4U) |
AUTOSAR Major version specification implemented by WDG Driver.
◆ WDG_AR_RELEASE_MINOR_VERSION
#define WDG_AR_RELEASE_MINOR_VERSION (3U) |
AUTOSAR Minor version specification implemented by WDG Driver.
◆ WDG_AR_RELEASE_REVISION_VERSION
#define WDG_AR_RELEASE_REVISION_VERSION (1U) |
AUTOSAR Patch version specification implemented by WDG Driver.
◆ WDG_VENDOR_ID
#define WDG_VENDOR_ID ((uint16) 44U) |
Texas Instruments Vendor ID.
◆ WDG_MODULE_ID
#define WDG_MODULE_ID ((uint16) 102U) |
◆ WDG_INSTANCE_ID
#define WDG_INSTANCE_ID ((uint8) 0U) |
◆ WDG_E_DRIVER_STATE
#define WDG_E_DRIVER_STATE ((uint8) 0x10U) |
ERROR:Invalid driver state.
◆ WDG_E_PARAM_MODE
#define WDG_E_PARAM_MODE ((uint8) 0x11U) |
ERROR:Invalid mode param.
◆ WDG_E_PARAM_CONFIG
#define WDG_E_PARAM_CONFIG ((uint8) 0x12U) |
ERROR:Invalid config param.
◆ WDG_E_PARAM_TIMEOUT
#define WDG_E_PARAM_TIMEOUT ((uint8) 0x13U) |
ERROR:Invalid timeout value.
◆ WDG_E_PARAM_POINTER
#define WDG_E_PARAM_POINTER ((uint8) 0x14U) |
ERROR:Invalid NULL ptr param.
◆ WDG_E_INIT_FAILED
#define WDG_E_INIT_FAILED ((uint8) 0x15U) |
ERROR:Invalid configuration set selection.
◆ WDG_API_INIT
#define WDG_API_INIT ((uint8) 0x00U) |
◆ WDG_API_SET_MODE
#define WDG_API_SET_MODE ((uint8) 0x01U) |
◆ WDG_SET_TRIGGER_CONDITION
#define WDG_SET_TRIGGER_CONDITION ((uint8) 0x03U) |
◆ WDG_API_GET_VERSION_INFO
#define WDG_API_GET_VERSION_INFO ((uint8) 0x04U) |
◆ WDG_API_TRIGGER
#define WDG_API_TRIGGER ((uint8) 0x05U) |
◆ WDG_API_REGISTER_READBACK
#define WDG_API_REGISTER_READBACK ((uint8) 0x06U) |
◆ WDG_WINDOW_100_PERCENT
#define WDG_WINDOW_100_PERCENT ((uint32) 0x00000005U) |
Window open 100% of interval.
◆ WDG_WINDOW_50_PERCENT
#define WDG_WINDOW_50_PERCENT ((uint32) 0x00000050U) |
Window open 50% of interval.
◆ WDG_WINDOW_25_PERCENT
#define WDG_WINDOW_25_PERCENT ((uint32) 0x00000500U) |
Window open 25% of interval.
◆ WDG_WINDOW_12P5_PERCENT
#define WDG_WINDOW_12P5_PERCENT ((uint32) 0x00005000U) |
Window open 12.5% of interval.
◆ WDG_WINDOW_6P25_PERCENT
#define WDG_WINDOW_6P25_PERCENT ((uint32) 0x00050000U) |
Window open 6.25% of interval.
◆ WDG_WINDOW_3P125_PERCENT
#define WDG_WINDOW_3P125_PERCENT ((uint32) 0x00500000U) |
Window open 3.125% of interval.
◆ INIT_VAL_ZERO
#define INIT_VAL_ZERO (0U) |
For assigning use macro name instead of value 0U to avoid MISRAC violation.
◆ Wdg_GetVersionInfo()
void Wdg_GetVersionInfo |
( |
Std_VersionInfoType * |
versioninfo | ) |
|
This service returns the version information of this module.
* Service name : Wdg_GetVersionInfo
* Syntax : void Wdg_GetVersionInfo(Std_VersionInfoType*
* versioninfo)
* Mode : User Mode (Non-Privileged Mode)
* Service ID[hex] : 0x04U
* 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 : This service returns the version information of this
* module
*
◆ Wdg_Init()
This service initializes the WDG driver.
* Service name : Wdg_Init
* Syntax : void Wdg_Init(const Wdg_ConfigType* CfgPtr)
* Mode : Supervisor Mode (Privileged Mode)
* Service ID[hex] : 0x0
* Sync/Async : Synchronous
* Reentrancy : Non Reentrant
* Parameters (in) : CfgPtr - Pointer to WDG driver configuration set.
* Parameters (inout): None
* Parameters (out) : None
* Return value : None
* Description : This service initializes the WDG driver
*
◆ Wdg_SetTriggerCondition()
void Wdg_SetTriggerCondition |
( |
uint16 |
timeout | ) |
|
Sets the timeout value for the trigger counter.
* Service name : Wdg_SetTriggerCondition
* Syntax : void Wdg_SetTriggerCondition( uint16 timeout )
* Mode : Supervisor Mode (Privileged Mode)
* Service ID[hex] : 0x03
* Sync/Async : Synchronous
* Reentrancy : Non Reentrant
* Parameters (in) : timeout - Timeout value (milliseconds) for setting the
* trigger counter
* Parameters (inout): None
* Parameters (out) : None
* Return value : None
* Description : Sets the timeout value for the trigger counter
*
◆ Wdg_Trigger()
void Wdg_Trigger |
( |
void |
| ) |
|
This function triggers the servicing of the watchdog.
* Function name : Wdg_Trigger
* Syntax : void Wdg_Trigger( void )
* Mode : Supervisor Mode (Privileged Mode)
* Service ID[hex] : 0x05
* Sync/Async : Synchronous
* Reentrancy : Non-Reentrant
* Parameters (in) : None
* Parameters (inout): None
* Parameters (out) : None
* Return value : None
* Description : This function is the watchdog trigger
* This function is invoked from WdgIsr
*
◆ Wdg_SetMode()
Std_ReturnType Wdg_SetMode |
( |
WdgIf_ModeType |
Mode | ) |
|
This function triggers the servicing of the watchdog.
* Function name : Wdg_SetMode
* Syntax : Std_ReturnType Wdg_SetMode(WdgIf_ModeType Mode)
* Mode : User Mode (Non-Privileged Mode)
* Service ID[hex] : 0x01
* Sync/Async : Synchronous
* Reentrancy : Non-Reentrant
* Parameters (in) : Mode
* Parameters (inout): None
* Parameters (out) : None
* Return value : E_OK
* Description : This function is not supported.
* Always returns E_OK, Wdg_SetMode is made available because
* WDG Interface layer expects this function to be present.
*
◆ Wdg_RegisterReadback()
This function reads the important registers of the hardware unit and returns the value in the structure.
This API should be called after Wdg_Init is called. Otherwise this API will return E_NOT_OK.
This API could be used to readback the register contents after Wdg_Init and then the readback value could be compared during WDG execution to check the correctness of the HW unit. Since this API is used for this purpose, register returned are the ones which doesn't change after init.
* Service name : Wdg_RegisterReadback
* Mode : Supervisor Mode (Privileged Mode)
* Sync/Async : Synchronous
* Service ID[hex] : 0x06
* Reentrancy : Reentrant
* Parameters (inout) : regRbPtr - Pointer to where to store the readback
* values. If this pointer is NULL_PTR, then the API
* will return E_NOT_OK.
* Return value : Std_ReturnType
* E_OK: Register read back has been done
* E_NOT_OK: Register read back failed
*