OpenEdv-开源电子网

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

STM32内存管理的一些疑问

[复制链接]

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2015-4-22
在线时间
7 小时
发表于 2017-12-4 19:39:31 | 显示全部楼层 |阅读模式
接触STM32已经好几年了,最近研究其内存管理时有些疑问,想请教各位大神们。

//内存池(32字节对齐)
__align(32) u8 mem1base[MEM1_MAX_SIZE];                                                                                    //内部SRAM内存池
__align(32) u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000)));                                        //外部SRAM内存池


①. mem1base是内部ram,编译器会自动分配内存,编译器如何分配的,在工程文件中设置的吗?还是在启动文件中定义的?
②. 在没有用户自实现内存管理的工程中,编译器是如何管理内存的?
③. 抛去内存管理的实际应用,定义两个全局数组mem1base和mem2base,被分配到全局(静态区),如是这样的话,岂不是在维护静态区的一段内存吗?
④. 这里维护的内存区,如何保证不在别处被重复应用到?


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

使用道具 举报

27

主题

118

帖子

0

精华

高级会员

Rank: 4

积分
850
金钱
850
注册时间
2015-12-8
在线时间
176 小时
发表于 2017-12-13 14:36:09 | 显示全部楼层
帮顶!!!我也有这个疑问,如果不适用外部sram,原子的内存管理代码要怎么改?@正点原子
为自己掌握新的知识感到快乐
回复 支持 反对

使用道具 举报

4

主题

116

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4074
金钱
4074
注册时间
2017-11-15
在线时间
331 小时
发表于 2018-3-2 10:38:46 | 显示全部楼层
竟然没有人来解答。
www.littlebutler.top
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-3-2 12:14:31 | 显示全部楼层
本帖最后由 275891381 于 2018-3-2 12:16 编辑

1,内部外部都不会自动分配,都是你自己定义的一个数组占着一部分内存空间用来动态分配   
2.没实现的不用就没有,用的话需要初始化系统自带的内存初始化函数,也是定义一个数组   
3没理解你的意思   
4 不是有个内存表管理着嘛


回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 18:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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