7.5.1. Flash 示例代码
#include <gx_flash_common.h>
#include <gx_flash.h>
int flash_example(void)
{
GX_FLASH_DEV *dev;
int flash_size;
int erase_size;
unsigned char buffer[100];
// Flash 功能初始化
// 该接口只需要调用一次
dev = gx_spi_flash_probe(0,0,0,0);
// 获取 Flash 容量大小
flash_size = gx_spi_flash_getinfo(dev, GX_FLASH_CHIP_SIZE);
// 获取 Flash 擦除块大小,擦除的地址必须是擦除块对齐的,擦除大小必须是擦除块的整数倍
erase_size = gx_spi_flash_getinfo(dev, GX_FLASH_ERASE_SIZE);
// 指定地址和长度擦除 Flash
gx_spi_flash_erasedata(dev, 0, erase_size);
// 指定地址和长度写 Flash
gx_spi_flash_pageprogram(dev, 0, buffer, 100);
// 指定地址和长度读取 Flash
gx_spi_flash_readdata(dev, 0, buffer, 100);
return 0;
}
GX8002x提供了一套更精简的接口,基于精简接口的示例代码
#include <gx_flash_common.h>
#include <gx_flash.h>
int flash_example(void)
{
int flash_size;
int erase_size;
unsigned char buffer[100];
// Flash 功能初始化
// 该接口只需要调用一次
gx_spinor_flash_init()
// 获取 Flash 容量大小
flash_size = gx_spinor_flash_getinfo(GX_FLASH_CHIP_SIZE);
// 获取 Flash 擦除块大小,擦除的地址必须是擦除块对齐的,擦除大小必须是擦除块的整数倍
erase_size = gx_spinor_flash_getinfo(GX_FLASH_ERASE_SIZE);
// 指定地址和长度擦除 Flash
gx_spinor_flash_erasedata(0, erase_size);
// 指定地址和长度写 Flash
gx_spinor_flash_pageprogram(0, buffer, 100);
// 指定地址和长度读取 Flash
gx_spinor_flash_readdata(0, buffer, 100);
return 0;
}