更新硬件SDK

This commit is contained in:
kerwincui
2023-03-04 03:44:56 +08:00
parent dcdf6e1b7c
commit e39d3d2f03
1900 changed files with 663153 additions and 0 deletions

View File

@@ -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); // 注意释放内存
```