OpenEdv-开源电子网

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

关于void *ff_memalloc (UINT size) 函数

[复制链接]

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
发表于 2014-10-22 20:39:06 | 显示全部楼层 |阅读模式
5金钱
 void *ff_memalloc (UINT size)                  

{

       return (void*)mymalloc(SRAMIN,size);

}


void ff_memfree (void* mf)        

{

       myfree(SRAMIN,mf);

}


文件系统中原子写的这两个函数我把它改成

void *ff_memalloc (UINT size)                  

{

       return (void*)malloc(size);

}
void ff_memfree (void* mf)        

{

       free(mf);

}
为什么就建立不了长文件名的文件了,已经包含“stdlib”这个头文件了,使用了微库,测试了单独使用malloc函数是可以申请到内存的。malloc函数和原子的mymalloc函数功能不是差不多的吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-22 22:54:37 | 显示全部楼层
因为你根本没有实现malloc和free,你可以自己测试下。
系统自带的malloc和free我一直没用成功,所以帮不到你。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-22 23:51:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
可是我单独使用malloc申请一块地址,往里面这东西再读出来成功了啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-22 23:54:04 | 显示全部楼层
回复【3楼】骑着蜗牛追梦想:
---------------------------------
那看你是不是heap设置小了,在.s文件看看HEAP设置的是多少?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-22 23:57:51 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
200
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-22 23:58:23 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
文件名也没有那么长啊
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-23 00:06:48 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子没有成功估计是你自己写了个malloc.h,跟系统冲突了,我试了添加你的malloc.h文件,单独使用malloc和free也是不可以的,不加你的malloc.h和malloc.c单独用系统的malloc可以,但是长文件名还是不行
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-23 00:14:48 | 显示全部楼层
回复【7楼】骑着蜗牛追梦想:
---------------------------------
不是这个原因。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1841
金钱
1841
注册时间
2014-6-27
在线时间
982 小时
发表于 2014-10-23 08:19:56 | 显示全部楼层
回复【7楼】骑着蜗牛追梦想:
---------------------------------
你用系统自带的动态内存分配函数是可以的,在引导文件修改HEAP的大小,设置大点,比如4K,一般没问题了。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-10-23 08:24:14 | 显示全部楼层
系统自带那个比较耗资源,试过就不用了,直接原子哥的,省事
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-23 08:25:55 | 显示全部楼层
回复【9楼】TinyBoy:
---------------------------------
还真是哎,谢谢你哈!可是一个文件名的缓冲应该没多大啊
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-23 08:29:34 | 显示全部楼层
回复【10楼】Badu_Space:
---------------------------------
是不是因为长文件名的文件夹的所有信息包括该文件夹的子文件的所有信息的缓存都在heap里面
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-23 08:40:37 | 显示全部楼层
回复【9楼】TinyBoy:
---------------------------------
回复【8楼】正点原子:
---------------------------------
我试了原子的代码,发现我就创建一个"文件10"命名的空文件夹时,当调用到mymalloc(SRAMIN,size)这个函数的时候,参数size的大小竟然是0x200,也就是512字节,这跟MDK默认设置的heap一样大。感觉好奇怪
回复

使用道具 举报

94

主题

260

帖子

0

精华

高级会员

Rank: 4

积分
650
金钱
650
注册时间
2013-10-23
在线时间
48 小时
 楼主| 发表于 2014-10-23 08:44:37 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
回复【9楼】TinyBoy:
---------------------------------
发现这个size大小不是heap决定的,heap改大了,调用时也还是分配512字节的size
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1841
金钱
1841
注册时间
2014-6-27
在线时间
982 小时
发表于 2014-10-23 09:58:03 | 显示全部楼层
回复【14楼】骑着蜗牛追梦想:
---------------------------------

那也不能小于512啊,看来你还没想通,慢慢想吧。
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1841
金钱
1841
注册时间
2014-6-27
在线时间
982 小时
发表于 2014-10-23 10:09:07 | 显示全部楼层
回复【10楼】Badu_Space:
---------------------------------
不一定耗资源的,原子哥的是分配一个大数组来做动态内存,系统的可能是临时在内存里面找,使用情况都一样,不用的时候及时释放不要产生内存垃圾就行了。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-10-23 12:40:22 | 显示全部楼层
回复【16楼】TinyBoy:
---------------------------------
恩,下次试下系统那个
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-30 02:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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