搜索
bottom↓
回复: 20

基于RTT,在SD卡上创建的文件在xp上看不见,怎么回事?

[复制链接]

出0入0汤圆

发表于 2011-3-28 10:20:12 | 显示全部楼层 |阅读模式
基于RTT,在SD卡上创建一个文件:

#define TEST_FN "/test.txt"
//只写&创建打开
fd = open(TEST_FN, O_RDWR|O_CREAT|O_TRUNC,0);
返回成功。

利用LS命令也可以看见创建的文件,但把SD卡插到电脑上去却看不见文件:TEST.TXT,只看见被使用的容量。怎么回事呢?

出0入0汤圆

 楼主| 发表于 2011-3-28 11:19:43 | 显示全部楼层
有时候还显示:可使用空间为0,已使用空间为0.-_-

出0入0汤圆

发表于 2011-3-28 11:26:53 | 显示全部楼层
卡是电脑格式化的还是板上的文件系统?
所有卡都这样?
文件是否有正常写入数据并正常关闭?

出0入0汤圆

 楼主| 发表于 2011-3-28 11:37:12 | 显示全部楼层
板上格式化的:mkfs("elm","sd0");
手上只有一张SD卡。

出0入0汤圆

 楼主| 发表于 2011-3-28 11:41:39 | 显示全部楼层
用winhex检查,分区表已丢失。是这个原因吗?

出0入0汤圆

发表于 2011-3-28 11:43:41 | 显示全部楼层
1.先用电脑格式化试式.先不要再在板子上面格式化.只进行文件的操作.
2.再找张卡来.

出0入0汤圆

 楼主| 发表于 2011-3-28 13:59:37 | 显示全部楼层
现在电脑无法格式化SD卡了,但SD卡在板上是可以正常创建文件的。

出0入0汤圆

 楼主| 发表于 2011-3-28 14:00:36 | 显示全部楼层
很可能是分区表丢失的原因。现在真的没有第二张卡了,我再找找原因吧

出0入0汤圆

发表于 2011-3-28 15:12:53 | 显示全部楼层
1. 分区表坏,可以使用WINHEX直接在PC上面对卡进行前面一段扇区的填充处理.这样再插上就可以当新卡格式化了.
2. 也可以试试先注释掉SD卡驱动中的
                        /* get the first partition */
                        status = dfs_filesystem_get_partition(&part, sector, 0);
                        if (status != RT_EOK)
                        {
                                /* there is no partition table */
                                part.offset = 0;
                                part.size   = 0;
                        }
这部分再使用板子上面的格式化.

出0入0汤圆

 楼主| 发表于 2011-3-29 12:38:35 | 显示全部楼层
试过了,不行。现在PC机只知道有个存储设备插进来,但不知道这个存储设备的容量等,根本没法格式化了。

用WINHEX也无法读盘。


(原文件名:截图1301373512.jpg)


(原文件名:截图1301373564.jpg)

出0入0汤圆

 楼主| 发表于 2011-3-29 12:40:38 | 显示全部楼层
Error #10 是WINHEX试图打开SD卡时的错误信息。

但SD卡可以在板子上正常读写。

出0入0汤圆

 楼主| 发表于 2011-4-6 10:48:25 | 显示全部楼层
买了新卡,用电脑格式化后,在板子上用MKDIR创建文件夹,但这创建的文件夹在电脑上依然看不见?用WINHEX查看,发现在板上创建的文件夹位于:0x02400000地址处,用电脑创建的文件夹位于:0x00B5E000地址处。

出0入0汤圆

 楼主| 发表于 2011-4-6 11:00:36 | 显示全部楼层
板子上检查出来的SD卡信息:found part[0], begin: 4194304, size: 3.698GB

出0入0汤圆

发表于 2011-4-6 11:07:21 | 显示全部楼层
1.先做device_test。
2.更新DFS组件到SVN版本。
3.见8楼2。

出0入0汤圆

 楼主| 发表于 2011-4-6 11:59:03 | 显示全部楼层
我直接用0.4版本里的DFS试试。
svn下载的代码用MDK查看时是乱码,原因暂时不明。

出0入0汤圆

发表于 2011-4-6 13:44:59 | 显示全部楼层
能ls("/")吗?

出0入0汤圆

 楼主| 发表于 2011-4-6 13:52:56 | 显示全部楼层
回复【13楼】aozima
1.先做device_test。
2.更新dfs组件到svn版本。
3.见8楼2。
-----------------------------------------------------------------------

SD卡测试是没问题的,现在直接用0.4版本的DFS,把SECTOR_SIZE改为4096,依然不行。

出0入0汤圆

 楼主| 发表于 2011-4-7 15:49:25 | 显示全部楼层
根本原因:PC驱动暂时不支持扇区大小为4K的SD卡的读写。-_-~~晕死!

谢谢各位的关注。。。

出0入0汤圆

发表于 2011-4-8 07:50:16 | 显示全部楼层
1 确认你的SD卡是4K扇区的?读出的info里显示是4K? config.h里面只是设置能支持的最大扇还。目前只见过2K的SD卡。
2 XP是可以支持非512字节/扇区的U盘的,RADIO的FLASH就是4K的。但老的读卡器不一定支持。

出0入0汤圆

 楼主| 发表于 2011-4-8 09:10:11 | 显示全部楼层
回复【18楼】aozima
1 确认你的sd卡是4k扇区的?读出的info里显示是4k? config.h里面只是设置能支持的最大扇还。目前只见过2k的sd卡。
2 xp是可以支持非512字节/扇区的u盘的,radio的flash就是4k的。但老的读卡器不一定支持。
-----------------------------------------------------------------------

1、4K扇区是我用stm32开发板格式化时设置的。用winhex确认过了。
2、被板子格式化成4K扇区后,电脑会提示卡没有格式化。

出0入0汤圆

 楼主| 发表于 2011-4-8 09:11:50 | 显示全部楼层
读卡器是新买的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 18:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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