OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 368|回复: 3

FreeRTOS+fatfs移植问题请教

[复制链接]

  离线 

8

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2014-10-10
在线时间
53 小时
发表于 2018-5-16 16:15:11 | 显示全部楼层 |阅读模式
10金钱
我现在原子的STM32F429开发板,不带操作系统用SDIO和fatfs文件系统读写SD卡都正常,
现在我加入了FreeRTOS操作系统,只创建了一个任务,用SDIO和fatfs文件系统读写SD卡就不正常。
可以读出SD卡的状态,比如容量,卡类型什么的都能读到。
   retSD = f_mount(&SDFatFS, "", 0);
         if(retSD)
    {
        printf(" mount error : %d \r\n",retSD);
        Error_Handler();
    }
    else
        printf(" mount sucess!!! \r\n");

         /*##-2- Create and Open new text file objects with write access ######*/
    retSD = f_open(&SDFile, filename, FA_CREATE_ALWAYS | FA_WRITE);
    if(retSD)
        printf(" open file error : %d\r\n",retSD);
    else
        printf(" open file sucess!!! \r\n");

这两个函数执行都是正确的,返回都是FR_OK
但是,我观测到 f_open 函数中
/*-----------------------------------------------------------------------*/
/* Open or Create a File                                                 */
/*-----------------------------------------------------------------------*/

FRESULT f_open (
        FIL* fp,                        /* Pointer to the blank file object */
        const TCHAR* path,        /* Pointer to the file name */
        BYTE mode                        /* Access mode and file open mode flags */
)
{
        FRESULT res;
        DIR dj;
        FATFS *fs;
#if !_FS_READONLY
        DWORD dw, cl, bcs, clst, sc;
        FSIZE_t ofs;
#endif
        DEF_NAMBUF

上面代码是 ff.c 中   f_open 的一部分源码,其中,有个参数  FATFS *fs  我用ST-LINK调试,
一直运行 f_open中的代码 到源码这个函数  mem_set(fp->buf, 0, _MAX_SS);        /* Clear sector buffer */   前,FATFS *fs参数的值都不是空,
但是运行完这个函数 mem_set(fp->buf, 0, _MAX_SS);        /* Clear sector buffer */ 后,
FATFS *fs参数就为空了,不知道原因,这个参数是函数的内部参数,外部不可能改变他的值,mem_set这个函数赋值也不是FATFS *fs的地址 。

我在不带 FreeRTOS 的程序中观察了,这个参数在运行完这个函数mem_set(fp->buf, 0, _MAX_SS);        /* Clear sector buffer */
后,是不会变为空的。

请教啊,求助啊,弄了好久了,搞不明白


       


回复

使用道具 举报

  离线 

1

主题

954

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1753
金钱
1753
注册时间
2017-2-18
在线时间
512 小时
发表于 2018-5-16 17:46:17 | 显示全部楼层
帮顶!!
回复

使用道具 举报

  离线 

23

主题

213

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2017-7-26
在线时间
107 小时
发表于 2018-6-7 18:33:55 | 显示全部楼层
有没考虑过是堆栈空间的问题?启动文件堆栈空间设置够不够
回复

使用道具 举报

  离线 

8

主题

444

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2015-8-25
在线时间
202 小时
发表于 2018-6-8 08:58:51 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则




关闭

必看:"原子哥”力荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-8-19 19:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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