125 lines
4.4 KiB
C
125 lines
4.4 KiB
C
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
#ifndef __IOT_BSRM_FLASH_H
|
|
#define __IOT_BSRM_FLASH_H
|
|
|
|
/* os shim includes */
|
|
#include "os_types_api.h"
|
|
|
|
/* iot common header files */
|
|
#include "iot_config_api.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*----------------------------------------
|
|
* bsrm flash layout shows like below
|
|
*----------------------------------------
|
|
* |------------------------------|
|
|
* | |
|
|
* | non-volatile data | 4k bytes
|
|
* | |
|
|
* |------------------------------|
|
|
* | |
|
|
* | branch info recording region | 256k bytes
|
|
* | |
|
|
* |------------------------------|
|
|
* | |
|
|
* | reserved | 32k bytes
|
|
* | |
|
|
* |------------------------------|
|
|
* | |
|
|
* | branch event region | 256k bytes
|
|
* | |
|
|
* |------------------------------|
|
|
*/
|
|
|
|
#if (IOT_BSRM_MODE == IOT_BSRM_MODE_CUS_APP)
|
|
/* define the start, size, and end of sg app region */
|
|
#define IOT_BSRM_SG_REGION_START 0x00
|
|
#define IOT_BSRM_SG_REGION_SIZE (256 * 1024)
|
|
#define IOT_BSRM_SG_REGION_END \
|
|
IOT_BSRM_SG_REGION_START + IOT_BSRM_SG_REGION_SIZE
|
|
#else
|
|
#define IOT_BSRM_SG_REGION_END 0
|
|
#endif
|
|
|
|
/* define the start, size, and end of non-volatile data region */
|
|
#define IOT_BSRM_NV_REGION_START IOT_BSRM_SG_REGION_END
|
|
#define IOT_BSRM_NV_REGION_SIZE (4 * 1024)
|
|
#define IOT_BSRM_NV_REGION_END \
|
|
IOT_BSRM_NV_REGION_START + IOT_BSRM_NV_REGION_SIZE
|
|
|
|
/* define the start, size, and end of information recode region */
|
|
#define IOT_BSRM_INFO_REC_REGION_START IOT_BSRM_NV_REGION_END
|
|
#define IOT_BSRM_INFO_REC_REGION_SIZE (256 * 1024)
|
|
#define IOT_BSRM_INFO_REC_REGION_END \
|
|
IOT_BSRM_INFO_REC_REGION_START + IOT_BSRM_INFO_REC_REGION_SIZE
|
|
|
|
/* reserved */
|
|
#define IOT_BSRM_RESERVED_REGION_START IOT_BSRM_INFO_REC_REGION_END
|
|
#define IOT_BSRM_RESERVED_REGION_SIZE (32 * 1024)
|
|
#define IOT_BSRM_RESERVED_REGION_END \
|
|
IOT_BSRM_RESERVED_REGION_START + IOT_BSRM_RESERVED_REGION_SIZE
|
|
|
|
/* define the start, size, and end of information recode region */
|
|
#define IOT_BSRM_BRANCH_EVT_REGION_START IOT_BSRM_RESERVED_REGION_END
|
|
#define IOT_BSRM_BRANCH_EVT_REGION_SIZE (256 * 1024)
|
|
#define IOT_BSRM_BRANCH_EVT_REGION_END \
|
|
IOT_BSRM_BRANCH_EVT_REGION_START + IOT_BSRM_BRANCH_EVT_REGION_SIZE
|
|
|
|
#if IOT_BSRM_MODE
|
|
|
|
/**
|
|
* @brief: iot_bsrm_flash_init() - initialization flash.
|
|
* @retval: ERR_OK - success, otherwise - see eeeor code.
|
|
*/
|
|
uint8_t iot_bsrm_flash_init(void);
|
|
|
|
/**
|
|
* @brief: iot_bsrm_flash_deinit() - deinitialization flash.
|
|
*/
|
|
void iot_bsrm_flash_deinit(void);
|
|
|
|
/**
|
|
* @brief: iot_bsrm_flash_read() - read data from flash.
|
|
* @param pos: the starting position of reading.
|
|
* @param buf: data buffer used to return read data.
|
|
* @param cnt: number of data to be read, uint is byte.
|
|
* @retval: ERR_OK - success, otherwise - see eeeor code.
|
|
*/
|
|
uint8_t iot_bsrm_flash_read(uint32_t pos, uint8_t *buf,
|
|
uint32_t cnt);
|
|
|
|
/**
|
|
* @brief: iot_bsrm_flash_write() - write data to flash.
|
|
* @param pos: the starting position of write.
|
|
* @param buf: pointer to the data buffer to be written.
|
|
* @param cnt: number of data to be written, uint is byte.
|
|
* @retval: ERR_OK - success, otherwise - see eeeor code.
|
|
*/
|
|
uint8_t iot_bsrm_flash_write(uint32_t pos, uint8_t *buf,
|
|
uint32_t cnt);
|
|
|
|
#endif /* IOT_BSRM_MODE */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __IOT_BSRM_FLASH_H */
|
|
|