内存池的位置及大小设置时,用到了下面的语句,__attribute__的含义需要解析
static __align(32) uint8_t mem2base[MEM2_MAX_SIZE] __attribute__((at(0X10000000)));
这一段代码的含义如下:
1、变量按照32个字节的对齐方式进行分配;
2、分配的起始地址为 0X10000000;
__attribute__的作用主要指定变量、结构体和数据类型的内容 地址、对齐方式、所处的段位置的功能。简单来说是程序员与编译器之间的交互,能够气的作用,宏观来说可能有以下几点:
1、提高运行效率,避免由于对齐造成的数据存储器访问大量耗时;
2、优化内存使用情况,避免造成过大的内存需求,降低硬件成本;
3、外扩数据存储器时,需要用到该指令,进行内存的分配。
关于__attribute__的详细语法使用,大家参照CSDN上C语言__attribute__的使用-CSDN博客