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;
}

results matching ""

    No results matching ""