OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11650|回复: 6

在UCOS中加入FATFS就卡死在f_mount函数

[复制链接]

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-4-30
在线时间
8 小时
发表于 2014-5-28 11:41:02 | 显示全部楼层 |阅读模式
5金钱
http://www.amobbs.com/thread-5463559-1-1.html
我的问题和这个帖子的一模一样,,,求大神帮助啊

最佳答案

查看完整内容[请看2#楼]

回复【6楼】xuyuan739143: --------------------------------- FATFS fs[2]; DIR dirs;     FILINFO finfo;  放到main函数外面去,包你好使。 你这是局部变量太多,堆栈 溢出了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-5-28 11:41:03 | 显示全部楼层
回复【6楼】xuyuan739143:
---------------------------------
FATFS fs[2];
DIR dirs; 
   FILINFO finfo; 
放到main函数外面去,包你好使。
你这是局部变量太多,堆栈 溢出了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-5-29 00:04:01 | 显示全部楼层
估计是你堆栈分配少了。
看看是死在哪里?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-4-30
在线时间
8 小时
 楼主| 发表于 2014-5-29 15:01:55 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
跟踪了一下,发现是死在了f_opendirf函数里的chk_mounted函数,我堆栈都分配了256了感觉已经够大了,而且我都已经把这段程序写在了OS开始前,应该和堆栈什么的没关系了吧,还是没解决哦,
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-5-29 23:16:16 | 显示全部楼层
回复【3楼】xuyuan739143:
---------------------------------
你的代码如何?贴出来看看.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-4-30
在线时间
8 小时
 楼主| 发表于 2014-5-30 12:50:53 | 显示全部楼层
int main(void)
{
FATFS fs[2];           
FRESULT res;                 
DIR dirs;
   FILINFO finfo;

LCD_Init();
LCD_Clear(BLUE);
LCD_String(20,20,"SDIO SD Fatfs demo",RED);
   while(SD_Init()!= SD_OK)LCD_String(20,50,"SD Init failed!",RED);
   LCD_String(20,50,"SD Init OK!    ",RED);
   LCD_String(20,80,"Capacity:      MB",GREEN);
   LCD_Num(170,80,SDCardInfo.CardCapacity>>20,4,WHITE);

   res=f_mount(0, &fs[0]);
   res=f_opendir(&dirs, "0:/");//?ò???ù????
   res=f_readdir(&dirs, &finfo);
   while(res!= FR_OK)LCD_String(20,110,"Fatfs failed!",RED);
LCD_String(20,110,"File name:",RED);
   LCD_String(190,110,(u8 *)finfo.fname,YELLOW);
f_readdir(&dirs, &finfo);
LCD_String(190,140,(u8 *)finfo.fname,YELLOW);
f_readdir(&dirs, &finfo);
LCD_String(190,170,(u8 *)finfo.fname,YELLOW);
f_readdir(&dirs, &finfo);
LCD_String(190,200,(u8 *)finfo.fname,YELLOW);
回复

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-4-30
在线时间
8 小时
 楼主| 发表于 2014-5-30 12:52:39 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
只能读出卡的大小  res=f_mount(0, &fs[0]);  这句也是能通过的,,下一句就卡死了  ,,这些代码我都是放在OS开始前的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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