sfd - SPI FLASH操作库#
已适配 Air780E Air780EP
备注
本页文档由这个文件自动生成。如有错误,请提交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