搜索
bottom↓
回复: 13

ucos+fatfs+TF卡+lpc1788碰到的文件系统不稳定问题,求救。

[复制链接]

出0入0汤圆

发表于 2015-3-6 09:57:38 | 显示全部楼层 |阅读模式
本帖最后由 caiwei_cs 于 2015-3-6 12:25 编辑

做了一个新工程
ucosII + fatfs(0.09b) + TF卡 +lpc1788

现在碰到的问题是,文件系统测试,在任务中使用就不稳定,会导致类似文件系统崩溃的情况。
比如:文件不能打开和删除,文件夹不能打开删除,创建了很多同名文件,tf卡不能打开只能格式化,tf卡不能格式化等。

现在怀疑是ucos对文件系统有干扰,因为测试代码放在main函数中OSStart();之前就一切正常,放在任务中,哪怕是单任务只跑测试代码都会出问题。

  1. int main(void)
  2. {
  3.     SystemInit();               
  4.        
  5.         OSInit();
  6.         DriverInit();//各硬件初始化



  7.         OSTaskCreate(OS_TASK_SCANANDOUTPUT,(void *)0,(OS_STK *)&ScanAndPutStk[4*TASK_STK_SIZE-1],(INT8U)(3));
  8.     OSTimeSet(0);

  9. //         sdwritetest();        //运行没有问题
  10.    
  11.     OSStart();
  12. }


  13. void  OS_TASK_SCANANDOUTPUT( void *p_arg )
  14. {
  15.     sdwritetest();         //运行会出错
  16. }

  17. //测试代码
  18. void sdwritetest()
  19. {
  20.         while(1)
  21.         {
  22.                 //写一个文件
  23.                 。。
  24.                 //for 循环延时
  25.                 。。
  26.          }
  27. }
复制代码


有人说要加临界域保护,我按照原子的例子加了
  1. extern void ff_enter(void);
  2. extern void ff_leave(void);
  3. #define        ENTER_FF(fs) {ff_enter();}//{OS_ENTER_CRITICAL();}//进入FATFS,关闭中断,防止相互干扰
  4. #define LEAVE_FF(fs, res) {ff_leave();return res;}//{OS_EXIT_CRITICAL();return res;}//离开FATFS,开启中断,任务继续执行
复制代码

  1. OS_CPU_SR cpu_sr=0;
  2. void ff_enter(void)
  3. {
  4.         OS_ENTER_CRITICAL();//进入临界区(无法被中断打断)   
  5. }
  6. void ff_leave(void)
  7. {
  8.         OS_EXIT_CRITICAL();        //退出临界区(可以被中断打断)
  9. }
复制代码


还有建议是说要保证可重入。我打开了_FS_REENTRANT,按照syscall.c添加了互斥量,还是不行。

考虑到在单任务中运行不行,在main中运行可以,所以怀疑是ucos有干扰。而不是其他比如硬件中断之类的。(我屏蔽了除了tf卡意外的所有中断初始化也不行)。
但是对ucos没有很深的认识,不知道从哪里下手。
求大神指点。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2015-3-6 11:08:03 | 显示全部楼层
LPC1799?

出0入0汤圆

 楼主| 发表于 2015-3-6 12:25:21 | 显示全部楼层

1788

出0入0汤圆

 楼主| 发表于 2015-3-6 16:50:18 | 显示全部楼层
自己顶一下。

出0入0汤圆

 楼主| 发表于 2015-3-9 09:36:29 | 显示全部楼层
自己再顶一下

出0入0汤圆

 楼主| 发表于 2015-3-12 19:06:12 | 显示全部楼层
自己再顶一下

出0入0汤圆

发表于 2015-4-3 13:28:29 | 显示全部楼层
解决了没有呢?我在NANDFLASH用FATFS也碰到类似的问题,不带UCOS

出0入0汤圆

发表于 2015-8-6 17:43:19 | 显示全部楼层
楼主,你的U盘FATFS移植成功了吗?为何我卡在FR_NO_FILESYSTEM,打开文件就出现

出0入0汤圆

发表于 2015-8-7 11:35:16 | 显示全部楼层
爺@龙行天下 发表于 2015-8-6 17:43
楼主,你的U盘FATFS移植成功了吗?为何我卡在FR_NO_FILESYSTEM,打开文件就出现

盘符或者路径不对

出0入0汤圆

发表于 2015-8-7 15:45:57 | 显示全部楼层
        res=f_mount(&fs_spi,"0:",0);
        res=f_mkfs("0:",0,4096);
        res = f_getfree("0:", &fre_clust, &fs);
        tot_sect = (fs->n_fatent - 2) * fs->csize;
  fre_sect = fre_clust * fs->csize;    在第三个res返回FR_NO_FILESYSTEM

出0入0汤圆

发表于 2015-8-7 15:46:27 | 显示全部楼层
U盘与SPI都是出现同样的问题

出0入0汤圆

发表于 2015-8-7 15:59:55 | 显示全部楼层
我怎么看到了同名文件?支持同名的文件吗?

出0入0汤圆

发表于 2016-7-19 17:16:26 | 显示全部楼层
同样碰到这样的问题?不知道怎么解决

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-26 06:17

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

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