OpenEdv-开源电子网

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

请问一下,那个malloc.c(.h)/Extern_SRAM.c(.h)/FreeRTOS_config.h/heap_5.c之间的内存分配是什么关系?

[复制链接]

11

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2020-4-22
在线时间
57 小时
发表于 2020-7-6 15:42:54 | 显示全部楼层 |阅读模式
10金钱
malloc.h
A07D0CED-9A25-4e1e-9593-7AF0C602A672.png
malloc.c
A68E9D07-CCD9-4c8d-B5DD-9915DFECB4D1.png
FreeRTOSconfig.h
4031F97A-DA9D-47d4-A434-881F5F9A26E8.png
head_5.c申请内存方式
FF322A26-1AE1-4b6b-B1B6-170F0504AECF.png

主要是碰到几个问题:
1.当使用head_5.c方式进行内存管理时,使用教程方式初始化内存,即上图这样,会导致HardFault,而当将{(uint8_t*) 0X20000000UL, 0X10000},屏蔽之后却可以顺利使用。
2.由于head_5.c初始化内存过程之中,将{(uint8_t*) 0X20000000UL, 0X10000},屏蔽掉了,是不是就不会使用内部SRAM?
3.由于在任务之中使用的变量较大,当malloc.h之中(#define MEM1_MAX_SIZE    40*1024          //最大管理内存 40K)设置为20*1024时,pvPortMalloc会进入HardFault,而当设置为40*1024时不会;这时,外部SRAM内存空间应该是足够的,为什么会发生这种情况,这个MEM1和MEM2到底有什么不同,有什么数据是必须存储在MEM1之中吗?(这个MEM1按照说明是内部内存池,但是我在heap_5.c初始化之中没有申请内部SRAM,这个MEM1还会起作用吗?)


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

使用道具 举报

11

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2020-4-22
在线时间
57 小时
 楼主| 发表于 2020-7-6 17:11:10 | 显示全部楼层
又碰到一个问题,当使用heap_4.c进行内存管理时,当使用外部SRAM时(static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ] __attribute__((at(0X68000000)));),会与那个malloc.c发生冲突,导致编译不了,当删除malloc.c才能正常编译并运行;这样的话感觉malloc与heap是两套内存管理体系,那么为什么在使用heap_5进行内存管理时,需要修改malloc.h的内容才不会HardFault(见问题)?
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2020-5-19
在线时间
18 小时
发表于 2020-7-8 11:43:33 | 显示全部楼层
帮顶,同问
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-7-21
在线时间
9 小时
发表于 2020-7-27 10:18:53 | 显示全部楼层
请问malloc.h代码是在哪里找来的
回复

使用道具 举报

11

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2020-4-22
在线时间
57 小时
 楼主| 发表于 2020-7-27 15:39:40 | 显示全部楼层
luocong 发表于 2020-7-27 10:18
请问malloc.h代码是在哪里找来的

就是正点原子历程的内存管理试验里面的代码啊
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-7-21
在线时间
9 小时
发表于 2020-7-28 16:20:48 | 显示全部楼层
zzk1996 发表于 2020-7-27 15:39
就是正点原子历程的内存管理试验里面的代码啊

多谢!!!!!!
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2020-8-5 09:20:24 | 显示全部楼层
head_5定义的空间多大?原子哥malloc.h定义的内部SRAM空间多大?从理论层面上,两个空间不冲突的话,没有关系的,都在在一个内存空间上进行操作,除非越界了
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6077
金钱
6077
注册时间
2018-6-27
在线时间
524 小时
发表于 2021-4-11 14:37:01 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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