OpenEdv-开源电子网

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

关于对“u8 exfuns_init(void)“函数的理解:

[复制链接]

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2014-1-4 22:56:23 | 显示全部楼层 |阅读模式
 u8 exfuns_init(void)
{
 fs[0]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS)); //为磁盘0工作区申请内存 
 fs[1]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS)); //为磁盘1工作区申请内存
 file=(FIL*)mymalloc(SRAMIN,sizeof(FIL));  //为file申请内存
 ftemp=(FIL*)mymalloc(SRAMIN,sizeof(FIL));  //为ftemp申请内存
 fatbuf=(u8*)mymalloc(SRAMIN,512);    //为fatbuf申请内存
 if(fs[0]&&fs[1]&&file&&ftemp&&fatbuf)return 0;  //申请有一个失败,即失败.
 else return 1; 
}

我的理解不知对不对?请求指正!
1,在”fs[0]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS));“中,fs[0]应该代表的是SD卡,形参SRAMIN应该是代表内部存储器,操作SD卡和W25Q64需要申请MCU内部存储器是什么意思?
2,fs[1]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS)); //为磁盘1(W25Q64)工作区申请内存,磁盘0就是SD
手艺人要内外兼修。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-5 00:14:12 | 显示全部楼层
回复【楼主位】wangyan915205:
---------------------------------
1,文件系统需要给每个磁盘一个FATFS的结构体,类似“工作区”。2个磁盘自然要2个。
2,磁盘0是SD卡,磁盘1是FLASH.而内部内存,和外部内存,是因为我们内存管理,同时管理了2个内存。我们申请内部内存区域给fs指针,因为内部内存的访问速度快很多。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
 楼主| 发表于 2014-1-5 00:19:01 | 显示全部楼层
谢谢!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-10-16
在线时间
9 小时
发表于 2020-5-13 22:35:55 | 显示全部楼层
在test.c中, 调用了exfuns_init();  也就为文件系统申请了内存空间(实际占用了内存管理表),
也没看到在test.c中释放掉内存空间, 但在test.c中不需要操作文件系统时,是不需要的呀                               
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-28 06:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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