正点原子-内存管理实验

2019-07-20 16:49发布

//内存池(32字节对齐)
__align(32) u8 mem1base[MEM1_MAX_SIZE];                                                                                                        //内部SRAM内存池
__align(32) u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000)));                                        //外部SRAM内存池
__align(32) u8 mem3base[MEM3_MAX_SIZE] __attribute__((at(0X10000000)));                                        //内部CCM内存池
//内存管理表
u16 mem1mapbase[MEM1_ALLOC_TABLE_SIZE];                                                                                                        //内部SRAM内存池MAP
u16 mem2mapbase[MEM2_ALLOC_TABLE_SIZE] __attribute__((at(0X68000000+MEM2_MAX_SIZE)));//外部SRAM内存池MAP
u16 mem3mapbase[MEM3_ALLOC_TABLE_SIZE] __attribute__((at(0X10000000+MEM3_MAX_SIZE)));//内部CCM内存池MAP
这个是例程里面带的代码。
为什么红 {MOD}部分"u16 mem1mapbase[MEM1_ALLOC_TABLE_SIZE];"  定位没有+MEM1_MAX_SIZE呢?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
taizonglai
1楼-- · 2019-07-20 16:49
因为mem1mapbase是内部ram,编译器会自动分配内存的。其他两个是外部RAM或者CCM的,需要用户来定义,安排内存的使用
antserver
2楼-- · 2019-07-20 18:13
antserver
3楼-- · 2019-07-20 22:51
zuozhongkai 发表于 2017-2-16 14:43
因为mem1mapbase是内部ram,编译器会自动分配内存的。其他两个是外部RAM或者CCM的,需要用户来定义,安排内 ...

谢谢了

一周热门 更多>