OpenEdv-开源电子网

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

fatfs问题,求解

[复制链接]

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
发表于 2016-4-18 20:02:40 | 显示全部楼层 |阅读模式
3金钱

360截图20160418195637756.jpg
各位大侠,求助一下,在学fatfs遇到一个问题一直想不通,我们已经定义了fs[0],fs[1]      如上图所示FATFS *fs[2]; 系统不是会自动的为fs[0]和fs[1]分配空间吗?为什么还要进行内存申请?
        fs[0]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS));       

        fs[1]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS));


               求解,谢谢。
360截图20160418195637756.jpg

最佳答案

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

指针数组,使用的时候,必须分配内存才能用。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-18 20:02:41 | 显示全部楼层
指针数组,使用的时候,必须分配内存才能用。
回复

使用道具 举报

2

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
981
金钱
981
注册时间
2015-9-20
在线时间
148 小时
发表于 2016-4-18 20:14:02 | 显示全部楼层
额,我也最近在学这个,可是我的是mini2.0,不支持SDIO模式,只能用 SPI对SD读写,而且扩展历程里面没有FATFS这个实验..................在论坛下载的战舰的FATFS试验源代码下来一看居然变了模佯............
捕获.PNG
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
 楼主| 发表于 2016-4-18 20:16:43 | 显示全部楼层
杏帘在望 发表于 2016-4-18 20:14
额,我也最近在学这个,可是我的是mini2.0,不支持SDIO模式,只能用 SPI对SD读写,而且扩展历程里面没有FAT ...

你的keil版本和程序版本不一致吧
回复

使用道具 举报

2

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
981
金钱
981
注册时间
2015-9-20
在线时间
148 小时
发表于 2016-4-18 20:18:32 | 显示全部楼层
然后自己新建工程弄了半天结果一直报错#error.......主要是在FATFS中的                        
回复

使用道具 举报

2

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
981
金钱
981
注册时间
2015-9-20
在线时间
148 小时
发表于 2016-4-18 20:19:51 | 显示全部楼层
前进的小兵 发表于 2016-4-18 20:16
你的keil版本和程序版本不一致吧

不会啊,其它的都是可以的
回复

使用道具 举报

2

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
981
金钱
981
注册时间
2015-9-20
在线时间
148 小时
发表于 2016-4-18 20:28:49 | 显示全部楼层
你说的那个分配空间应该是跟UCOSII里面的创建任务差不多吧,也就是为任务分配堆栈,而申请内存主要是在运行任务时切换时需要缓存数据的空间吧,每个任务(文件)不能重叠吧~~~~~~~~~~~~~不知道是不是这个意思~~~~~~~~~~~
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
 楼主| 发表于 2016-4-18 22:29:36 | 显示全部楼层
杏帘在望 发表于 2016-4-18 20:28
你说的那个分配空间应该是跟UCOSII里面的创建任务差不多吧,也就是为任务分配堆栈,而申请内存主要是在运行 ...

不知道   看不明白
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
 楼主| 发表于 2016-4-19 07:20:48 来自手机 | 显示全部楼层
杏帘在望 发表于 2016-4-18 20:28
你说的那个分配空间应该是跟UCOSII里面的创建任务差不多吧,也就是为任务分配堆栈,而申请内存主要是在运行 ...

是不是可以这样理解,如果我定义的是FATFS  f;f是FAFTS结构体的变量,而不是指针变量,那么系统就自动的为f分配内存空间,如果我定义的是FATFS   *f,那么我们要自动的申请内存空间给指针f用?
回复

使用道具 举报

1

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2015-11-26
在线时间
25 小时
发表于 2016-4-19 09:19:23 | 显示全部楼层
看来你很少  单步调试啊    指针  对象  只要手动分配内存的   否则  就是一个随机数  
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
 楼主| 发表于 2016-4-19 15:40:51 来自手机 | 显示全部楼层
嗷大喵 发表于 2016-4-19 09:19
看来你很少  单步调试啊    指针  对象  只要手动分配内存的   否则  就是一个随机数

如果没有手动分配内存的话,是不是取内容(*p)后,还是不可以存储数据?
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
 楼主| 发表于 2016-4-19 15:49:02 来自手机 | 显示全部楼层
嗷大喵 发表于 2016-4-19 09:19
看来你很少  单步调试啊    指针  对象  只要手动分配内存的   否则  就是一个随机数

可不可以这样理解,不申请内存的指针就是一个随机数,这个随机数可以看做一个随机的地址,但是可能这个地址在单片机系统中是不存在的。可以这样理解?
回复

使用道具 举报

1

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2015-11-26
在线时间
25 小时
发表于 2016-4-19 16:51:09 | 显示全部楼层
前进的小兵 发表于 2016-4-19 15:49
可不可以这样理解,不申请内存的指针就是一个随机数,这个随机数可以看做一个随机的地址,但是可能这个地 ...

好好研究吧  
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-23 18:31:46 | 显示全部楼层
楼主学习指针基础知识先
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-16 22:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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