This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335 cmd配置问题



PAGE 1 : 
   RAMM1      : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
   RAML4      : origin = 0x00C000, length = 0x001000    
   RAML5      : origin = 0x00D000, length = 0x001000    
   RAML6      : origin = 0x00E000, length = 0x001000   
   .ebss            : > RAML4,     PAGE = 1
   .econst          : > RAML5,     PAGE = 1      
   .esysmem         : > RAMM1,     PAGE = 1

   IQmath           : > RAML1,     PAGE = 0
   IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD 
   IQmathTables2    : > IQTABLES2, PAGE = 0, TYPE = NOLOAD 
   FPUmathTables    : > FPUTABLES, PAGE = 0, TYPE = NOLOAD 
      
   DMARAML4         : > RAML4,     PAGE = 1
   DMARAML5         : > RAML5,     PAGE = 1
#pragma DATA_SECTION(DMABuf1,"DMARAML4");
#pragma DATA_SECTION(DMABuf2,"DMARAML5");

volatile Uint16 DMABuf1[1024];
volatile Uint16 DMABuf2[1024];

Uint16 DMABuf1[1024];这个数组需要2的14次幂个bit;

而在cmd的配置文件中,RAML4的长度只有0x1000,2的12次幂个bit?能盛下吗?另外为什么还有.ebss占用RAML4?

这个是Example_2833xDMA_ram_to_ram;例程的。

谢谢

  • 对于第一个问题,很明显是放不下的。

    对于第二个问题,下面是一些关于为初始化的sector的解释,请参考:

    .bss: 为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在.bss空间中。

    .ebss:为使用大寄存器模式时的全局变量和静态变量预留的空间,在程序上电时,cinit空间中的数据复制出来并存储在.ebss中,与.bss不同的是.bss分配范围被限制在低64K 16位数据区,而.ebss的分配范围是4M 22位数据区

    28335的DMA bus与XINTF区域0/6/7/8,L4-L7 SARAM。

  • 谢谢你的回答;

    对于第一个问题:是可以放下的,在cmd文件里,地址都是需要“x16”的,所以“RAML4的长度只有0x1000,2的12次幂个bit“

    说的不对,应该再x16,是2的16次幂个bit,所以能盛下那个数组;而且还余下好多,所以.ebss也可以存在RAML4中;