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读写、擦除异常 |