TI论坛
直播中

温益浪

7年用户 186经验值
私信 关注
[问答]

28335 cmd配置为什么.ebss占用RAML4?

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;例程的。
谢谢

回帖(2)

王茁珐

2018-9-13 09:55:21
对于第一个问题,很明显是放不下的。
对于第二个问题,下面是一些关于为初始化的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。
举报

温益浪

2018-9-13 10:04:03
引用: fan266 发表于 2018-9-13 16:42
对于第一个问题,很明显是放不下的。
对于第二个问题,下面是一些关于为初始化的sector的解释,请参考:
.bss: 为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在.bss空间中。

谢谢你的回答;
对于第一个问题:是可以放下的,在cmd文件里,地址都是需要“x16”的,所以“RAML4的长度只有0x1000,2的12次幂个bit“
说的不对,应该再x16,是2的16次幂个bit,所以能盛下那个数组;而且还余下好多,所以.ebss也可以存在RAML4中;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分