mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-21 18:35:54 +08:00
更新硬件SDK
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# 文件系统API说明
|
||||
|
||||
## 概述
|
||||
|
||||
* 文件系统的主体是littlefs, 总空间288k, 可用100k左右.
|
||||
* 有多套API, 各有特色, 但不应该混用
|
||||
|
||||
## Osa文件API
|
||||
|
||||
位于 `osasys.h`, 只有少量函数, 与posix API 类似. 不涉及目录操作
|
||||
|
||||
```c
|
||||
OSAFILE OsaFopen(const char *fileName, const char* mode);
|
||||
INT32 OsaFtell(OSAFILE fp);
|
||||
INT32 OsaFclose(OSAFILE fp);
|
||||
UINT32 OsaFread(void *buf, UINT32 size, UINT32 count, OSAFILE fp);
|
||||
UINT32 OsaFwrite(void *buf, UINT32 size, UINT32 count, OSAFILE fp);
|
||||
INT32 OsaFseek(OSAFILE fp, INT32 offset, UINT8 seekType);
|
||||
UINT32 OsaFremove(const char *fileName);
|
||||
```
|
||||
|
||||
通用调用逻辑:
|
||||
```c
|
||||
#define BUFF_SIZE (512)
|
||||
char buff[BUFF_SIZE];
|
||||
UINT32 rlen = 0;
|
||||
OSAFILE fp = OsaFopen("fs_test", "r");
|
||||
if (fp) { // 若成功, 必不为NULL
|
||||
// 读写数据
|
||||
while ((rlen = OsaFread(buff, BUFF_SIZE, 1, fp)) > 0) {
|
||||
// 处理读取到的数据
|
||||
}
|
||||
OsaFclose(fp);
|
||||
}
|
||||
```
|
||||
|
||||
## LiffteFs 文件API
|
||||
|
||||
在原始的lifftefs上, 封装成 `lfs_port.h`
|
||||
|
||||
注意:
|
||||
|
||||
* 不要调用 `LFS_init` `LFS_deinit` , 底层会自行处理
|
||||
* API 均以 `LFS_` 开头, 为同步阻塞且线程安全的函数. 与原生lifftefs的API基本上一一对应
|
||||
|
||||
通用调用逻辑:
|
||||
```c
|
||||
#define BUFF_SIZE (512)
|
||||
char buff[BUFF_SIZE];
|
||||
UINT32 rlen = 0;
|
||||
int ret = 0;
|
||||
lfs_file_t *file = malloc(sizeof(lfs_file_t));
|
||||
if (file == NULL) {
|
||||
// 内存分配出错
|
||||
return -1;
|
||||
}
|
||||
ret = LFS_fileOpen(file, "fs_test", LFS_O_RDONLY);
|
||||
if (ret == LFS_ERR_OK) { // 若成功, 必不为NULL
|
||||
// 读写数据
|
||||
while ((rlen = LFS_fileRead(file, buff, BUFF_SIZE)) > 0) {
|
||||
// 处理读取到的数据
|
||||
}
|
||||
LFS_fileClose(file);
|
||||
}
|
||||
free(file); // 注意释放内存
|
||||
```
|
||||
Reference in New Issue
Block a user