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.

.ebss段信息存放哪里

我们知道.ebss只是预先为全局变量或静态变量预留空间,然后在程序开始前会对其进行初始化,我想知道的是.ebss预留空间的信息存放在DSP的哪里,比如我为.ebss预留了0x1000的空间,DSP是把这个预留空间的相关信息保存在哪里,上电后它怎么知道当前要为全局变量或静态变量留出0x1000的空间?

  • 你可以在CMD文件中为ebss段分配指定的地址空间,比如RAML1或者RAML2。CCS在编译时会在该地址空间为其分配所需要大小的存储区域。如果该地址空间不足以分配其需求,CCS就会报错,如果有富余,那么它只占用它所需要的空间。

  • 我的意思是DSP在哪里记录.ebss分配的空间大小。

    如cinit段,我们通常将其分配在某段FLASH,DSP上电运行时就会从该段FLASH中读出cinit段的内容并对相关变量进行初始化。

    但.ebss我们只是给它分配了要预留的RAM空间大小,这个预留的空间大小信息DSP是存储在哪里?

  • 在编译后生成的.map文件中记录有为各个section分配的起始地址和地址范围的信息。

  • CMD文件里.ebss只能放在RAM里面吗?可以放在外扩RAM里面吗?