合宙Air724UG LuatOS-Air core API--io

该文详细介绍了Io接口提供的各种文件操作方法,包括判断文件是否存在、读取和写入文件内容、获取文件信息、读取文件流、打开和关闭目录、挂载和卸载文件系统分区以及OTP(One-TimeProgrammable)数据的读写、擦除和锁定操作。这些接口对于设备存储管理和数据处理至关重要。
摘要由CSDN通过智能技术生成

Table of Contents
io
io.exists(path)
io.readFile(path)
io.writeFile(path, content, mode)
io.pathInfo(path)
io.fileSize(path)
io.readStream(path, offset, len)
io.opendir(path)
io.readdir()
io.closedir()
io.mount(flashType[,path][,size][,offset][,clock])
io.unmount(flashType[,path][,size][,offset][,clock])`
io.format(flashType[,path][,size][,offset][,clock])
io.otp_write(address, buf)
io.otp_read(address, size)
io.otp_erase(address, size)
io.otp_lock(address, size)
io.write_sfile(path, buf)
io
文件操作接口

io.exists(path)
判断文件是否存在

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.mp3”
返回值

返回值 类型 释义 取值
res bool bool,存在为true,不存在为false 1/0
例子

local ex = io.exists(“/ldata/call.mp3”)

详细指南和示例参考:指南 示例

io.readFile(path)
读取文件并返回文件的内容

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.txt”
返回值

返回值 类型 释义 取值
res string string,文件的内容 文件不存在返回nil
例子

local ex = io.readFile(“/ldata/call.mp3”)

详细指南和示例参考:指南 示例

io.writeFile(path, content, mode)
写入文件指定的内容,默认为覆盖二进制模式

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.txt”
path string content,文件内容
path string mode,文件写入模式 默认"w+b",支持:
“w"或者"w+b”:空文件写入模式,
如果文件不存在,则新建文件,然后从起始位置开始写入;
如果文件存在,则删除已有内容,然后从起始位置开始写入

“a"或者"a+b”:追加写入模式,
如果文件不存在,则新建文件,然后从起始位置开始写入;
如果文件存在,则从文件末尾开始追加写入
返回值

返回值 类型 释义 取值
res boolean 文件写入结果,true写入成功;false写入失败 1/0
例子

local c = io.writeFile(“/ldata/call.txt”,“test”)

详细指南和示例参考:指南 示例

io.pathInfo(path)
将文件路径分解为table信息

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.txt”
返回值

返回值 类型 释义 取值
res table {dirname=“/ldata/”,filename=“call.txt”,basename=“call”,extname=“.txt”}
例子

local p = io.pathInfo(“/ldata/call.txt”)

详细指南和示例参考:指南 示例

io.fileSize(path)
返回文件大小

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.txt”
返回值

返回值 类型 释义 取值
res number 文件大小
例子

local cnt = io.fileSize(“/ldata/call.txt”)

详细指南和示例参考:指南 示例

io.readStream(path, offset, len)
返回指定位置读取的字符串

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.txt”
offset number 要读取的指定位置,相对于文件开头的偏移位置
len number 要读取的字节数
返回值

返回值 类型 释义 取值
res string 返回要读取的数据 读取失败返回nil
详细指南和示例参考:指南 示例

io.opendir(path)
打开文件系统目录

参数

参数 类型 释义 取值
path string 文件系统目录路径 字符串
返回值

返回值 类型 释义 取值
res number 1:表示成功,0:表示失败 1/0
例子

–[[
–当需要打开SD 卡 目录时
io.opendir(“/sdcard0”)
]]

详细指南和示例参考:指南 示例

io.readdir()
读取目录信息

参数

返回值

返回值 类型 释义 取值
res number 文件类型
res string 文件名称
res number 文件大小
例子

–[[
–如果成功会返回三个参数,分别是文件类型,文件名称,文件大小(如果还是目录则为-1,无实际意义;如果是文件,则是文件实际大小),如果失败或者读取完成返回空(nil)
E_FS_ATTR_DEFAULT = 0,
// read-only
E_FS_ATTR_RO = 1,
// hidden
E_FS_ATTR_HIDDEN = 2,
// system
E_FS_ATTR_SYSTEM = 4,
// volume label
E_FS_ATTR_VOLUME = 8,
// directory
E_FS_ATTR_DIR = 16,
// archived
E_FS_ATTR_ARCHIVE = 32,
]]

详细指南和示例参考:指南 示例

io.closedir()
关闭文件系统目录

参数

返回值

返回值 类型 释义 取值
res number 1:表示成功,0:表示失败 1/0
例子

–[[
–必须关闭才能再次打开目录
]]

详细指南和示例参考:指南 示例

io.mount(flashType[,path][,size][,offset][,clock])
挂载文件系统分区

参数

参数 类型 释义 取值
flashType number //SD卡
//内部flash
//外挂flash, LCD复用管脚,V_LCD供电
//外挂flash, 使用GPIO pin脚复用,V_PAD_1V8供电 //io.SDCARD
//io.INTERNAL
//io.EXTERN_PINLCD
//io.EXTERN_PINGPIO
path string 字符串长度>=5第一个字节为’/’ mount的文件系统根目录
size string 要考虑字节对齐 分区的大小
offset string flash 地址偏移量
clock string spi传输速率 clock=166M/clkDiv,2<clkDiv<255,默认40000000
返回值

返回值 类型 释义 取值
res number 1:表示成功,0:表示失败 1/0
例子


local fg=io.mount(io.SDCARD)
local fg=io.mount(io.EXTERN_PINGPIO,“/ext1”,0x400000,0x400000,50000000)
–[[
参数:当flashType为io.SDCARD时,有效参数为flashType。
当flashType为io.INTERNAL或io.EXTERN_PINLCD或io.EXTERN_PINGPIO时
有效参数为flashType,path,size,offset,clock。其中path,size为必选参数,
必须传入有效值,并且size不能为0。

注意:
分区path必须大于5字节,并且前面第一个字节为’/‘。多个分区的前五个字节不能相同。
分区操作的时候size必须考虑字节对齐。
挂载不上就调用io.format()格式化,就可以读写外挂flash。
]]

详细指南和示例参考:指南 示例

io.unmount(flashType[,path][,size][,offset][,clock])`
卸载文件系统分区

参数

参数 类型 释义 取值
flashType number //SD卡
//内部flash
//外挂flash, LCD复用管脚,V_LCD供电
//外挂flash, 使用GPIO pin脚复用,V_PAD_1V8供电 //io.SDCARD
//io.INTERNAL
//io.EXTERN_PINLCD
//io.EXTERN_PINGPIO
path string 字符串长度>=5第一个字节为’/’ mount的文件系统根目录
size string 要考虑字节对齐 分区的大小
offset string flash 地址偏移量
clock string spi传输速率 clock=166M/clkDiv,2<clkDiv<255,默认40000000
返回值

返回值 类型 释义 取值
res number 1:表示成功,0:表示失败 1/0
例子

–[[
参数:
当flashType为io.SDCARD时,有效参数flashType
否则有效参数flashType,path,size,offset,clock
注意:
分区path必须大于5字节,并且前面第一个字节为’/‘。多个分区的前五个字节不能相同。
分区操作的时候size必须考虑字节对齐
]]

详细指南和示例参考:指南 示例

io.format(flashType[,path][,size][,offset][,clock])
格式化文件系统分区

参数

参数 类型 释义 取值
flashType number //SD卡
//内部flash
//外挂flash, LCD复用管脚,V_LCD供电
//外挂flash, 使用GPIO pin脚复用,V_PAD_1V8供电 //io.SDCARD
//io.INTERNAL
//io.EXTERN_PINLCD
//io.EXTERN_PINGPIO
path string 字符串长度>=5第一个字节为’/’ mount的文件系统根目录
size string 要考虑字节对齐 分区的大小
offset string flash 地址偏移量
clock string spi传输速率 clock=166M/clkDiv,2<clkDiv<255,默认40000000
返回值

返回值 类型 释义 取值
res number 1:表示成功,0:表示失败 1/0
例子


local fg=io.format(io.EXTERN_PINGPIO,“/ext1”,0x400000,0x400000,50000000)
–[[
参数:
当flashType为io.SDCARD时,有效参数flashType
否则有效参数flashType,path,size,offset,clock
注意:
分区path必须大于5字节,并且前面第一个字节为’/‘。多个分区的前五个字节不能相同。
分区操作的时候size必须考虑字节对齐
]]

详细指南:指南

io.otp_write(address, buf)
写OTP数据

参数

参数 类型 释义 取值
address number 地址 0~2048
buf string 写数据的内容
返回值

返回值 类型 释义 取值
ret number 1:表示成功,0:表示失败 1/0
例子

otp的总大小为2个block,1个block大小为1024
address+bufsize<=2048
io.otp_write(0,“1234567890”)

io.otp_read(address, size)
读OTP数据

参数

参数 类型 释义 取值
address number 地址 0~2048
size number 读数据的大小
返回值

返回值 类型 释义 取值
ret string 上报数据的内容
例子

otp的总大小为2个block,1个block大小为1024
address+size<=2048
io.otp_read(0, 256)

io.otp_erase(address, size)
擦OTP数据

参数

参数 类型 释义 取值
address number 地址 0~2048
size number 数据的大小
返回值

返回值 类型 释义 取值
ret number 1:表示成功,0:表示失败 1/0
例子

otp的总大小为2个block,1个block大小为1024
擦的大小以block大小对齐即1024
擦的数据在一个block内时擦当前block,在两个block内时擦两个block
io.otp_erase(0, 1024)

io.otp_lock(address, size)
锁OTP数据

参数

参数 类型 释义 取值
address number 地址 0~2048
size number 数据的大小
返回值

返回值 类型 释义 取值
ret number 1:表示成功,0:表示失败 1/0
例子

otp的总大小为2个block,1个block大小为1024
锁的大小以block大小对齐即1024
锁的数据在一个block内时锁当前block,在两个block内时锁两个block
address+size<=2048
io.otp_lock(0, 1024)

io.write_sfile(path, buf)
写入文件指定的内容(掉电保护)

参数

参数 类型 释义 取值
path string 文件全名 例如:“/ldata/call.txt”
buf string 写数据的内容
返回值

返回值 类型 释义 取值
ret number 数据长度 写入成功返回数据长度,失败返回0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值