/**
|
******************************************************************************
|
* @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 */
|