Initial commit: CCU621_M firmware project with BLE debug link support.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
#ifndef FLASH_EXTERNAL_DATA_H
|
||||
#define FLASH_EXTERNAL_DATA_H
|
||||
|
||||
#include "publicdata/type.h"
|
||||
#include "meter_calculate/meter_calculate_impl.h"
|
||||
|
||||
/* ============================================================================
|
||||
* 外部 Flash 容量与地址说明
|
||||
*
|
||||
* 当前上电识别 JEDEC ID: 0xC84019
|
||||
* - Manufacturer: 0xC8(GigaDevice)
|
||||
* - Capacity code: 0x19(典型为 256Mbit = 32MB)
|
||||
*
|
||||
* 当前底层驱动已启用 4-byte 地址模式(4 字节地址):
|
||||
* - 可直接访问线性地址范围:0x00000000 ~ 0x01FFFFFF(32MB)
|
||||
* - 总容量:0x02000000 bytes
|
||||
* ============================================================================ */
|
||||
|
||||
#define EXFLASH_ADDR_MIN (0x00000000u)
|
||||
#define EXFLASH_ADDR_MAX (0x01FFFFFFu)
|
||||
#define EXFLASH_TOTAL_SIZE (0x02000000u)
|
||||
|
||||
/* SPI NOR Flash 物理扇区大小(字节) */
|
||||
#define SPI_SECTOR_SIZE (4096u)
|
||||
|
||||
#ifndef RECORD_ZERO_SAVE
|
||||
#define RECORD_ZERO_SAVE (0x7FFFu)
|
||||
#endif
|
||||
#ifndef RECORD_HEADER
|
||||
#define RECORD_HEADER (0x55u)
|
||||
#endif
|
||||
|
||||
/* OTA 区(升级保留区) */
|
||||
#define UPGRADE_START_ADDR (0x00000000u)
|
||||
#define UPGRADE_END_ADDR (0x001FFFFFu)
|
||||
#define UPGRADE_TOTAL_SIZE (UPGRADE_END_ADDR - UPGRADE_START_ADDR + 1u)
|
||||
|
||||
/* 配置区 */
|
||||
#define DATAFLASH_VAR_CFG_DATA1_ADDR (0x210000u)
|
||||
#define DATAFLASH_VAR_CFG_DATA2_ADDR (0x211000u)
|
||||
#define DATAFLASH_VAR_CFG_DATA3_ADDR (0x212000u)
|
||||
#define DATAFLASH_FIX_CFG_DATA1_ADDR (0x213000u)
|
||||
#define DATAFLASH_FIX_CFG_DATA2_ADDR (0x214000u)
|
||||
#define DATAFLASH_FIX_CFG_DATA3_ADDR (0x215000u)
|
||||
#define DATAFLASH_OCPP_CFG_DATA_ADDR (0x216000u)
|
||||
|
||||
/* 故障、卡号、历史记录区 */
|
||||
#define DATAFLASH_FAULT_ADDR (0x220000u)
|
||||
#define DATAFLASH_FAULT_SECTOR_CNT (2u)
|
||||
#define DATAFLASH_FAULT_END_ADDR (DATAFLASH_FAULT_ADDR + (DATAFLASH_FAULT_SECTOR_CNT * SPI_SECTOR_SIZE) - 1u)
|
||||
|
||||
#define DATAFLASH_OCPP_MV_OFFLINE_ADDR (0x2C0000u)
|
||||
#define DATAFLASH_OCPP_MV_OFFLINE_HALF_SIZE (0x8000u)
|
||||
#define DATAFLASH_OCPP_MV_OFFLINE_SECTOR_CNT (16u)
|
||||
#define DATAFLASH_OCPP_MV_OFFLINE_TOTAL_SIZE (DATAFLASH_OCPP_MV_OFFLINE_HALF_SIZE * 2u)
|
||||
|
||||
#define DATAFLASH_CARD_ADDR (0x222000u)
|
||||
#define DATAFLASH_CARD_SECTOR_CNT (7u)
|
||||
#define DATAFLASH_CARD_END_ADDR (DATAFLASH_CARD_ADDR + (DATAFLASH_CARD_SECTOR_CNT * SPI_SECTOR_SIZE) - 1u)
|
||||
|
||||
#define DATAFLASH_HIS_RECORD_ADDR (0x230000u)
|
||||
#define DATAFLASH_HIS_RECORD_END_ADDR (0x2BFFFFu)
|
||||
#define DATAFLASH_HIS_RECORD_SIZE (DATAFLASH_HIS_RECORD_END_ADDR - DATAFLASH_HIS_RECORD_ADDR + 1u)
|
||||
#define DATAFLASH_HIS_RECORD_SECTOR_CNT (DATAFLASH_HIS_RECORD_SIZE / SPI_SECTOR_SIZE)
|
||||
|
||||
/* Charge-order storage layout (compatible with migrated flash_file_mgr module) */
|
||||
#ifndef CHG_ORDER_RECORD_SIZE
|
||||
#define CHG_ORDER_RECORD_SIZE (sizeof(S_LOG_DATA))
|
||||
#endif
|
||||
#ifndef CHG_ORDER_FULL_RECORD_SIZE
|
||||
#define CHG_ORDER_FULL_RECORD_SIZE (1u + CHG_ORDER_RECORD_SIZE + 1u)
|
||||
#endif
|
||||
#ifndef CHG_ORDER_PER_SECTOR_CNT
|
||||
#define CHG_ORDER_PER_SECTOR_CNT (SPI_SECTOR_SIZE / CHG_ORDER_FULL_RECORD_SIZE)
|
||||
#endif
|
||||
#ifndef CHG_ORDER_MAX_CNT
|
||||
#define CHG_ORDER_MAX_CNT (200u)
|
||||
#endif
|
||||
|
||||
#ifndef TEMP_CHG_RECORD_SIZE
|
||||
#define TEMP_CHG_RECORD_SIZE (sizeof(S_LOG_DATA))
|
||||
#endif
|
||||
|
||||
/* FatFs 映射区 */
|
||||
#define FATFS_PHYSICAL_START_ADDR (0xA00000u)
|
||||
#define FATFS_PHYSICAL_STOP_ADDR (EXFLASH_ADDR_MAX)
|
||||
#define FATFS_PARTITION_SIZE (FATFS_PHYSICAL_STOP_ADDR - FATFS_PHYSICAL_START_ADDR + 1u)
|
||||
#define FATFS_TOTAL_SECTORS (FATFS_PARTITION_SIZE / SPI_SECTOR_SIZE)
|
||||
|
||||
/* 统一对外接口:0=成功,非0=失败 */
|
||||
U8_T v_flash_dataflash_init(void);
|
||||
U8_T s32_flash_dataflash_write(U32_T addr, U8_T *buf, U32_T len);
|
||||
U8_T s32_flash_dataflash_read(U32_T addr, U8_T *buf, U32_T len);
|
||||
U8_T s32_flash_dataflash_erase_sector(U32_T addr);
|
||||
|
||||
/* 兼容旧接口命名 */
|
||||
unsigned int SPI_flsh_ReadID(void);
|
||||
void v_flash_dataflash_fatfs_esaes_sectot(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user