sfd - SPI FLASH操作库#

已适配 Air780E/Air700E Air780EP/Air780EPV Air105

备注

本页文档由这个文件自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢!

sfd.init(type, spi_id, spi_cs)#

初始化spi flash

参数

传入值类型

解释

string

类型, 可以是”spi”, 也可以是”zbuff”, 或者”onchip”

int

SPI总线的id, 或者 zbuff实例

int

SPI FLASH的片选脚对应的GPIO, 当类型是spi时才需要传

返回值

返回值类型

解释

userdata

成功返回一个数据结构,否则返回nil

例子

local drv = sfd.init("spi", 0, 17)
if drv then
    log.info("sfd", "chip id", sfd.id(drv):toHex())
end
-- 2023.01.15之后的固件支持onchip类型, 支持直接读写片上flash的一小块区域,一般是64k
-- 这块区域通常是fdb/fskv库所在的区域, 所以不要混着用
local onchip = sfd.init("onchip")
local data = sfd.read(onchip, 0x100, 256)
sfd.erase(onchip, 0x100)
sfd.write(onchip, 0x100, data or "Hi")

sfd.status(drv)#

检查spi flash状态

参数

传入值类型

解释

userdata

sfd.init返回的数据结构

返回值

返回值类型

解释

int

状态值, 0 未初始化成功,1初始化成功且空闲,2正忙

例子

local drv = sfd.init("spi", 0, 17)
if drv then
    log.info("sfd", "status", sfd.status(drv))
end

sfd.read(drv, offset, len)#

读取数据

参数

传入值类型

解释

userdata

sfd.init返回的数据结构

int

起始偏移量

int

读取长度,当前限制在256以内

返回值

返回值类型

解释

string

数据

例子

local drv = sfd.init("spi", 0, 17)
if drv then
    log.info("sfd", "read", sfd.read(drv, 0x100, 256))
end

sfd.write(drv, offset, data)#

写入数据

参数

传入值类型

解释

userdata

sfd.init返回的数据结构

int

起始偏移量

string

需要写入的数据,当前支持256字节及以下

返回值

返回值类型

解释

boolean

成功返回true,失败返回false

例子

local drv = sfd.init("spi", 0, 17)
if drv then
    log.info("sfd", "write", sfd.write(drv, 0x100, "hi,luatos"))
end

sfd.erase(drv, offset)#

擦除数据

参数

传入值类型

解释

userdata

sfd.init返回的数据结构

int

起始偏移量

返回值

返回值类型

解释

boolean

成功返回true,失败返回false

例子

local drv = sfd.init("spi", 0, 17)
if drv then
    log.info("sfd", "write", sfd.erase(drv, 0x100))
end

sfd.id(drv)#

芯片唯一id

参数

传入值类型

解释

userdata

sfd.init返回的数据结构

返回值

返回值类型

解释

string

8字节(64bit)的芯片id

例子

local drv = sfd.init("spi", 0, 17)
if drv then
    log.info("sfd", "chip id", sfd.id(drv))
end