找回密码
 注册
搜索
查看: 1764|回复: 8

[讨论] 关于MTK的FS!

[复制链接]
发表于 2006-1-16 13:39:00 | 显示全部楼层 |阅读模式
请问各位,在WINDOWS环境下是怎么模拟MTK的FILE SYSTEM的啊?
请各位不吝赐教!
谢谢!
发表于 2006-1-16 16:01:00 | 显示全部楼层
<P>MTK的模拟器是通过调用VC函数CreateFile等实现模拟文件系统的。</P><P>在D:\project\workdir\FSSIM_ROOT目录下模拟手机档案文件系统。</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-1-17 08:40:00 | 显示全部楼层
<P>谢谢!</P><P>能不能说的详细点呢?</P>
点评回复

使用道具 举报

发表于 2006-1-17 08:41:00 | 显示全部楼层
<P>pc 上 MTK有个路径的转化过程:即d:\fs.txt =&gt;drive_d:\fs.txt。所以只要在pc上阻止这个就可。</P><P>具体参照:static void fssim_retrieve_fn(TCHAR *filename)   static void fssim_conv_fn(TCHAR *dst, const TCHAR *src)</P><P>我用的6217!</P>
点评回复

使用道具 举报

 楼主| 发表于 2006-1-17 09:04:00 | 显示全部楼层
我有个文件,怎样把它挂在FS下面,并且能读写呢?
点评回复

使用道具 举报

发表于 2006-1-17 13:59:00 | 显示全部楼层
<P>搞不懂 你说什么意思? 是否就是操作文件呢! 若是,参照dem</P><P 0cm 0cm 0pt; TEXT-INDENT: 18pt; mso-char-indent-count: 1.5"><FONT size=3><FONT face="Times New Roman">#include "fs_type.h"<p></p></FONT></FONT></P><P 0cm 0cm 0pt; TEXT-INDENT: 18pt; mso-char-indent-count: 1.5"><FONT size=3><FONT face="Times New Roman">#include "fs_func.h"<p></p></FONT></FONT></P><P 0cm 0cm 0pt; TEXT-INDENT: 18pt; mso-char-indent-count: 1.5"><FONT size=3><FONT face="Times New Roman">#include "fs_errcode.h"<p></p></FONT></FONT></P><P 0cm 0cm 0pt; TEXT-INDENT: 18pt; mso-char-indent-count: 1.5"><p><FONT face="Times New Roman" size=3> </FONT></p></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8            nvramData[4];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  U8           data = 65;<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S16          error;<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_HANDLE        file_handle;<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    fileBuf[30];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    fileName[30*ENCODING_LENGTH];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    newFileName[30*ENCODING_LENGTH];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    pathBuf[20];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    Path[20*ENCODING_LENGTH];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    buf[50];<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  UINT              write_len;<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  UINT              read_len;<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  INT                 returnvalue;<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  S8                    *name = "test";      <p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  sprintf(fileBuf, "D:\\File\\%s.txt",name);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  sprintf(pathBuf,"D:\\Sam");<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  /*create Folder*/<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  AnsiiToUnicodeString((S8*) Path, (S8*)pathBuf);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  returnvalue = FS_CreateDir((U16*)Path);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  /*remove Folder*/<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  memset(pathBuf,'\0',sizeof(pathBuf));<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  memset(Path,'\0',sizeof(Path));<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  sprintf(pathBuf,"D:\\TEST");<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  AnsiiToUnicodeString((S8*)Path, (S8*)pathBuf); <p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  returnvalue = FS_RemoveDir((U16*)Path);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">//        pfnUnicodeStrcat()<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  /*operate file*/<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  AnsiiToUnicodeString((S8*) fileName, (S8*)fileBuf);  <p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  file_handle = FS_Open((U16*)fileName, FS_CREATE | FS_READ_WRITE );<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Write(file_handle, (void*)"File Name: ",13 , (UINT*)&amp;write_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Write(file_handle, (void*)name,sizeof(name) , (UINT*)&amp;write_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Seek(file_handle, 0, FS_FILE_END);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Write(file_handle, "\r\nSam Test: ",11 , (UINT*)&amp;write_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Write(file_handle, "Read from nvram ", 20, (UINT*)&amp;write_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  memset(buf,'\0',sizeof(buf));<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  returnvalue = FS_Seek(file_handle, 50, FS_FILE_END);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  returnvalue = FS_Read(file_handle, (void *)buf,sizeof(buf),(UINT*)&amp;read_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  returnvalue = FS_Seek(file_handle, 0, FS_FILE_END);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Write(file_handle, (void *)buf,sizeof(buf) , (UINT*)&amp;write_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Write(file_handle, "END SAM\r\n",10 , (UINT*)&amp;write_len);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Close (file_handle);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  /*rename file*/<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  memset(fileName,'\0',sizeof(fileName));<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  AnsiiToUnicodeString((S8*) fileName, (S8*)"D:\\File\\xxx.txt");<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  file_handle = FS_Open((U16*)fileName, FS_CREATE);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Close (file_handle);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  memset(newFileName,'\0',sizeof(newFileName));<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  AnsiiToUnicodeString((S8*) newFileName, (S8*)"D:\\File\\samdu.txt");<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Rename((WCHAR *)fileName, (WCHAR *)newFileName);<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  /*delet a file*/<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  memset(fileName,'\0',sizeof(fileName));<p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  AnsiiToUnicodeString((S8*) fileName, (S8*)"D:\\File\\xxxx.txt");       <p></p></FONT></FONT></P><P 0cm 0cm 0pt 18pt; mso-para-margin-left: 1.5gd"><FONT size=3><FONT face="Times New Roman">  FS_Delete((U16*)fileName);<p></p></FONT></FONT></P>
点评回复

使用道具 举报

发表于 2006-1-18 08:58:00 | 显示全部楼层
<P>D:\project\workdir\FSSIM_ROOT目录下有DRIVE_C,DRIVE_D文件夹分别模拟手机的C:盘和D:盘</P><P>文件放到C:或D:文件夹后可以通过pfopen,pfclose,pfwrite等函数读写文件详见FileSystemDef.h.</P><P>例如:</P><P>fh= pfopen("C:\\test.txt",PFS_READ);
if(fh&lt;=0)
  return fh;</P><P>...................</P>
点评回复

使用道具 举报

 楼主| 发表于 2006-1-19 08:17:00 | 显示全部楼层
<P>谢谢,问题已经解决了!</P>
点评回复

使用道具 举报

 楼主| 发表于 2006-1-19 17:23:00 | 显示全部楼层
<P><TABLE fixed; WORD-BREAK: break-all" width="90%" border=0><TR><TD 10pt; LINE-HEIGHT: 18pt" width="100%"><img src="http://www.52rd.com/bbs/Skins/Discuz/topicface/none.gif"> <B></B>
<P>D:\project\workdir\FSSIM_ROOT目录下有DRIVE_C,DRIVE_D文件夹分别模拟手机的C:盘和D:盘</P></TD></TR></TABLE></P><P>我把一个文件放在了DRIVE_D:在windows下能够正常读取,但是在Target为什么不能读到呢?</P>
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 14:21 , Processed in 0.046242 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表