/**
|
******************************************************************************
|
* @file fm33a0xxev_dbg.h
|
* @author FM33A0XXEV Application Team
|
* @version V1.0.0
|
* @date 16-April-2020
|
* @brief This file contains all the functions prototypes for the DBG firmware library.
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __FM33A0XXEV_DBG_H
|
#define __FM33A0XXEV_DBG_H
|
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "FM33A0XXEV.h"
|
|
#define DBG_CR_DBG_LPT_STOP_Pos 15 /* Debug״̬Ï _32ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕLPT
|
0£ºDebugʱ±£³ÖLPTÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_LPT_STOP_Msk (0x1U << DBG_CR_DBG_LPT_STOP_Pos)
|
/* Debugʱ¹Ø±ÕLPT */
|
/* Debugʱ±£³ÖLPTÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_BST_STOP_Pos 14 /* Debug״̬ÏÂGPTIM2ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕBSTIM
|
0£ºDebugʱ±£³ÖBSTIMÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_BST_STOP_Msk (0x1U << DBG_CR_DBG_BST_STOP_Pos)
|
/* Debugʱ¹Ø±ÕBSTIM */
|
/* Debugʱ±£³ÖBSTIMÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_ET4_STOP_Pos 13 /* Debug״̬ÏÂGPTIM2ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET4
|
0£ºDebugʱ±£³ÖET4ÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_ET4_STOP_Msk (0x1U << DBG_CR_DBG_ET4_STOP_Pos)
|
/* Debugʱ¹Ø±ÕET4 */
|
/* Debugʱ±£³ÖET4ÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_ET3_STOP_Pos 12 /* Debug״̬ÏÂGPTIM2ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET3
|
0£ºDebugʱ±£³ÖET3ÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_ET3_STOP_Msk (0x1U << DBG_CR_DBG_ET3_STOP_Pos)
|
/* Debugʱ¹Ø±ÕET3 */
|
/* Debugʱ±£³ÖET3ÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_ET2_STOP_Pos 11 /* Debug״̬ÏÂGPTIM2ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET2
|
0£ºDebugʱ±£³ÖET2ÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_ET2_STOP_Msk (0x1U << DBG_CR_DBG_ET2_STOP_Pos)
|
/* Debugʱ¹Ø±ÕET2 */
|
/* Debugʱ±£³ÖET2ÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_ET1_STOP_Pos 10 /* Debug״̬ÏÂGPTIM1ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET1
|
0£ºDebugʱ±£³ÖET1ÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_ET1_STOP_Msk (0x1U << DBG_CR_DBG_ET1_STOP_Pos)
|
/* Debugʱ¹Ø±ÕET1 */
|
/* Debugʱ±£³ÖET1ÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_BT2_STOP_Pos 9 /* Debug״̬ÏÂBSTIMʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕBT2
|
0£ºDebugʱ±£³ÖBT2ÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_BT2_STOP_Msk (0x1U << DBG_CR_DBG_BT2_STOP_Pos)
|
/* Debugʱ¹Ø±ÕBT2 */
|
/* Debugʱ±£³ÖBT2ÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_BT1_STOP_Pos 8 /* Debug״̬ÏÂBSTIMʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕBT1
|
0£ºDebugʱ±£³ÖBT1ÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_BT1_STOP_Msk (0x1U << DBG_CR_DBG_BT1_STOP_Pos)
|
/* Debugʱ¹Ø±ÕBT1 */
|
/* Debugʱ±£³ÖBT1ÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_WWDT_STOP_Pos 1 /* Debug״̬ÏÂWWDTʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕWWDT
|
0£ºDebugʱ±£³ÖWWDTÔÀ´×´Ì¬ */
|
#define DBG_CR_DBG_WWDT_STOP_Msk (0x1U << DBG_CR_DBG_WWDT_STOP_Pos)
|
/* Debugʱ¹Ø±ÕWWDT */
|
/* Debugʱ±£³ÖWWDTÔÀ´×´Ì¬ */
|
|
#define DBG_CR_DBG_IWDT_STOP_Pos 0 /* Debug״̬ÏÂIWDTʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕIWDT
|
0£ºDebugʱ±£³ÖIWDT¿ªÆô */
|
#define DBG_CR_DBG_IWDT_STOP_Msk (0x1U << DBG_CR_DBG_IWDT_STOP_Pos)
|
/* Debugʱ¹Ø±ÕIWDT */
|
/* Debugʱ±£³ÖIWDT¿ªÆô */
|
|
#define DBG_HDFR_DABORT_ADDR_FLAG_Pos 6 /* µØÖ··Ç¶ÔÆë·ÃÎÊ´íÎó±êÖ¾£¬Ð´1ÇåÁã
|
1£ºµØÖ··Ç¶ÔÆë·ÃÎÊ´íÎó
|
0£ºÎ´½øÐеØÖ··Ç¶ÔÆë·ÃÎÊ */
|
#define DBG_HDFR_DABORT_ADDR_FLAG_Msk (0x1U << DBG_HDFR_DABORT_ADDR_FLAG_Pos)
|
|
#define DBG_HDFR_DABORT_RESP_FLAG_Pos 5 /* ·Ç·¨µØÖ··ÃÎÊ´íÎó±êÖ¾£¬Ð´1ÇåÁã
|
1£º×ÜÏß´«ÊäÖзÃÎÊÁË·Ç·¨µØÖ·µ¼ÖÂHRESPΪ¸ß²úÉú´íÎó
|
0£ºÎ´·ÃÎÊ·Ç·¨µØÖ· */
|
#define DBG_HDFR_DABORT_RESP_FLAG_Msk (0x1U << DBG_HDFR_DABORT_RESP_FLAG_Pos)
|
|
#define DBG_HDFR_SVCUNDEF_FLAG_Pos 4 /* SVC instructions䶨Òå±êÖ¾£¬Ð´1ÇåÁã
|
if the SVCall priority is lower than the currently activelevel,
|
or if HardFault or NMI is active,
|
or PRIMASK is set,
|
the core should treat SVC instructions as though theywere UNDEFINED¡£ */
|
#define DBG_HDFR_SVCUNDEF_FLAG_Msk (0x1U << DBG_HDFR_SVCUNDEF_FLAG_Pos)
|
|
#define DBG_HDFR_BKPT_FLAG_Pos 3 /* Ö´ÐÐBKPTÖ¸Áî±êÖ¾£¬Ð´1ÇåÁã
|
1£ºÖ´ÐÐÁËBKPTÖ¸Áî
|
0£ºÎ´Ö´ÐÐBKPTÖ¸Áî */
|
#define DBG_HDFR_BKPT_FLAG_Msk (0x1U << DBG_HDFR_BKPT_FLAG_Pos)
|
|
#define DBG_HDFR_TBIT_FLAG_Pos 2 /* Thumb-State±êÖ¾£¬Ð´1ÇåÁã
|
1£ºÇл»µ½ARM״̬
|
0£º´¦ÓÚThumb-State */
|
#define DBG_HDFR_TBIT_FLAG_Msk (0x1U << DBG_HDFR_TBIT_FLAG_Pos)
|
|
#define DBG_HDFR_SPECIAL_OP_FLAG_Pos 1 /* ÌØÊâÖ¸Áî±êÖ¾£¬Ð´1ÇåÁã
|
1£ºÖ´ÐÐÁËÌØÊâÖ¸Áî´úÂ룬ÈçÊÔͼÔÚXNÇøÓòÄÚȡָ
|
0£ºÎÞÌØÊâÖ¸Áî´úÂë±»Ö´ÐÐ */
|
#define DBG_HDFR_SPECIAL_OP_FLAG_Msk (0x1U << DBG_HDFR_SPECIAL_OP_FLAG_Pos)
|
|
#define DBG_HDFR_HDF_REQUEST_FLAG_Pos 0 /* hardfault±ê־룬ÈκÎÀàÐ͵Ähardfault¶¼»áµ¼Ö¸ÃλÖÃλ£¬Ð´1ÇåÁã
|
1£ºhardfault ÇëÇó
|
0£ºÎÞhardfaultÇëÇó */
|
#define DBG_HDFR_HDF_REQUEST_FLAG_Msk (0x1U << DBG_HDFR_HDF_REQUEST_FLAG_Pos)
|
//Macro_End
|
|
/* Exported functions --------------------------------------------------------*/
|
extern void DBG_Deinit(void);
|
|
/* Debug״̬ÏÂLPTIMʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕLPTIM
|
0£ºDebugʱ±£³ÖLPTIMÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_LPT_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_LPT_STOP_Getable(void);
|
|
/* Debug״̬ÏÂBSTIMʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕBSTIM
|
0£ºDebugʱ±£³ÖBSTIMÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_BST_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_BST_STOP_Getable(void);
|
|
/* Debug״̬ÏÂET4ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET4
|
0£ºDebugʱ±£³ÖET4ÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_ET4_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_ET4_STOP_Getable(void);
|
|
/* Debug״̬ÏÂET3ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET3
|
0£ºDebugʱ±£³ÖET3ÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_ET3_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_ET3_STOP_Getable(void);
|
|
/* Debug״̬ÏÂET2ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET2
|
0£ºDebugʱ±£³ÖET2ÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_ET2_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_ET2_STOP_Getable(void);
|
|
/* Debug״̬ÏÂET1ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕET1
|
0£ºDebugʱ±£³ÖET1ÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_ET1_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_ET1_STOP_Getable(void);
|
|
/* Debug״̬ÏÂBT2ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕBT2
|
0£ºDebugʱ±£³ÖBT2ÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_BT2_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_BT2_STOP_Getable(void);
|
|
/* Debug״̬ÏÂBT1ʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕBT1
|
0£ºDebugʱ±£³ÖET1ÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_BT1_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_BT1_STOP_Getable(void);
|
|
/* Debug״̬ÏÂWWDTʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕWWDT
|
0£ºDebugʱ±£³ÖWWDTÔÀ´×´Ì¬ Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_WWDT_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_WWDT_STOP_Getable(void);
|
|
/* Debug״̬ÏÂIWDTʹÄÜ¿ØÖÆÎ»
|
1£ºDebugʱ¹Ø±ÕIWDT
|
0£ºDebugʱ±£³ÖIWDT¿ªÆô Ïà¹Øº¯Êý */
|
extern void DBG_CR_DBG_IWDT_STOP_Setable(FunState NewState);
|
extern FunState DBG_CR_DBG_IWDT_STOP_Getable(void);
|
|
/* µØÖ··Ç¶ÔÆë·ÃÎÊ´íÎó±êÖ¾£¬Ð´1ÇåÁã
|
1£ºµØÖ··Ç¶ÔÆë·ÃÎÊ´íÎó
|
0£ºÎ´½øÐеØÖ··Ç¶ÔÆë·ÃÎÊ Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_DABORT_ADDR_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_DABORT_ADDR_FLAG_Chk(void);
|
|
/* ·Ç·¨µØÖ··ÃÎÊ´íÎó±êÖ¾£¬Ð´1ÇåÁã
|
1£º×ÜÏß´«ÊäÖзÃÎÊÁË·Ç·¨µØÖ·µ¼ÖÂHRESPΪ¸ß²úÉú´íÎó
|
0£ºÎ´·ÃÎÊ·Ç·¨µØÖ· Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_DABORT_RESP_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_DABORT_RESP_FLAG_Chk(void);
|
|
/* SVC instructions䶨Òå±êÖ¾£¬Ð´1ÇåÁã
|
if the SVCall priority is lower than the currently activelevel,
|
or if HardFault or NMI is active,
|
or PRIMASK is set,
|
the core should treat SVC instructions as though theywere UNDEFINED¡£ Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_SVCUNDEF_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_SVCUNDEF_FLAG_Chk(void);
|
|
/* Ö´ÐÐBKPTÖ¸Áî±êÖ¾£¬Ð´1ÇåÁã
|
1£ºÖ´ÐÐÁËBKPTÖ¸Áî
|
0£ºÎ´Ö´ÐÐBKPTÖ¸Áî Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_BKPT_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_BKPT_FLAG_Chk(void);
|
|
/* Thumb-State±êÖ¾£¬Ð´1ÇåÁã
|
1£ºÇл»µ½ARM״̬
|
0£º´¦ÓÚThumb-State Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_TBIT_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_TBIT_FLAG_Chk(void);
|
|
/* ÌØÊâÖ¸Áî±êÖ¾£¬Ð´1ÇåÁã
|
1£ºÖ´ÐÐÁËÌØÊâÖ¸Áî´úÂ룬ÈçÊÔͼÔÚXNÇøÓòÄÚȡָ
|
0£ºÎÞÌØÊâÖ¸Áî´úÂë±»Ö´ÐÐ Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_SPECIAL_OP_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_SPECIAL_OP_FLAG_Chk(void);
|
|
/* hardfault±ê־룬ÈκÎÀàÐ͵Ähardfault¶¼»áµ¼Ö¸ÃλÖÃλ£¬Ð´1ÇåÁã
|
1£ºhardfault ÇëÇó
|
0£ºÎÞhardfaultÇëÇó Ïà¹Øº¯Êý */
|
extern void DBG_HDFR_HDF_REQUEST_FLAG_Clr(void);
|
extern FlagStatus DBG_HDFR_HDF_REQUEST_FLAG_Chk(void);
|
//Announce_End
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* __FM33A0XXEV_DBG_H */
|