SPIFLASH

简要说明

spiflash驱动通过spi总线对外设flash进行读写、擦除操作。

接口描述

csi_spiflash_initialize

spiflash_handle_t csi_spiflash_initialize(int32_t idx, spiflash_event_cb_t cb_event);
  • 功能描述:

    • spi flash设备初始化。
  • 参数:

    • idx: 设备号。

    • cb_event: spiflash实例事件回调函数,应用可根据回调函数做相应的操作行为。回调函数原型定义见spiflash_event_cb_t。

      回调函数类型spiflash_event_cb_t定义如下:

      typedef void (*spiflash_event_cb_t)(int32_t idx, spiflash_event_e event);
      

      其中idx为设备号,event 为传给回调函数的事件类型。

      spiflash 回调事件枚举类型见 spiflash_event_e 定义。

  • 返回值:

    • NULL:初始化失败
    • 其他:实例句柄。

spiflash_event_e:

名字 定义 备注
SPIFLASH_EVENT_READY SPIFLASH 准备就绪事件
SPIFLASH_EVENT_ERROR SPIFLASH读写、擦除异常事件

csi_spiflash_uninitialize

int32_t csi_spiflash_uninitialize(spiflash_handle_t handle);
  • 功能描述:
    • spi flash实例反初始化。
  • 参数:
    • handle: spi flash 实例句柄。
  • 返回值:
    • 0:成功
    • 其他:错误码。

csi_spiflash_get_capabilities

spiflash_capabilities_t csi_spiflash_get_capabilities(int32_t idx);
  • 功能描述:
    • 获取spi flash的功能列表。
  • 参数:
    • idx: spi flash 设备号。
  • 返回值:
    • spi flash 功能表,1表示具备该功能,0表示不支持该功能,见spiflash_capabilities_t定义。
名称 定义 备注
event_ready flash就绪信号
data_width 0:数据宽度8bit;1:数据宽度16bit;2:数据宽度32bit
erase_chip 正片擦除

csi_spiflash_read

int32_t csi_spiflash_read(spiflash_handle_t handle, uint32_t addr, 
                          void *data, uint32_t cnt);
  • 功能描述:
    • 从flash中读取数据。
  • 参数:
    • handle: spi flash 实例句柄。
    • addr: flash地址
    • data: 读取数据的存储区
    • cnt: 读数长度
  • 返回值:
    • 0:成功
    • 其他:错误码。

csi_spiflash_program

int32_t csi_spiflash_program(spiflash_handle_t handle, uint32_t addr, const void *data,                              uint32_t cnt);
  • 功能描述:
    • 向flash 写入数据。
  • 参数:
    • handle: spi flash 实例句柄。
    • addr: flash地址
    • data: 写入数据的存储区
    • cnt: 写入长度
  • 返回值:
    • 0:成功
    • 其他:错误码。

csi_spiflash_erase_sector

int32_t csi_spiflash_erase_sector(spiflash_handle_t handle, uint32_t addr);
  • 功能描述:
    • 擦除flash扇区。
  • 参数:
    • handle: spi flash 实例句柄。
    • addr: 要擦除的flash地址
  • 返回值:
    • 0:成功
    • 其他:错误码。

csi_spiflash_erase_chip

int32_t csi_spiflash_erase_chip(spiflash_handle_t handle);
  • 功能描述:
    • 擦除整片flash。
  • 参数:
    • handle: spi flash 实例句柄。
  • 返回值:
    • 0:成功
    • 其他:错误码。

csi_spiflash_get_info

spiflash_info_t *csi_spiflash_get_info(spiflash_handle_t handle);
  • 功能描述:
    • 获取flash设备信息。
  • 参数:
    • handle: spi flash 实例句柄。
  • 返回值:
    • NULL:失败
    • 其他:存储设备信息的地址,参见spiflash_handle_t定义。
名称 定义 备注
start flash起始地址
end flash结束地址
sector_count flash扇区个数
sector_size flash扇区大小(bytes)
page_size 页大小(bytes)
program_unit 最小可写入单位(bytes)
erased_value 擦除后存储区数值(一般为0xff)

csi_spiflash_get_status

spiflash_status_t csi_spiflash_get_status(spiflash_handle_t handle);
  • 功能描述:
    • 获取flash状态。
  • 参数:
    • handle: spi flash 实例句柄。
  • 返回值:
    • flash 状态,见spiflash_status_t定义。
名称 定义 备注
busy flash忙碌中,正在执行操作
error flash读写、擦除异常

results matching ""

    No results matching ""