`
cloudtech
  • 浏览: 4578926 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

MTK文件读写相关

 
阅读更多
**相关文件
文件操作函数的头文件为fs_func.h
常用的文件操作函数有:
extern int FS_Open(const WCHAR * FileName, UINT Flag);
extern int FS_Close(FS_HANDLE FileHandle);
extern int FS_Read(FS_HANDLE FileHandle, void * DataPtr, UINT Length, UINT * Read);
extern int FS_Write(FS_HANDLE FileHandle, void * DataPtr, UINT Length, UINT * Written);
extern int FS_Seek(FS_HANDLE FileHandle, int Offset, int Whence);
extern int FS_Commit(FS_HANDLE FileHandle);
extern int FS_Delete(const WCHAR * FileName);
extern int FS_GetCurrentDir(WCHAR * DirName, UINT MaxLength);
extern int FS_SetCurrentDir(const WCHAR * DirName);
extern int FS_CreateDir(const WCHAR * DirName);
extern int FS_RemoveDir(const WCHAR * DirName);
extern int FS_FindFirst(const WCHAR * NamePattern, BYTE Attr, BYTE AttrMask,

FS_DOSDirEntry * FileInfo, WCHAR * FileName, UINT MaxLength);
extern int FS_FindNext(FS_HANDLE FileHandle, FS_DOSDirEntry * FileInfo, WCHAR *

FileName, UINT MaxLength);

文件操作所用到的数据结构有都放在fs_type.h里,如FS_Open的第二个参数(也即打开模式)列表

如下:
#define FS_READ_WRITE 0x00000000L
#define FS_READ_ONLY 0x00000100L
#define FS_OPEN_SHARED 0x00000200L
#define FS_OPEN_NO_DIR 0x00000400L
#define FS_OPEN_DIR 0x00000800L
#define FS_CREATE 0x00010000L
#define FS_CREATE_ALWAYS 0x00020000L
#define FS_COMMITTED 0x01000000L
#define FS_CACHE_DATA 0x02000000L
#define FS_LAZY_DATA 0x04000000L
#define FS_NONBLOCK_MODE 0x10000000L
#define FS_PROTECTION_MODE 0x20000000L

文件操作的返回值定义放在文件fs_errcode.h,如:
#define FS_NO_ERROR 0
#define FS_ERROR_RESERVED -1
#define FS_PARAM_ERROR -2 /* User */
#define FS_INVALID_FILENAME -3 /* User */
#define FS_DRIVE_NOT_FOUND -4 /* User or Fatal */
#define FS_TOO_MANY_FILES -5 /* User or Normal: use over max file

handle number or more than 256 files in sort */
#define FS_NO_MORE_FILES -6 /* Normal */
#define FS_WRONG_MEDIA -7 /* Fatal */
#define FS_INVALID_FILE_SYSTEM -8 /* Fatal */
#define FS_FILE_NOT_FOUND -9 /* User or Normal */
#define FS_INVALID_FILE_HANDLE -10 /* User or Normal */
#define FS_UNSUPPORTED_DEVICE -11 /* User */
#define FS_UNSUPPORTED_DRIVER_FUNCTION -12 /* User or Fatal */
#define FS_CORRUPTED_PARTITION_TABLE -13 /* fatal */
#define FS_TOO_MANY_DRIVES -14 /* not use so far */
#define FS_INVALID_FILE_POS -15 /* User */
#define FS_ACCESS_DENIED -16 /* User or Normal */
#define FS_STRING_BUFFER_TOO_SMALL -17 /* User */

如果返回值大于0,说明返回正确。

文件操作函数实现放在FSSim_core.c里:如:
int FS_Close(FS_HANDLE File)
{
int map_fh=0;

/* verify file handle */

if (File > FSSIM_MAX_FILE || File <= 0)

return FS_INVALID_FILE_HANDLE;

else if (fssim_file[File].state != STATE_INUSE)

return FS_INVALID_FILE_HANDLE;

else if (fssim_vfgen.link[File] > 0)

map_fh = fssim_vfgen.link[File];

else if (fssim_file[File].handle == INVALID_HANDLE_VALUE)

return FS_INVALID_FILE_HANDLE;

/* close the file handle */
fssim_take_mutex(fssim_mutex); /* critical section { */
if (map_fh > 0) {

fssim_vfgen.link[File] = 0;

} else {

fssim_close_fh(File);
}
fssim_give_mutex(fssim_mutex); /* critical section } */

fssim_free_fh(File);

return FS_NO_ERROR;
}

**文件系统
MTK使用FAT文件系统,对于模拟器文件系统放在目录WIN32FS下,如DRIVE_C、DRIVE_D等等。例如:
FS_Open(L"C://a.txt", FS_READ_ONLY);
上面语句以读模式打开C盘下的a.txt文件,文件名的字符编码是UCS-2。
分享到:
评论

相关推荐

    MTK文件操作常用函数

    MTK文件操作常用函数

    mtk中NVRAM的读写方法

    NVRAM 的读写方法 NVRAM 的添加方法 以闹钟INLINE 菜单为例 步骤如下: 1.在Nvram_common_defs.h 文件中添加LID 选项到nvram_lid_co mmapp_enum 枚举中 NVRAM_EF_MY_LID, /* Add LID with its compile optoin...

    MTK 深入浅出(笔记整理)

    MTK 层的基础知识笔记/MTK 层的应用/MTK 写窗口/MTK编程起步——常用函数及宏定义/MTK拨号字体大小/mtk常用函数/MTK的DM应用实例/MTK的层和它的一些层函数/MTK的高亮机制/MTK之GPIO设置函数/MTK文件读写相关.....

    mtk flash刷机和读取完好机器软件的工具

    随后平台会自动调用BIN文件(升级文件)。 3、第三个是选串口,(具体查看设备管理器里的升级线安装在哪个COM口)。 4、注意Options选项里的Format FAT中选Do Not Format FAT,意思是不要格式化,否则会导致信号弱,...

    MTK芯片机型线刷免授权解锁修复NV 固件转换 读取分区 制作线刷包工具双版

    资源说明; 1----mtk芯片机型线刷免权限 2----未绕授权的时候,mtk端口不稳定,绕授权后端口会稳定下来。明白的都明白 3----备份Preloader分区...相关介绍:https://blog.csdn.net/u011283906/article/details/125274060

    android串口读写

    写了一个demo,放到源码下面编译,对dev/ttyMT1进行操作,在系统的init.rc里面要把dev/ttyMT1的权限改一下才能读写。

    MTK学习资料(比较全,正在完善中)

    已经更新资源了,请下载另外一下资源,里面有短信详细说明, 资源和菜单加载 文件读写 SIM卡 网络相关资料 工具使用 make命令

    MTK学习笔记,适合做SP(短信,网络和MTK基本的操作)

    适合做SP(短信,网络和MTK基本的操作)

    android 修改串口读写权限

    网上好多不会修改android串口的权限,上传脚本文件供大家使用,公司真实环境无私奉献出来。

    文件可读可写但不可删的Demo

    使用CFile::Open函数打开文件,使得删除文件时提示正在被使用,但可用CFile::Read及CFile::Write进行正常读写。 不足: 未验证其他方式可否读写文件。如使用GetPrivateProfileString和WritePrivateProfileString...

    高通机型修改QCN工具 可修改ESN SPC IMEI MEID码

    工具可以修改基带qcn里面的ESN 参数, SPC参数 , IMEI参数, MEID参数 带操作图示说明 qcn是高通机型备份的...关于基带参数更改 修复可以参考我相关博文 https://blog.csdn.net/u011283906?spm=1011.2124.3001.5343

    山寨机读写平台

    展讯2011新平台v6.0全面更新! 更新市面上最新字库支持引导及准确扫描! 最新V6.0展读平台是全新实用安全快速省秒的全面化集成为一体的帅虎仪器展讯平台: !...无需选择引导文件让你轻松上手快速简单的完成。

    LCD大厂面试问题汇总整理,从头到尾全讲解

    数据类型、数组、链表、函数、结构体、进程线程、锁、文件读写,lcd bringup流程,kernel阶段,UART与I2C,dts设备树,拿到新板子如何抓LK阶段log,MTK启动流程分析,花屏、分屏等常见bug讲解,标准I/O与系统I/O区别...

    U盘电路图源文件分享.7z

    u盘,全称USB闪存盘,英文名“USB flash disk”。它是一种使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即...这里讨论的是U盘的电路板设计,如何设计可以有效提升U盘的读写能力。

Global site tag (gtag.js) - Google Analytics