Kamcho Library 02.00.03  lib.kamcho.02.00.03.287
flash_sfrs.h
Go to the documentation of this file.
1 
12 #ifndef __FLASH_SFRS_H__
13 #define __FLASH_SFRS_H__
14 
18 typedef struct {
19  uint32_t FLADDR;
20  uint32_t FLWRDT;
21  uint32_t UNLBWR;
22  uint32_t BWRSTRT;
23  uint32_t UNLSER;
24  uint32_t SERSTRT;
25  uint32_t UNLBLKER;
26  uint32_t BKERSTRT;
27  union {
28  struct {
29  uint8_t RESERVED0;
30  struct {
31  uint8_t BWBUSY:1;
32  uint8_t SEBUSY:1;
33  uint8_t BEBUSY:1;
34  uint8_t RESERVED1:5;
35  } FLAGS;
36  uint8_t RESERVED1[2];
37  };
38  uint32_t WORD;
39  } FLSCTRL;
40  uint32_t FLSCP;
41 } FLASH_SFRS_t;
42 #define FLASH_SFRS ((__IO FLASH_SFRS_t *) (FLASH_CTRL_BASE))
43 
44 #define E_FLASH_CODE_PROTECT ((uint32_t) 0xF2E11047)
45 #define E_FLASH_CODE_UNPROTECT ((uint32_t) 0x00000000)
46 
47 #define E_FLASH_BYTE_UNLOCK_PAT ((uint32_t) 0x55555555)
48 #define E_FLASH_BYTE_WRITE_PAT ((uint32_t) 0xAAAAAAAA)
49 #define E_FLASH_BLOCK_UNLOCK_PAT ((uint32_t) 0x77777777)
50 #define E_FLASH_BLOCK_ERASE_PAT ((uint32_t) 0x88888888)
51 #define E_FLASH_SECTOR_UNLOCK_PAT ((uint32_t) 0x66666666)
52 #define E_FLASH_SECTOR_ERASE_PAT ((uint32_t) 0x99999999)
53 
59 __ramfunc static __INLINE void f_FLASH_EraseBlock(__IO uint32_t address)
60 {
61  FLASH_SFRS->FLADDR = address;
64 }
65 
71 __ramfunc static __INLINE uint32_t f_FLASH_CheckErasingBlock(void)
72 {
73  return ( FLASH_SFRS->FLSCTRL.FLAGS.BEBUSY );
74 }
75 
81 __ramfunc static __INLINE void f_FLASH_EraseSector(__IO uint32_t address)
82 {
83  FLASH_SFRS->FLADDR = address;
86 }
87 
93 __ramfunc static __INLINE uint32_t f_FLASH_CheckErasingSector(void)
94 {
95  return ( FLASH_SFRS->FLSCTRL.FLAGS.SEBUSY );
96 }
97 
104 __ramfunc static __INLINE void f_FLASH_WriteByte(__IO uint32_t address, uint8_t data)
105 {
106  FLASH_SFRS->FLADDR = address;
109  FLASH_SFRS->FLWRDT = data;
110 }
111 
117 __ramfunc static __INLINE uint32_t f_FLASH_CheckWritingByte(void)
118 {
119  return ( FLASH_SFRS->FLSCTRL.FLAGS.BWBUSY );
120 }
121 
127 static __INLINE void f_FLASH_CodeProtection(uint32_t mode)
128 {
129  FLASH_SFRS->FLSCP = mode;
130 }
131 
132 #endif /* __FLASH_SFRS_H__ */
uint32_t SERSTRT
Definition: flash_sfrs.h:24
#define E_FLASH_BLOCK_UNLOCK_PAT
Definition: flash_sfrs.h:49
uint32_t UNLBLKER
Definition: flash_sfrs.h:25
#define FLASH_SFRS
Definition: flash_sfrs.h:42
static __INLINE void f_FLASH_CodeProtection(uint32_t mode)
Flash memory write byte check function.
Definition: flash_sfrs.h:127
static __ramfunc __INLINE void f_FLASH_WriteByte(__IO uint32_t address, uint8_t data)
Flash memory write byte function.
Definition: flash_sfrs.h:104
static __ramfunc __INLINE uint32_t f_FLASH_CheckErasingBlock(void)
Flash memory erase block check function.
Definition: flash_sfrs.h:71
#define E_FLASH_BYTE_WRITE_PAT
Definition: flash_sfrs.h:48
uint32_t BKERSTRT
Definition: flash_sfrs.h:26
static __ramfunc __INLINE void f_FLASH_EraseSector(__IO uint32_t address)
Flash memory erase sector function.
Definition: flash_sfrs.h:81
A structure to represent Special Function Registers for FLASH.
Definition: flash_sfrs.h:18
#define E_FLASH_SECTOR_ERASE_PAT
Definition: flash_sfrs.h:52
uint32_t UNLBWR
Definition: flash_sfrs.h:21
uint32_t FLWRDT
Definition: flash_sfrs.h:20
static __ramfunc __INLINE uint32_t f_FLASH_CheckWritingByte(void)
Flash memory write byte check function.
Definition: flash_sfrs.h:117
uint32_t WORD
Definition: flash_sfrs.h:38
uint32_t UNLSER
Definition: flash_sfrs.h:23
uint32_t BWRSTRT
Definition: flash_sfrs.h:22
uint32_t FLSCP
Definition: flash_sfrs.h:40
uint32_t FLADDR
Definition: flash_sfrs.h:19
static __ramfunc __INLINE uint32_t f_FLASH_CheckErasingSector(void)
Flash memory erase sector check function.
Definition: flash_sfrs.h:93
static __ramfunc __INLINE void f_FLASH_EraseBlock(__IO uint32_t address)
Flash memory erase block function.
Definition: flash_sfrs.h:59
uint8_t RESERVED0
Definition: flash_sfrs.h:29
#define E_FLASH_BYTE_UNLOCK_PAT
Definition: flash_sfrs.h:47
#define E_FLASH_BLOCK_ERASE_PAT
Definition: flash_sfrs.h:50
#define E_FLASH_SECTOR_UNLOCK_PAT
Definition: flash_sfrs.h:51