xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_vfs_port.h 文件参考

xt_vfs 可移植层——锁宏、内存宏、线程上下文 更多...

#include "xtiny.h"
#include "cmsis_os2.h"

浏览该文件的源代码.

结构体

struct  xt_vfs_thread_ctx
 线程上下文——存储每线程 errno 和可选 CWD 更多...
struct  xt_vfs_config
 VFS 初始化配置 更多...

宏定义

#define XT_VFS_ENABLE_THREAD_SAFE   1
 线程安全开关,1=启用互斥锁,0=裸机无锁
#define XT_VFS_USE_HEAP   1
 堆内存开关,1=使用 xt_malloc,0=外部/静态内存
#define XT_VFS_ENABLE_STATIC_TEST   0
 相对路径(CWD)开关,1=启用 chdir/getcwd
#define XT_VFS_PATH_MAX   128
 最大路径长度(含结尾 '\0')
#define XT_VFS_FILENAME_MAX   64
 最大文件名长度(含结尾 '\0')
#define XT_VFS_MOUNT_PREFIX_MAX   16
 挂载前缀最大长度,xt_vfs_mount_t.prefix 数组大小
#define XT_VFS_MAX_MOUNTS   4
 最大挂载点数(静态模式)
#define XT_VFS_MAX_FILES   8
 最大同时打开文件数(静态模式)
#define XT_VFS_MAX_DIRS   4
 最大同时打开目录数(静态模式)
#define XT_VFS_MAX_THREADS   8
 最大线程上下文槽位数
#define XT_VFS_LOCK_DEF()
 在结构体中声明锁变量
#define XT_VFS_LOCK_INIT(vfs)
 初始化锁(创建 mutex 对象)
#define XT_VFS_LOCK(vfs)
 获取锁(阻塞等待)
#define XT_VFS_UNLOCK(vfs)
 释放锁
#define XT_VFS_LOCK_DEINIT(vfs)
 销毁锁(删除 mutex 对象)
#define XT_VFS_MALLOC(size)
 堆模式:使用 xt_malloc/xt_free/xt_calloc
#define XT_VFS_FREE(ptr)
#define XT_VFS_CALLOC(n, sz)

类型定义

typedef struct xt_vfs_thread_ctx xt_vfs_thread_ctx_t
 线程上下文——存储每线程 errno 和可选 CWD
typedef struct xt_vfs_config xt_vfs_config_t
 VFS 初始化配置

详细描述

xt_vfs 可移植层——锁宏、内存宏、线程上下文

作者
your name (you@d.nosp@m.omai.nosp@m.n.com)
版本
0.1
日期
2026-06-16

SPDX-FileCopyrightText: 2026 深圳市天工聚创科技有限公司 SPDX-License-Identifier: Apache-2.0

在文件 xt_vfs_port.h 中定义.

宏定义说明

◆ XT_VFS_CALLOC

#define XT_VFS_CALLOC ( n,
sz )
值:
xt_calloc(n, sz)
#define xt_calloc(count, size)

在文件 xt_vfs_port.h 第 138 行定义.

◆ XT_VFS_ENABLE_STATIC_TEST

#define XT_VFS_ENABLE_STATIC_TEST   0

相对路径(CWD)开关,1=启用 chdir/getcwd

目录功能开关,1=启用目录操作,0=仅文件操作

静态内存测试模式,1=强制静态+固定数组

在文件 xt_vfs_port.h 第 48 行定义.

◆ XT_VFS_ENABLE_THREAD_SAFE

#define XT_VFS_ENABLE_THREAD_SAFE   1

线程安全开关,1=启用互斥锁,0=裸机无锁

在文件 xt_vfs_port.h 第 28 行定义.

◆ XT_VFS_FILENAME_MAX

#define XT_VFS_FILENAME_MAX   64

最大文件名长度(含结尾 '\0')

在文件 xt_vfs_port.h 第 58 行定义.

◆ XT_VFS_FREE

#define XT_VFS_FREE ( ptr)
值:
xt_free(ptr)
#define xt_free(ptr)

在文件 xt_vfs_port.h 第 137 行定义.

◆ XT_VFS_LOCK

#define XT_VFS_LOCK ( vfs)
值:
osMutexAcquire((vfs)->_vfs_lock, osWaitForever)

获取锁(阻塞等待)

在文件 xt_vfs_port.h 第 102 行定义.

◆ XT_VFS_LOCK_DEF

#define XT_VFS_LOCK_DEF ( )
值:
osMutexId_t _vfs_lock

在结构体中声明锁变量

在文件 xt_vfs_port.h 第 93 行定义.

◆ XT_VFS_LOCK_DEINIT

#define XT_VFS_LOCK_DEINIT ( vfs)
值:
do { \
if ((vfs)->_vfs_lock != NULL) { \
osMutexDelete((vfs)->_vfs_lock); \
(vfs)->_vfs_lock = NULL; \
} \
} while (0)

销毁锁(删除 mutex 对象)

在文件 xt_vfs_port.h 第 108 行定义.

◆ XT_VFS_LOCK_INIT

#define XT_VFS_LOCK_INIT ( vfs)
值:
do { \
(vfs)->_vfs_lock = osMutexNew(NULL); \
} while (0)

初始化锁(创建 mutex 对象)

在文件 xt_vfs_port.h 第 96 行定义.

◆ XT_VFS_MALLOC

#define XT_VFS_MALLOC ( size)
值:
xt_malloc(size)
#define xt_malloc(size)

堆模式:使用 xt_malloc/xt_free/xt_calloc

在文件 xt_vfs_port.h 第 136 行定义.

◆ XT_VFS_MAX_DIRS

#define XT_VFS_MAX_DIRS   4

最大同时打开目录数(静态模式)

在文件 xt_vfs_port.h 第 78 行定义.

◆ XT_VFS_MAX_FILES

#define XT_VFS_MAX_FILES   8

最大同时打开文件数(静态模式)

在文件 xt_vfs_port.h 第 73 行定义.

◆ XT_VFS_MAX_MOUNTS

#define XT_VFS_MAX_MOUNTS   4

最大挂载点数(静态模式)

在文件 xt_vfs_port.h 第 68 行定义.

◆ XT_VFS_MAX_THREADS

#define XT_VFS_MAX_THREADS   8

最大线程上下文槽位数

在文件 xt_vfs_port.h 第 83 行定义.

◆ XT_VFS_MOUNT_PREFIX_MAX

#define XT_VFS_MOUNT_PREFIX_MAX   16

挂载前缀最大长度,xt_vfs_mount_t.prefix 数组大小

在文件 xt_vfs_port.h 第 63 行定义.

◆ XT_VFS_PATH_MAX

#define XT_VFS_PATH_MAX   128

最大路径长度(含结尾 '\0')

在文件 xt_vfs_port.h 第 53 行定义.

◆ XT_VFS_UNLOCK

#define XT_VFS_UNLOCK ( vfs)
值:
osMutexRelease((vfs)->_vfs_lock)

释放锁

在文件 xt_vfs_port.h 第 105 行定义.

◆ XT_VFS_USE_HEAP

#define XT_VFS_USE_HEAP   1

堆内存开关,1=使用 xt_malloc,0=外部/静态内存

在文件 xt_vfs_port.h 第 33 行定义.

类型定义说明

◆ xt_vfs_config_t

VFS 初始化配置

根据 XT_VFS_USE_HEAP 选择内存来源:

  • HEAP=1:忽略 mem_* 字段,内部 xt_calloc 分配
  • HEAP=0 且 mem 非空:使用外部传入内存
  • HEAP=0 且 mem 为空:使用 XT_VFS_MAX_* 宏固定数组

◆ xt_vfs_thread_ctx_t

线程上下文——存储每线程 errno 和可选 CWD