Table of Contents
Introduction
This page gives an overview of Axi Watchdog timer driver /Window watchdog timer which is available as part of the Xilinx Vivado and SDK distribution.
The Xilinx® LogiCORE? IP AXI4-Lite Timebase Watchdog Timer (WDT) is a 32-bit peripheral that provides a 32-bit free-running
timebase and watchdog timer.Source path for the driver:
Driver Sources
The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the Xilinx Github repository.
Driver | Path in vitis | Path in Git Hub |
---|---|---|
wdttb | <Vitis Install Directory>/data/embedded/XilinxProcessorIPLib/drivers/wdttb | https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/wdttb |
Info |
---|
Note: To view the sources for a particular release, use the rel-version tag in github. For example, for the 2020.1 release, the proper version of the code is: https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/wdttb |
Axi Watchdog timer
|
-- Doc - .
Directory | Description |
---|---|
src | Driver source files |
examples | Example applications that show how to use the driver features |
doc | Provides the API and data structure details |
- Examples - Reference application to show how to use the driver APIs and calling sequence
|
- Source - Driver source files
data | Driver .tcl and .mdd file |
Driver Implementation
For a full list of features supported by this IP, please refer AXI_Timebase_Wdt_Doc
For a full list of features supported by this IP, please refer 59: System Watchdog Timer Versal Trm
Features
Controller Features supported
• Connects as a 32-bit slave on a AXI4-Lite interface• Watchdog timer with selectable timeout period and interrupt
• Configurable WDT enable: enable-once or enable-repeatedly
• One 32-bit free-running timebase counter with rollover interrupt-dual control register
Driver Supported Features
All Controller Features supported.
- Supports Generic Watch dog timer and polled and interrupt mode window watch dog feature.
- Q&A mode not implemented.
Known
Issues and
Limitataions
- None
Example Applications
Refer...
...
Links to Examples
Examples Path:
https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/wdttb/examples
ChangeLog
- 2017.1
- Fix race condition in the driver
- Updated makefile
- Added readme.txt file to generate doxygen for examples
- 2017.2
- wdttb: Added Suffix U for macros in xparameters.h
- 2017.3
- None
- 2017.4
- None
- 2018.1
...
- Summary:
- Wdttb: Fixed compiler warnings.
- Wdttb: Changes in Makefile to make map file consistent in windows and Linux
- Wdttb: Added new static functions for WWDT
- Wdttb: Fixed MISRA-C deviations.
- Commits:
...
- Summary
- wdttb: Support hierarchical designs
- wdttb:data:Updated driver tcl file to support WWDT and AXI
- wdttb:src:Updated WDT driver files to support AXI and WWDT
- wdttb:examples:Updated examples to support AXI Timebase and WWDT
- Commits:
...
- Summary:
- wdttb: Removed psu_wwdt from supported peripherals
- wdttb: Removed compare value registers write.
- wdttb: Removed compare value registers write in application.
- wdttb: Reorganize the driver source
- wdttb: Added XWdtTb_ConfigureWDTMode to configure WDT mode
- wdttb: Add interrupt example to support versal platform
- wdttb: Update on watchdog interrupt examples
- Commits:
- 9a7e7e78 wdttb: Removed psu_wwdt from supported peripherals
- d0e04292 wdttb: Removed compare value registers write.
- 98428d50 wdttb: Removed compare value registers write in application.
- afa2e303 wdttb: Reorganize the driver source
- 2442e0c1 wdttb: Added XWdtTb_ConfigureWDTMode to configure WDT mode
- b0217ba0 wdttb: Add interrupt example to support versal platform
- a0335d1b wdttb: Update on watchdog interrupt examples
...
- summary
- wdttb: Fixed MISRA-C violations
- wdttb: Updated GWOR offset and interrupt id
- wdttb: update tcl with wwdt support
- wdttb: Remove Generic WDT interrupt example for no standard out
- wdttb: Add interrupt connection check for Generic WDT example
- wdttb: Update Makefile for parallel make execution
- Commits
Test Name | Example source | Description |
---|---|---|
xwdttb_low_level_example.c | ||
Test Name | Example source | Description |
---|---|---|
xwdttb_low_level_example.c | This example checks for Watchdog timer reset condition in two timer expiry state | |
xwdttb_selftest_example.c | This example does a minimal test on the watchdog timer timebase device and drive | |
xwdttb_example.c | This example tests the functioning of the TimeBase WatchDog Timer module in the polled mode | |
xwdttb_intr_example.c | This example tests the functioning of the TimeBase WatchDog Timer module in the interrupt mode | |
xwdttb_winwdt_example.c | This exampletests the functioning of the TimeBase WatchDog Timer module with window feature in the polled mode. | |
xwdttb_winwdt_intr_example.c | This example tests the functioning of the TimeBase WatchDog Timer module with window feature in the interrupt mode. | |
xwdttb_gwdt_selftest_example.c | This example does a minimal test on Generic watchdog timer device | |
xwdttb_gwdt_example.c | This example tests the functioning of the Generic watch dog Timer Feature in Polled mode | |
xwdttb_gwdt_intr_example.c | This example tests the functioning of the Generic watch dog Timer Feature in interrupt mode |
Example Application Usage
WDTTB examples
Expected Output
Code Block |
---|
xwdttb_low_level_example.c
OUTPUT:
Successfully ran WDTTB low level example.
xwdttb_selftest_example.c
OUTPUT:
Successfully ran WDTTB self test example.
xwdttb_example.c
OUTPUT:
Restart kick 1
.........................
Restart kick 2
.........................
Successfully ran WDTTB example
xwdttb_intr_example.c
OUTPUT:
Successfully ran Window WDT interrupt example.
xwdttb_winwdt_example.c
OUTPUT:
Restart kick 1
.........................
Restart kick 2
.........................
Successfully ran Window WDT example.
xwdttb_winwdt_intr_example.c
OUTPUT:
Successfully ran Window WDT interrupt example.
xwdttb_gwdt_selftest_example.c
OUTPUT:
Successfully ran GWDT self test example
xwdttb_gwdt_example.c
OUTPUT:
Self test completed
.................................................................................................................................
Refresh kick1
................................................................................................................
Refresh kick2
................................................................................................................
Refresh kick3
................................................................................................................................................................................................................................................
Generic watchdog second window expired
xwdttb_gwdt_intr_example.c
OUTPUT:
Successfully ran GWDT interrupt example
|
ChangeLog
2021.1
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2021.1/doc/ChangeLog#L368
2020.2
https://github.com/Xilinx/embeddedsw/blob/release-2020.2/doc/ChangeLog#L242
2020.1
https://github.com/Xilinx/embeddedsw/blob/release-2020.1/doc/ChangeLog#L252
2019.2
https://github.com/Xilinx/embeddedsw/blob/release-2019.2/doc/ChangeLog#L104
2019.1
https://github.com/Xilinx/embeddedsw/blob/
...
...