跳转至

sfud - SPI FLASH sfud软件包

sfud.init(spi_id, spi_cs, spi_bandrate)/sfud.init(spi_device)

初始化sfud

参数

传入值类型 解释
int spi_id SPI的ID/userdata spi_device
int spi_cs SPI的片选
int spi_bandrate SPI的频率

返回值

返回值类型 解释
bool 成功返回true,否则返回false

例子

--spi
log.info("sfud.init",sfud.init(0,20,20 * 1000 * 1000))
--spi_device
local spi_device = spi.deviceSetup(0,17,0,0,8,2000000,spi.MSB,1,0)
log.info("sfud.init",sfud.init(spi_device))

sfud.getDeviceNum()

获取flash设备信息表中的设备总数

参数

返回值

返回值类型 解释
int 返回设备总数

例子

log.info("sfud.getDeviceNum",sfud.getDeviceNum())

sfud.getDevice(index)

通过flash信息表中的索引获取flash设备

参数

传入值类型 解释
int index flash信息表中的索引

返回值

返回值类型 解释
userdata 成功返回一个数据结构,否则返回nil

例子

local sfud_device = sfud.getDevice(1)

sfud.getDeviceTable()

获取flash设备信息表

参数

返回值

返回值类型 解释
userdata 成功返回一个数据结构,否则返回nil

例子

local sfud_device = sfud.getDeviceTable()

sfud.chipErase(flash)

擦除 Flash 全部数据

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构

返回值

返回值类型 解释
int 成功返回0

例子

sfud.chipErase(flash)

sfud.erase(flash,add,size)

擦除 Flash 指定地址指定大小,按照flash block大小进行擦除

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构
number add 擦除地址
number size 擦除大小

返回值

返回值类型 解释
int 成功返回0

例子

sfud.erase(flash,add,size)

sfud.read(flash, addr, size)

读取 Flash 数据

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构
int addr 起始地址
int size 从起始地址开始读取数据的总大小

返回值

返回值类型 解释
string data 读取到的数据

例子

log.info("sfud.read",sfud.read(sfud_device,1024,4))

sfud.write(flash, addr,data)

向 Flash 写数据

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构
int addr 起始地址
string data 待写入的数据

返回值

返回值类型 解释
int 成功返回0

例子

log.info("sfud.write",sfud.write(sfud_device,1024,"sfud"))

sfud.eraseWrite(flash, addr,data)

先擦除再往 Flash 写数据

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构
int addr 起始地址
string data 待写入的数据

返回值

返回值类型 解释
int 成功返回0

例子

log.info("sfud.eraseWrite",sfud.eraseWrite(sfud_device,1024,"sfud"))

sfud.getInfo(flash)

获取 Flash 容量和page大小

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构

返回值

返回值类型 解释
int Flash 容量
int page 页大小

例子

log.info("sfud.getInfo",sfud.getInfo(sfud_device))

sfud.mount(flash, mount_point, offset, maxsize)

挂载sfud lfs文件系统

参数

传入值类型 解释
userdata flash Flash 设备对象 sfud.get_device_table()返回的数据结构
string mount_point 挂载目录名
int 起始偏移量,默认0
int 总大小, 默认是整个flash

返回值

返回值类型 解释
bool 成功返回true

例子

log.info("sfud.mount",sfud.mount(sfud_device,"/sfud"))
log.info("fsstat", fs.fsstat("/"))
log.info("fsstat", fs.fsstat("/sfud"))