-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extend watchdog coverage with IWDG, a watchdog running from an indepe…
…ndent LF oscillator. If any of the threads being monitored does not report for more than 12ms, a reset will be asserted. When a WDG reset happens, the user can see it in the fault logs from vesc tool Signed-off-by: Marcos Chaparro <mchaparro@paltatech.com>
- Loading branch information
1 parent
f1978ac
commit 17f9776
Showing
14 changed files
with
582 additions
and
5 deletions.
There are no files selected for viewing
131 changes: 131 additions & 0 deletions
131
ChibiOS_3.0.2/ext/stdperiph_stm32f4/inc/stm32f4xx_iwdg.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
/** | ||
****************************************************************************** | ||
* @file stm32f4xx_iwdg.h | ||
* @author MCD Application Team | ||
* @version V1.6.0 | ||
* @date 10-July-2015 | ||
* @brief This file contains all the functions prototypes for the IWDG | ||
* firmware library. | ||
****************************************************************************** | ||
* @attention | ||
* | ||
* <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2> | ||
* | ||
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); | ||
* You may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at: | ||
* | ||
* http://www.st.com/software_license_agreement_liberty_v2 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
* | ||
****************************************************************************** | ||
*/ | ||
|
||
/* Define to prevent recursive inclusion -------------------------------------*/ | ||
#ifndef __STM32F4xx_IWDG_H | ||
#define __STM32F4xx_IWDG_H | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/* Includes ------------------------------------------------------------------*/ | ||
#include "stm32f4xx.h" | ||
|
||
/** @addtogroup STM32F4xx_StdPeriph_Driver | ||
* @{ | ||
*/ | ||
|
||
/** @addtogroup IWDG | ||
* @{ | ||
*/ | ||
|
||
/* Exported types ------------------------------------------------------------*/ | ||
/* Exported constants --------------------------------------------------------*/ | ||
|
||
/** @defgroup IWDG_Exported_Constants | ||
* @{ | ||
*/ | ||
|
||
/** @defgroup IWDG_WriteAccess | ||
* @{ | ||
*/ | ||
#define IWDG_WriteAccess_Enable ((uint16_t)0x5555) | ||
#define IWDG_WriteAccess_Disable ((uint16_t)0x0000) | ||
#define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \ | ||
((ACCESS) == IWDG_WriteAccess_Disable)) | ||
/** | ||
* @} | ||
*/ | ||
|
||
/** @defgroup IWDG_prescaler | ||
* @{ | ||
*/ | ||
#define IWDG_Prescaler_4 ((uint8_t)0x00) | ||
#define IWDG_Prescaler_8 ((uint8_t)0x01) | ||
#define IWDG_Prescaler_16 ((uint8_t)0x02) | ||
#define IWDG_Prescaler_32 ((uint8_t)0x03) | ||
#define IWDG_Prescaler_64 ((uint8_t)0x04) | ||
#define IWDG_Prescaler_128 ((uint8_t)0x05) | ||
#define IWDG_Prescaler_256 ((uint8_t)0x06) | ||
#define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4) || \ | ||
((PRESCALER) == IWDG_Prescaler_8) || \ | ||
((PRESCALER) == IWDG_Prescaler_16) || \ | ||
((PRESCALER) == IWDG_Prescaler_32) || \ | ||
((PRESCALER) == IWDG_Prescaler_64) || \ | ||
((PRESCALER) == IWDG_Prescaler_128)|| \ | ||
((PRESCALER) == IWDG_Prescaler_256)) | ||
/** | ||
* @} | ||
*/ | ||
|
||
/** @defgroup IWDG_Flag | ||
* @{ | ||
*/ | ||
#define IWDG_FLAG_PVU ((uint16_t)0x0001) | ||
#define IWDG_FLAG_RVU ((uint16_t)0x0002) | ||
#define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU)) | ||
#define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF) | ||
/** | ||
* @} | ||
*/ | ||
|
||
/** | ||
* @} | ||
*/ | ||
|
||
/* Exported macro ------------------------------------------------------------*/ | ||
/* Exported functions --------------------------------------------------------*/ | ||
|
||
/* Prescaler and Counter configuration functions ******************************/ | ||
void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess); | ||
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); | ||
void IWDG_SetReload(uint16_t Reload); | ||
void IWDG_ReloadCounter(void); | ||
|
||
/* IWDG activation function ***************************************************/ | ||
void IWDG_Enable(void); | ||
|
||
/* Flag management function ***************************************************/ | ||
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* __STM32F4xx_IWDG_H */ | ||
|
||
/** | ||
* @} | ||
*/ | ||
|
||
/** | ||
* @} | ||
*/ | ||
|
||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
Oops, something went wrong.