DSP

#pragma DATA_SECTION 中的区别

2019-07-13 17:09发布

data_section有两种写法,写法如下 : 一:c       #pragma DATA_SECTION(oddemo_rangeAzimuthHeatMap, ".l3data");
       #pragma DATA_ALIGN(oddemo_rangeAzimuthHeatMap, 8);
       float oddemo_rangeAzimuthHeatMap[ODDEMO_ANGLEHEATMAP_BUF_SIZE]; .l3data: type=NOINIT, start(_L3data_start), size(_L3data_size), load=L3SRAM PAGE 1 第一行是将某一个变量放在某一个段中 第二行是所放在这个段中以8字节对齐的位置 第三行是定义该变量包含有多大的位置大小 第四行是定义这个段一般在makefile,或者.cmd文件中来定义,里第一个参数是不初始化,防止里面有其它代码,第二个是开始位置,第三个是段长,第三个参数是加载到哪一个区,  第四个参数是 PAGE 0代表程序空间,PAGE 1代表数据空间 关键是不初始化也可以。 这种写比较常用于dsp中 但对于其它的片子,就不能这样: 二:c++      #pragma data_seg("MyData")
      int g_Value; // Note that the global is not initialized.
      #pragma data_seg() 对于这个话,如果不进行初始化的话则它会被编译器放在bss段(未初始化数据段中)。 以上方法对于进程间通信很重要。在应用时要特别注意。