金牌会员
 
- 积分
- 1554
- 金钱
- 1554
- 注册时间
- 2016-12-7
- 在线时间
- 93 小时
|
1金钱
//内存池(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
这个是例程里面带的代码。
为什么红色部分"u16 mem1mapbase[MEM1_ALLOC_TABLE_SIZE];" 定位没有+MEM1_MAX_SIZE呢?
|
最佳答案
查看完整内容[请看2#楼]
因为mem1mapbase是内部ram,编译器会自动分配内存的。其他两个是外部RAM或者CCM的,需要用户来定义,安排内存的使用
|