/** ****************************************************************************** * @file fm33a0xxev_flash.h * @author FM33A0XXEV Application Team * @version V1.0.0 * @date 16-April-2020 * @brief This file contains all the functions prototypes for the FLASH firmware library. ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __FM33A0XXEV_FLASH_H #define __FM33A0XXEV_FLASH_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "FM33A0XXEV.h" #define FLS_RDCR_WAIT_Pos 0 /* Flash¶ÁµÈ´ýÖÜÆÚÅäÖà (Wait Cycles Config) 00/11£º0 wait cycle 01£º1 wait cycle 10£º2 wait cycles CPUÖ÷ƵСÓÚµÈÓÚ24MHzʱ£¬²»ÐèÒª¿ªÆôwait£»Ö÷Ƶ´óÓÚ24MСÓÚ48MhzʱʹÄÜ1 wait£¬Ö÷Ƶ´óÓÚ48MhzʱʹÄÜ2 wait */ #define FLS_RDCR_WAIT_Msk (0x3U << FLS_RDCR_WAIT_Pos) #define FLS_RDCR_WAIT_0CYCLE (0x0U << FLS_RDCR_WAIT_Pos) /* 0 wait cycle */ #define FLS_RDCR_WAIT_1CYCLE (0x1U << FLS_RDCR_WAIT_Pos) /* 1 wait cycle */ #define FLS_RDCR_WAIT_2CYCLE (0x2U << FLS_RDCR_WAIT_Pos) /* 2 wait cycles */ #define FLS_PFCR_PRFTEN_Pos 0 /* Ö¸ÁîԤȡָʹÄÜ£¬ÔÚWAIT==00µÄÇé¿öÏÂд1ÎÞЧ (Prefetch Enable) 1£ºÊ¹ÄÜPrefetch 0£º½ûÖ¹Prefetch */ #define FLS_PFCR_PRFTEN_Msk (0x1U << FLS_PFCR_PRFTEN_Pos) /* ʹÄÜPrefetch */ /* ½ûÖ¹Prefetch */ #define FLS_OPTBR_DBGCFGEN_Pos 31 #define FLS_OPTBR_DBGCFGEN_Msk (0x1U << FLS_OPTBR_DBGCFGEN_Pos) #define FLS_OPTBR_IF2LOCK_Pos 18 /* Information2ÇøËø¶¨±êÖ¾ (IF2 Lock Enable) 0£ºÎ´Ëø¶¨ 1£ºÒÑËø¶¨£¬Ëø¶¨ºóÈí¼þ²»¿É¸Äд±¾ÉÈÇø */ #define FLS_OPTBR_IF2LOCK_Msk (0x1U << FLS_OPTBR_IF2LOCK_Pos) #define FLS_OPTBR_IF1LOCK_Pos 17 /* Information1ÇøËø¶¨±êÖ¾ (IF1 Lock Enable) 0£ºÎ´Ëø¶¨ 1£ºÒÑËø¶¨£¬Ëø¶¨ºóÈí¼þ²»¿É¸Äд±¾ÉÈÇø */ #define FLS_OPTBR_IF1LOCK_Msk (0x1U << FLS_OPTBR_IF1LOCK_Pos) #define FLS_OPTBR_DFLSEN_Pos 10 /* DataFlashʹÄÜ (DataFlash Enable) 0£ºÎÞdata flash 1£ºÓÐdata flash */ #define FLS_OPTBR_DFLSEN_Msk (0x1U << FLS_OPTBR_DFLSEN_Pos) /* ÎÞdata flash */ /* ÓÐdata flash */ #define FLS_OPTBR_BTSEN_Pos 8 /* BootSwap¹¦ÄÜʹÄÜ (BootSwap Enable) 00/01/11£º½ûÖ¹BootSwap¹¦ÄÜ 10£ºÔÊÐíBootSwap */ #define FLS_OPTBR_BTSEN_Msk (0x3U << FLS_OPTBR_BTSEN_Pos) /* ½ûÖ¹BootSwap¹¦ÄÜ */ /* ½ûÖ¹BootSwap¹¦ÄÜ */ /* ½ûÖ¹BootSwap¹¦ÄÜ */ /* ÔÊÐíBootSwap */ #define FLS_OPTBR_ACLOCKEN_Pos 4 /* Ó¦ÓôúÂëȨÏÞËø¶¨Ê¹ÄÜ (AppCode Lock Enable) 00/01/11£ºACLOCK²»Ê¹ÄÜ 10£ºACLOCKʹÄÜ */ #define FLS_OPTBR_ACLOCKEN_Msk (0x3U << FLS_OPTBR_ACLOCKEN_Pos) /* ACLOCK²»Ê¹ÄÜ */ /* ACLOCK²»Ê¹ÄÜ */ /* ACLOCK²»Ê¹ÄÜ */ /* ACLOCKʹÄÜ */ #define FLS_OPTBR_DBRDPEN_Pos 0 /* Debug Port¶ÁÈ¡±£»¤Ê¹ÄÜ (Debug Read Protection Enable) 00/01/11£ºDBRDP²»Ê¹ÄÜ 10£ºDBRDPʹÄÜ */ #define FLS_OPTBR_DBRDPEN_Msk (0xfU << FLS_OPTBR_DBRDPEN_Pos) /* DBRDP²»Ê¹ÄÜ */ /* DBRDP²»Ê¹ÄÜ */ /* DBRDP²»Ê¹ÄÜ */ /* DBRDPʹÄÜ */ #define FLS_OPTBR_LOCK1_Pos 0 /* ACLOCKÅäÖüĴæÆ÷µÍ32bit£¬·Ö±ðÓÃÓÚ¿ØÖÆBlock15~Block0µÄÓ¦ÓôúÂë¶ÁÐ´Ëø¶¨¡£Ã¿¸öBlock´óСΪ8KB£¬Ã¿¸öBlockʹÓÃ2bit½øÐÐȨÏÞ¿ØÖÆ¡£ */ #define FLS_OPTBR_LOCK1_Msk (0xffffffffU << FLS_OPTBR_LOCK1_Pos) #define FLS_OPTBR_LOCK2_Pos 0 /* ACLOCKÅäÖüĴæÆ÷¸ß32bit£¬·Ö±ðÓÃÓÚ¿ØÖÆBlock31~Block16µÄÓ¦ÓôúÂë¶ÁÐ´Ëø¶¨¡£Ã¿¸öBlock´óСΪ8KB£¬Ã¿¸öBlockʹÓÃ2bit½øÐÐȨÏÞ¿ØÖÆ */ #define FLS_OPTBR_LOCK2_Msk (0xffffffffU << FLS_OPTBR_LOCK2_Pos) #define FLS_OPTBR_LOCK3_Pos 0 /* ACLOCKÅäÖüĴæÆ÷¸ß32bit£¬·Ö±ðÓÃÓÚ¿ØÖÆBlock31~Block16µÄÓ¦ÓôúÂë¶ÁÐ´Ëø¶¨¡£Ã¿¸öBlock´óСΪ8KB£¬Ã¿¸öBlockʹÓÃ2bit½øÐÐȨÏÞ¿ØÖÆ */ #define FLS_OPTBR_LOCK3_Msk (0xffffffffU << FLS_OPTBR_LOCK3_Pos) #define FLS_OPTBR_LOCK4_Pos 0 /* ACLOCKÅäÖüĴæÆ÷¸ß32bit£¬·Ö±ðÓÃÓÚ¿ØÖÆBlock31~Block16µÄÓ¦ÓôúÂë¶ÁÐ´Ëø¶¨¡£Ã¿¸öBlock´óСΪ8KB£¬Ã¿¸öBlockʹÓÃ2bit½øÐÐȨÏÞ¿ØÖÆ */ #define FLS_OPTBR_LOCK4_Msk (0xffffffffU << FLS_OPTBR_LOCK4_Pos) #define FLS_EPCR_ERTYPE_Pos 8 /* Flash²Á³ýÀàÐÍÅäÖà (Erase Type) 00/11£ºPage Erase 01£ºSector Erase 10£ºChip Erase (SWD only) */ #define FLS_EPCR_ERTYPE_Msk (0x3U << FLS_EPCR_ERTYPE_Pos) #define FLS_EPCR_ERTYPE_PAGE (0x0U << FLS_EPCR_ERTYPE_Pos) /* Page Erase */ #define FLS_EPCR_ERTYPE_SECTOR (0x1U << FLS_EPCR_ERTYPE_Pos) /* Sector Erase */ #define FLS_EPCR_ERTYPE_CHIP_ERASE (0x2U << FLS_EPCR_ERTYPE_Pos) /* Chip Erase (SWD only) */ #define FLS_EPCR_PREQ_Pos 1 /* Program Request Èí¼þÖÃλ£¬Ó²¼þÍê³É±à³Ìºó×Ô¶¯ÇåÁã */ #define FLS_EPCR_PREQ_Msk (0x1U << FLS_EPCR_PREQ_Pos) #define FLS_EPCR_EREQ_Pos 0 /* Erase Request Èí¼þÖÃλ£¬Ó²¼þÍê³É²Á³ýºó×Ô¶¯ÇåÁã */ #define FLS_EPCR_EREQ_Msk (0x1U << FLS_EPCR_EREQ_Pos) #define FLS_KEY_KEY_Pos 0 /* Flash²ÁдKeyÊäÈë¼Ä´æÆ÷£¬Èí¼þ»òÕßSWDÔÚÆô¶¯²Áдǰ±ØÐëÕýÈ·µØÏò´ËµØÖ·Ð´ÈëºÏ·¨KEYÐòÁС£ (Flash Key) */ #define FLS_KEY_KEY_Msk (0xffffffffU << FLS_KEY_KEY_Pos) #define FLS_IER_OTPIE_Pos 11 /* OTP±à³Ì´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (OTP program error Interrupt Enable) */ #define FLS_IER_OTPIE_Msk (0x1U << FLS_IER_OTPIE_Pos) #define FLS_IER_AUTHIE_Pos 10 /* Flash¶ÁдȨÏÞ´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (Flash Authentication Error Interrupt Enable) */ #define FLS_IER_AUTHIE_Msk (0x1U << FLS_IER_AUTHIE_Pos) #define FLS_IER_KEYIE_Pos 9 /* Flash KEY´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (Flash Key Error Interrupt Enable) */ #define FLS_IER_KEYIE_Msk (0x1U << FLS_IER_KEYIE_Pos) #define FLS_IER_CKIE_Pos 8 /* ²Áд¶¨Ê±Ê±ÖÓ´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (Erase/Program Clock Error Interrupt Enable) */ #define FLS_IER_CKIE_Msk (0x1U << FLS_IER_CKIE_Pos) #define FLS_IER_PRDIE_Pos 1 /* ±à³ÌÍê³É±êÖ¾ÖжÏʹÄÜ£¬1ÓÐЧ (Program Done Interrupt Enable) */ #define FLS_IER_PRDIE_Msk (0x1U << FLS_IER_PRDIE_Pos) #define FLS_IER_ERDIE_Pos 0 /* ²ÁдÍê³É±êÖ¾ÖжÏʹÄÜ£¬1ÓÐЧ (Erase Done Interrupt Enable) */ #define FLS_IER_ERDIE_Msk (0x1U << FLS_IER_ERDIE_Pos) #define FLS_ISR_KEYSTA_Pos 17 /* Flash²ÁдKEYÊäÈë״̬ (Flash Key Status) 000£ºFlashд±£»¤×´Ì¬£¬Î´ÊäÈëKEY 001£ºÈ«²Á½âËø×´Ì¬ 010£ºÉÈÇø²Á½âËø×´Ì¬ 011£º±à³Ì½âËø×´Ì¬ 100£ºKEY´íÎóËø¶¨×´Ì¬£¬ÐèÒª¸´Î»²ÅÄܽâËø 101/110/111£ºRFU */ #define FLS_ISR_KEYSTA_Msk (0x7U << FLS_ISR_KEYSTA_Pos) #define FLS_ISR_KEYSTA_KEY_NONE_PROTECT (0x0U << FLS_ISR_KEYSTA_Pos) /* Flashд±£»¤×´Ì¬£¬Î´ÊäÈëKEY */ #define FLS_ISR_KEYSTA_CHIP_ERASE (0x1U << FLS_ISR_KEYSTA_Pos) /* È«²Á½âËø×´Ì¬ */ #define FLS_ISR_KEYSTA_SECTOR_ERASE (0x2U << FLS_ISR_KEYSTA_Pos) /* ÉÈÇø²Á½âËø×´Ì¬ */ #define FLS_ISR_KEYSTA_PROGRAM (0x3U << FLS_ISR_KEYSTA_Pos) /* ±à³Ì½âËø×´Ì¬ */ #define FLS_ISR_KEYSTA_KEY_ERR_PROTECT (0x4U << FLS_ISR_KEYSTA_Pos) /* KEY´íÎóËø¶¨×´Ì¬£¬ÐèÒª¸´Î»²ÅÄܽâËø */ #define FLS_ISR_BTSF_Pos 16 /* BootSwap±êÖ¾¼Ä´æÆ÷ (BootSwap) 0£ºÆô¶¯³ÌÐòÇøÎªFlashÎïÀíµØÖ·0000H~1FFFH 1£ºÆô¶¯³ÌÐòÇøÎªFlashÎïÀíµØÖ·2000H~3FFFH */ #define FLS_ISR_BTSF_Msk (0x1U << FLS_ISR_BTSF_Pos) #define FLS_ISR_BTSF_START_0000H (0x0U << FLS_ISR_BTSF_Pos) /* Æô¶¯³ÌÐòÇøÎªFlashÎïÀíµØÖ·0000H~1FFFH */ #define FLS_ISR_BTSF_START_2000H (0x1U << FLS_ISR_BTSF_Pos) /* Æô¶¯³ÌÐòÇøÎªFlashÎïÀíµØÖ·2000H~3FFFH */ #define FLS_ISR_OTPERR_Pos 11 /* OTP page±à³ÌȨÏÞ´íÎó£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã (OTP program Error Flag. Write 1 to clear) 1£º³¢ÊÔ¶ÔÒѱà³ÌµÄOTP×Ö½Ú½øÐбà³Ì 0£ºÎÞOTP±à³Ì´íÎó */ #define FLS_ISR_OTPERR_Msk (0x1U << FLS_ISR_OTPERR_Pos) #define FLS_ISR_AUTHERR_Pos 10 /* Flash¶ÁдȨÏÞ´íÎ󣬶ÁÈ¡LOCK¿éÊý¾Ý»ò¶ÔLOCK¿é²ÁдʱÖÃ룬Èí¼þд1ÇåÁã¡£(Flash Authentication Error Flag, write 1 to clear) 1£ºFlash·ÃÎÊȨÏÞ´íÎó 0£ºFlash·ÃÎÊûÓз¢ÉúȨÏÞ´íÎó */ #define FLS_ISR_AUTHERR_Msk (0x1U << FLS_ISR_AUTHERR_Pos) #define FLS_ISR_KEYERR_Pos 9 /* Flash KEY´íÎó£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã (Flash Key Error Flag, write 1 to clear) */ #define FLS_ISR_KEYERR_Msk (0x1U << FLS_ISR_KEYERR_Pos) #define FLS_ISR_CKERR_Pos 8 /* ²Áд¶¨Ê±Ê±ÖÓ´íÎó£¬NVMIF²ÁдFlashʱÈç¹ûRCHFδʹÄÜ£¬Ôò´¥·¢CKERRÖжϣ¬Èí¼þд1ÇåÁã¡£(Erase/Program Clock Error Flag, write 1 to clear) */ #define FLS_ISR_CKERR_Msk (0x1U << FLS_ISR_CKERR_Pos) #define FLS_ISR_PRD_Pos 1 /* Program Done£¬±à³ÌÍê³É±êÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã(Program Done Flag,write 1 to clear) */ #define FLS_ISR_PRD_Msk (0x1U << FLS_ISR_PRD_Pos) #define FLS_ISR_ERD_Pos 0 /* Erase Done£¬²ÁдÍê³É±êÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã(Erase Done Flag,write 1 to clear) */ #define FLS_ISR_ERD_Msk (0x1U << FLS_ISR_ERD_Pos) //Macro_End /* Exported functions --------------------------------------------------------*/ extern void FLS_Deinit(void); /* Flash¶ÁµÈ´ýÖÜÆÚÅäÖà (Wait Cycles Config) 00/11£º0 wait cycle 01£º1 wait cycle 10£º2 wait cycles CPUÖ÷ƵСÓÚµÈÓÚ24MHzʱ£¬²»ÐèÒª¿ªÆôwait£»Ö÷Ƶ´óÓÚ24MСÓÚ48MhzʱʹÄÜ1 wait£¬Ö÷Ƶ´óÓÚ48MhzʱʹÄÜ2 wait Ïà¹Øº¯Êý */ extern void FLS_RDCR_WAIT_Set(uint32_t SetValue); extern uint32_t FLS_RDCR_WAIT_Get(void); /* Ö¸ÁîԤȡָʹÄÜ£¬ÔÚWAIT==00µÄÇé¿öÏÂд1ÎÞЧ (Prefetch Enable) 1£ºÊ¹ÄÜPrefetch 0£º½ûÖ¹Prefetch Ïà¹Øº¯Êý */ extern void FLS_PFCR_PRFTEN_Setable(FunState NewState); extern FunState FLS_PFCR_PRFTEN_Getable(void); /* IWDTÔÚÐÝÃßģʽÏÂÊÇ·ñÔÊÐíÓ¦ÓÃÔÝÍ£¼ÆÊý (IWDT Sleep Enable) 1£ºÔÊÐíÓ¦ÓÃÔÚÐÝÃßģʽÏÂÔÝÍ£IWDT¼ÆÊý 0£º½ûÖ¹Ó¦ÓÃÔÚÐÝÃßģʽÏÂÔÝÍ£IWDT¼ÆÊý Ïà¹Øº¯Êý */ extern FunState FLS_OPTBR_IWDTSLP_Getable(void); extern FunState FLS_OPTBR_DBGCFGEN_Chk(void); /* Information2ÇøËø¶¨±êÖ¾ (IF2 Lock Enable) 0£ºÎ´Ëø¶¨ 1£ºÒÑËø¶¨£¬Ëø¶¨ºóÈí¼þ²»¿É¸Äд±¾ÉÈÇø Ïà¹Øº¯Êý */ extern FlagStatus FLS_OPTBR_IF2LOCK_Chk(void); /* Information1ÇøËø¶¨±êÖ¾ (IF1 Lock Enable) 0£ºÎ´Ëø¶¨ 1£ºÒÑËø¶¨£¬Ëø¶¨ºóÈí¼þ²»¿É¸Äд±¾ÉÈÇø Ïà¹Øº¯Êý */ extern FlagStatus FLS_OPTBR_IF1LOCK_Chk(void); /* DataFlashʹÄÜ (DataFlash Enable) 0£ºÎÞdata flash 1£ºÓÐdata flash Ïà¹Øº¯Êý */ extern FunState FLS_OPTBR_DFLSEN_Getable(void); /* BootSwap¹¦ÄÜʹÄÜ (BootSwap Enable) 00/01/11£º½ûÖ¹BootSwap¹¦ÄÜ 10£ºÔÊÐíBootSwap Ïà¹Øº¯Êý */ extern FunState FLS_OPTBR_BTSEN_Getable(void); /* Ó¦ÓôúÂëȨÏÞËø¶¨Ê¹ÄÜ (AppCode Lock Enable) 00/01/11£ºACLOCK²»Ê¹ÄÜ 10£ºACLOCKʹÄÜ Ïà¹Øº¯Êý */ extern FunState FLS_OPTBR_ACLOCKEN_Getable(void); /* Debug Port¶ÁÈ¡±£»¤Ê¹ÄÜ (Debug Read Protection Enable) 00/01/11£ºDBRDP²»Ê¹ÄÜ 10£ºDBRDPʹÄÜ Ïà¹Øº¯Êý */ extern uint32_t FLS_OPTBR_DBRDPEN_Getable(void); /* Flash²Á³ýÀàÐÍÅäÖà (Erase Type) 00/11£ºPage Erase 01£ºSector Erase 10£ºChip Erase (SWD only) Ïà¹Øº¯Êý */ extern void FLS_EPCR_ERTYPE_Set(uint32_t SetValue); extern uint32_t FLS_EPCR_ERTYPE_Get(void); /* Program Request Èí¼þÖÃλ£¬Ó²¼þÍê³É±à³Ìºó×Ô¶¯ÇåÁã Ïà¹Øº¯Êý */ extern void FLS_EPCR_PREQ_Set(uint32_t SetValue); extern uint32_t FLS_EPCR_PREQ_Get(void); /* Erase Request Èí¼þÖÃλ£¬Ó²¼þÍê³É²Á³ýºó×Ô¶¯ÇåÁã Ïà¹Øº¯Êý */ extern void FLS_EPCR_EREQ_Set(uint32_t SetValue); extern uint32_t FLS_EPCR_EREQ_Get(void); /* Flash²ÁдKeyÊäÈë¼Ä´æÆ÷£¬Èí¼þ»òÕßSWDÔÚÆô¶¯²Áдǰ±ØÐëÕýÈ·µØÏò´ËµØÖ·Ð´ÈëºÏ·¨KEYÐòÁС£ (Flash Key) Ïà¹Øº¯Êý */ extern void FLS_KEY_Write(uint32_t SetValue); /* OTP±à³Ì´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (OTP program error Interrupt Enable) Ïà¹Øº¯Êý */ extern void FLS_IER_OTPIE_Setable(FunState NewState); extern FunState FLS_IER_OTPIE_Getable(void); /* Flash¶ÁдȨÏÞ´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (Flash Authentication Error Interrupt Enable) Ïà¹Øº¯Êý */ extern void FLS_IER_AUTHIE_Setable(FunState NewState); extern FunState FLS_IER_AUTHIE_Getable(void); /* Flash KEY´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (Flash Key Error Interrupt Enable) Ïà¹Øº¯Êý */ extern void FLS_IER_KEYIE_Setable(FunState NewState); extern FunState FLS_IER_KEYIE_Getable(void); /* ²Áд¶¨Ê±Ê±ÖÓ´íÎóÖжÏʹÄÜ£¬1ÓÐЧ (Erase/Program Clock Error Interrupt Enable) Ïà¹Øº¯Êý */ extern void FLS_IER_CKIE_Setable(FunState NewState); extern FunState FLS_IER_CKIE_Getable(void); /* ±à³ÌÍê³É±êÖ¾ÖжÏʹÄÜ£¬1ÓÐЧ (Program Done Interrupt Enable) Ïà¹Øº¯Êý */ extern void FLS_IER_PRDIE_Setable(FunState NewState); extern FunState FLS_IER_PRDIE_Getable(void); /* ²ÁдÍê³É±êÖ¾ÖжÏʹÄÜ£¬1ÓÐЧ (Erase Done Interrupt Enable) Ïà¹Øº¯Êý */ extern void FLS_IER_ERDIE_Setable(FunState NewState); extern FunState FLS_IER_ERDIE_Getable(void); /* Flash²ÁдKEYÊäÈë״̬ (Flash Key Status) 000£ºFlashд±£»¤×´Ì¬£¬Î´ÊäÈëKEY 001£ºÈ«²Á½âËø×´Ì¬ 010£ºÉÈÇø²Á½âËø×´Ì¬ 011£º±à³Ì½âËø×´Ì¬ 100£ºKEY´íÎóËø¶¨×´Ì¬£¬ÐèÒª¸´Î»²ÅÄܽâËø 101/110/111£ºRFU Ïà¹Øº¯Êý */ extern uint32_t FLS_ISR_KEYSTA_Get(void); /* BootSwap±êÖ¾¼Ä´æÆ÷ (BootSwap) 0£ºÆô¶¯³ÌÐòÇøÎªFlashÎïÀíµØÖ·0000H~1FFFH 1£ºÆô¶¯³ÌÐòÇøÎªFlashÎïÀíµØÖ·2000H~3FFFH Ïà¹Øº¯Êý */ extern uint32_t FLS_ISR_BTSF_Get(void); /* OTP page±à³ÌȨÏÞ´íÎó£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã (OTP program Error Flag. Write 1 to clear) 1£º³¢ÊÔ¶ÔÒѱà³ÌµÄOTP×Ö½Ú½øÐбà³Ì 0£ºÎÞOTP±à³Ì´íÎó Ïà¹Øº¯Êý */ extern void FLS_ISR_OTPERR_Clr(void); extern FlagStatus FLS_ISR_OTPERR_Chk(void); /* Flash¶ÁдȨÏÞ´íÎ󣬶ÁÈ¡LOCK¿éÊý¾Ý»ò¶ÔLOCK¿é²ÁдʱÖÃ룬Èí¼þд1ÇåÁã¡£(Flash Authentication Error Flag, write 1 to clear) 1£ºFlash·ÃÎÊȨÏÞ´íÎó 0£ºFlash·ÃÎÊûÓз¢ÉúȨÏÞ´íÎó Ïà¹Øº¯Êý */ extern void FLS_ISR_AUTHERR_Clr(void); extern FlagStatus FLS_ISR_AUTHERR_Chk(void); /* Flash KEY´íÎó£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã (Flash Key Error Flag, write 1 to clear) Ïà¹Øº¯Êý */ extern void FLS_ISR_KEYERR_Clr(void); extern FlagStatus FLS_ISR_KEYERR_Chk(void); /* ²Áд¶¨Ê±Ê±ÖÓ´íÎó£¬NVMIF²ÁдFlashʱÈç¹ûRCHFδʹÄÜ£¬Ôò´¥·¢CKERRÖжϣ¬Èí¼þд1ÇåÁã¡£(Erase/Program Clock Error Flag, write 1 to clear) Ïà¹Øº¯Êý */ extern void FLS_ISR_CKERR_Clr(void); extern FlagStatus FLS_ISR_CKERR_Chk(void); /* Program Done£¬±à³ÌÍê³É±êÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã(Program Done Flag,write 1 to clear) Ïà¹Øº¯Êý */ extern void FLS_ISR_PRD_Clr(void); extern FlagStatus FLS_ISR_PRD_Chk(void); /* Erase Done£¬²ÁдÍê³É±êÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã(Erase Done Flag,write 1 to clear) Ïà¹Øº¯Êý */ extern void FLS_ISR_ERD_Clr(void); extern FlagStatus FLS_ISR_ERD_Chk(void); //Announce_End #ifdef __cplusplus } #endif #endif /* __FM33A0XXEV_FLASH_H */