3. sydfs文件系统

Sydfs是系统数据运行的 只读文件系统 ,可以通过sdk里下载目录里的download_bat.c工具加上 -res 命令来下载存放资源文件,并于系统运行时读取;
"下载目录下载内置flash资源"

图1.1 下载目录下载内置flash资源

该文件系统能使用的接口图1.1所示:

"syd 文件系统接口"

图1.2 syd 文件系统接口

备注

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();