PAGE 1 :RAMM1: origin = 0x000400, length = 0x000400/* on-chip RAM block M1 */RAML4: origin = 0x00C000, length = 0x001000RAML5: origin = 0x00D000, length = 0x001000RAML6: origin = 0x00E000, length = 0x001000.ebss: > RAML4,PAGE = 1.econst: > RAML5,PAGE = 1.esysmem: > RAMM1,PAGE = 1IQmath: > RAML1,PAGE = 0IQmathTables: > IQTABLES, PAGE = 0, TYPE = NOLOADIQmathTables2: > IQTABLES2, PAGE = 0, TYPE = NOLOADFPUmathTables: > FPUTABLES, PAGE = 0, TYPE = NOLOADDMARAML4: > RAML4,PAGE = 1DMARAML5: > 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;例程的。
谢谢
Emma Wang:
对于第一个问题,很明显是放不下的。
对于第二个问题,下面是一些关于为初始化的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。