Initial import of NFC GNSS SDK project

This commit is contained in:
chenjintao
2026-09-15 16:10:12 +08:00
commit 2746cc3d4e
3070 changed files with 892062 additions and 0 deletions
@@ -0,0 +1,142 @@
/*================================================================
Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
Quectel Wireless Solutions Proprietary and Confidential.
=================================================================*/
#ifndef _QUEC_FLASHRW_H_
#define _QUEC_FLASHRW_H_
#define FLASH_RW_ERROR 1
/*****************************************************************
* Function: CHECK_FLASH_AREA_ADDR_CONFIG
*
* Description:
* 初始化被保护分区的分区信息
*
* Parameters:
* void
*
* Return:
* 0:初始化成功
*
*
*****************************************************************/
UINT32 CHECK_FLASH_AREA_ADDR_CONFIG(void);
//检查指定的Flash地址和大小是否可以被擦除
//flash_addr:要擦除Flash地址
//flash_size:擦除的大小
//rw_flag:是否记录此次擦除,0,不记录;1,记录
UINT32 FLASH_LIMIT_ALLOW_AREA(UINT32 flash_addr,UINT32 flash_size,BOOL rw_flag);
//记录flash_addr所在分区的第几个block,被擦除的次数
UINT32 Flash_erase_count_Set(UINT32 flash_addr,UINT32 size);
int quec_erase_block(int blk_index, unsigned int disable_protect);
/*****************************************************************
* Function: ql_norflash_get_addr
*
* Description:
* Get partition address
*
* Parameters:
* patition_name [in] partition name
* start_addr [out] partition addr
* src [out] partition size
*
* Return:
* NULL
*
*
*****************************************************************/
void quec_norflash_get_addr(unsigned char *patition_name, unsigned int *start_addr, unsigned int *size);
/*****************************************************************
* Function: ql_norflash_do_read
*
* Description:
* Read a section of a partition
*
* Parameters:
* patition_name [in] partition name
* start_addr [in] The address from which data is to be read
* buf_addr [out] Read the data storage address
* size [in] Read the data size
* Return:
* 0:sucess; 1:fail
*
*
*****************************************************************/
unsigned int quec_norflash_do_read(unsigned char *patition_name, unsigned int addr, unsigned int buf_addr, unsigned int size);
/*****************************************************************
* Function: ql_norflash_do_write
*
* Description:
* write a section of a partition
*
* Parameters:
* patition_name [in] partition name
* start_addr [in] The address from which data is to be write
* buf_addr [in] write the data address
* size [in] write the data size
* Return:
* 0:sucess; 1:fail
*
*
*****************************************************************/
unsigned int quec_norflash_do_write(unsigned char *patition_name, unsigned int addr, unsigned int buf_addr, unsigned int size);
/*****************************************************************
* Function: ql_norflash_do_erase
*
* Description:
* erase a section of a partition
*
* Parameters:
* patition_name [in] partition name
* start_addr [in] The address from which data is to be erase
* size [in] write the data size
*
* Return:
* NULL
*
*
*****************************************************************/
int quec_norflash_do_erase(unsigned char *patition_name, unsigned int addr, unsigned int size);
/*****************************************************************
* Function: ql_norflash_read_id
*
* Description:
* get flash id
*
* Parameters:
* NULL
*
*
*
* Return:
* NULL
*
*
*****************************************************************/
int quec_norflash_read_id(void);
UINT32 get_quec_cfg_start_address(void);
#ifdef QUEC_NORFLASH_ERASE_OPTIMIZE
#define CHIP_SECTOR_SIZE 0x1000 //erase 4k each times
#define CHIP_BLOCK_SIZE 0x10000 //erase 4k each times
typedef enum
{
Record_type_Block,
Record_type_Page
}quec_Record_type_enum;
int quec_repair_erase_get_parti_name_valid(char* parti_name);
#endif
#endif