1
0

watchdog.h 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. //*****************************************************************************
  2. //
  3. // watchdog.h - Prototypes for the Watchdog Timer API
  4. //
  5. // Copyright (c) 2005-2020 Texas Instruments Incorporated. All rights reserved.
  6. // Software License Agreement
  7. //
  8. // Redistribution and use in source and binary forms, with or without
  9. // modification, are permitted provided that the following conditions
  10. // are met:
  11. //
  12. // Redistributions of source code must retain the above copyright
  13. // notice, this list of conditions and the following disclaimer.
  14. //
  15. // Redistributions in binary form must reproduce the above copyright
  16. // notice, this list of conditions and the following disclaimer in the
  17. // documentation and/or other materials provided with the
  18. // distribution.
  19. //
  20. // Neither the name of Texas Instruments Incorporated nor the names of
  21. // its contributors may be used to endorse or promote products derived
  22. // from this software without specific prior written permission.
  23. //
  24. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  25. // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  26. // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  27. // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  28. // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  29. // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  30. // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  31. // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  32. // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  33. // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  34. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  35. //
  36. // This is part of revision 2.2.0.295 of the Tiva Peripheral Driver Library.
  37. //
  38. //*****************************************************************************
  39. #ifndef __DRIVERLIB_WATCHDOG_H__
  40. #define __DRIVERLIB_WATCHDOG_H__
  41. //*****************************************************************************
  42. //
  43. // If building with a C++ compiler, make all of the definitions in this header
  44. // have a C binding.
  45. //
  46. //*****************************************************************************
  47. #ifdef __cplusplus
  48. extern "C"
  49. {
  50. #endif
  51. //*****************************************************************************
  52. //
  53. // The type of interrupt that can be generated by the watchdog.
  54. //
  55. //*****************************************************************************
  56. #define WATCHDOG_INT_TYPE_INT 0x00000000
  57. #define WATCHDOG_INT_TYPE_NMI 0x00000004
  58. //*****************************************************************************
  59. //
  60. // Prototypes for the APIs.
  61. //
  62. //*****************************************************************************
  63. extern bool WatchdogRunning(uint32_t ui32Base);
  64. extern void WatchdogEnable(uint32_t ui32Base);
  65. extern void WatchdogResetEnable(uint32_t ui32Base);
  66. extern void WatchdogResetDisable(uint32_t ui32Base);
  67. extern void WatchdogLock(uint32_t ui32Base);
  68. extern void WatchdogUnlock(uint32_t ui32Base);
  69. extern bool WatchdogLockState(uint32_t ui32Base);
  70. extern void WatchdogReloadSet(uint32_t ui32Base, uint32_t ui32LoadVal);
  71. extern uint32_t WatchdogReloadGet(uint32_t ui32Base);
  72. extern uint32_t WatchdogValueGet(uint32_t ui32Base);
  73. extern void WatchdogIntRegister(uint32_t ui32Base, void (*pfnHandler)(void));
  74. extern void WatchdogIntUnregister(uint32_t ui32Base);
  75. extern void WatchdogIntEnable(uint32_t ui32Base);
  76. extern uint32_t WatchdogIntStatus(uint32_t ui32Base, bool bMasked);
  77. extern void WatchdogIntClear(uint32_t ui32Base);
  78. extern void WatchdogIntTypeSet(uint32_t ui32Base, uint32_t ui32Type);
  79. extern void WatchdogStallEnable(uint32_t ui32Base);
  80. extern void WatchdogStallDisable(uint32_t ui32Base);
  81. //*****************************************************************************
  82. //
  83. // Mark the end of the C bindings section for C++ compilers.
  84. //
  85. //*****************************************************************************
  86. #ifdef __cplusplus
  87. }
  88. #endif
  89. #endif // __DRIVERLIB_WATCHDOG_H__