.. _sydfs文件系统: sydfs文件系统 =============================== | Sydfs是系统数据运行的 **只读文件系统** ,可以通过sdk里下载目录里的download_bat.c工具加上 -res 命令来下载存放资源文件,并于系统运行时读取; .. image:: download_syd_file.png :alt: "下载目录下载内置flash资源" :align: center .. centered:: 图1.1 下载目录下载内置flash资源 该文件系统能使用的接口图1.1所示: .. image:: syd_func_ops.png :alt: "syd 文件系统接口" :align: center .. centered:: 图1.2 syd 文件系统接口 .. note:: | 自 **aw30n_v1.3.0** 版本开始,syd文件系统可以直接读取根目录下的文件。 | 即 **download_bat.c** 里的资源文件可以不用打包也能通过syd接口读取文件数据。 | 该功能通过 **cpu_config.c** 里的 **syd_read_root_doc** 变量控制。 | 1:打开; | 0:关闭; ^^^^^^^^^^^^^^^^^^^^ 其中ioctl支持的cmd命令有: ①FS_IOCTL_FILE_TOTAL:: 示例: int file_total; vfs_ioctl(pfile, FS_IOCTL_FILE_TOTAL, (int)&file_total); file_total即为pfile文件所在文件系统的总文件数; ②FS_IOCTL_FS_TOTAL:: 示例: int file_total; vfs_ioctl(pfs, FS_IOCTL_FILE_TOTAL, (int)&file_total); file_total即为pfs文件系统的总文件数; ③FS_IOCTL_FILE_ATTR:: 示例: struct vfs_attr attr; vfs_ioctl(pfile, FS_IOCTL_FILE_ATTR, (int)&attr); attr即可获取pfile文件的位置和大小; * **注意:通过ioctl获取的文件位置仅为该pfile文件在其上层目录下的相对偏移;若要获取该文件相对于flash的偏移地址,需要调用vfs_get_fsize();**