summaryrefslogtreecommitdiff
path: root/bsp/Vango/v85xx/libraries/VangoV85xx_standard_peripheral/Include/lib_flash.h
blob: dc1304b4b3aa52ff5af941821dd389636afd5bab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**
  ******************************************************************************
  * @file    lib_flash.h 
  * @author  Application Team
  * @version V4.4.0
  * @date    2018-09-27
  * @brief   FLASH library.
  ******************************************************************************
  * @attention
  *
  ******************************************************************************
  */
#ifndef __LIB_FLASH_H
#define __LIB_FLASH_H

#ifdef __cplusplus
 extern "C" {
#endif

#include "target.h"

//CSMode
#define FLASH_CSMODE_DISABLE        FLASH_CTRL_CSMODE_DISABLE
#define FLASH_CSMODE_ALWAYSON       FLASH_CTRL_CSMODE_ALWAYSON
#define FLASH_CSMODE_TIM2OF         FLASH_CTRL_CSMODE_TIM2OV
#define FLASH_CSMODE_RTC            FLASH_CTRL_CSMODE_RTC
#define IS_FLASH_CSMODE(__CSMODE__)  (((__CSMODE__) == FLASH_CSMODE_DISABLE)  ||\
                                      ((__CSMODE__) == FLASH_CSMODE_ALWAYSON) ||\
                                      ((__CSMODE__) == FLASH_CSMODE_TIM2OF)   ||\
                                      ((__CSMODE__) == FLASH_CSMODE_RTC))

//INT
#define FLASH_INT_CS                FLASH_CTRL_CSINTEN
#define IS_FLASH_INT(__INT__)  ((__INT__) == FLASH_INT_CS)

//WriteStatus
#define FLASH_WSTA_BUSY         0
#define FLASH_WRITE_FINISH      1
#define FLASH_WSTA_FINISH       FLASH_WRITE_FINISH

#define IS_FLASH_ADDRESS(__ADDRESS__) ((__ADDRESS__) < 0x40000UL)

#define IS_FLASH_ADRRW(__ADDRW__)  (((__ADDRW__) < 0x40000UL) &&\
                                    (((__ADDRW__) & 0x3U) == 0U))

#define IS_FLASH_ADRRHW(__ADDRHW__)  (((__ADDRHW__) < 0x40000UL) &&\
                                      (((__ADDRHW__) & 0x1U) == 0U))

#define IS_FLASH_CHECKSUMADDR(__ADDRESS1__,__ADDRESS2__) (((__ADDRESS1__) < 0x40000) && ((__ADDRESS2__) < 0x40000) && ((__ADDRESS1__) < (__ADDRESS2__)))

/* Exported Functions ------------------------------------------------------- */

void FLASH_Init(uint32_t CSMode);
void FLASH_INTConfig(uint32_t IntMask, uint32_t NewState);
void FLASH_CycleInit(void);
void FLASH_SectorErase(uint32_t SectorAddr);
void FLASH_ProgramWord(uint32_t Addr, uint32_t *WordBuffer, uint32_t Length);
void FLASH_ProgramHWord(uint32_t Addr, uint16_t *HWordBuffer, uint32_t Length);
void FLASH_ProgramByte(uint32_t Addr, uint8_t *ByteBuffer, uint32_t Length);
uint32_t FLASH_GetWriteStatus(void);
void FLASH_SetCheckSumRange(uint32_t AddrStart, uint32_t AddrEnd);
void FLASH_SetCheckSumCompValue(uint32_t Checksum);
uint32_t FLASH_GetCheckSum(void);
uint8_t FLASH_GetINTStatus(uint32_t IntMask);
void FLASH_ClearINTStatus(uint32_t IntMask);


#ifdef __cplusplus
}
#endif
     
#endif  /* __LIB_FLASH_H */

/*********************************** END OF FILE ******************************/