我们知道.ebss只是预先为全局变量或静态变量预留空间,然后在程序开始前会对其进行初始化,我想知道的是.ebss预留空间的信息存放在DSP的哪里,比如我为.ebss预留了0x1000的空间,DSP是把这个预留空间的相关信息保存在哪里,上电后它怎么知道当前要为全局变量或静态变量留出0x1000的空间?
Hank Zhao:
你可以在CMD文件中为ebss段分配指定的地址空间,比如RAML1或者RAML2。CCS在编译时会在该地址空间为其分配所需要大小的存储区域。如果该地址空间不足以分配其需求,CCS就会报错,如果有富余,那么它只占用它所需要的空间。
我们知道.ebss只是预先为全局变量或静态变量预留空间,然后在程序开始前会对其进行初始化,我想知道的是.ebss预留空间的信息存放在DSP的哪里,比如我为.ebss预留了0x1000的空间,DSP是把这个预留空间的相关信息保存在哪里,上电后它怎么知道当前要为全局变量或静态变量留出0x1000的空间?
pevin zheng:
回复 Hank Zhao:
我的意思是DSP在哪里记录.ebss分配的空间大小。
如cinit段,我们通常将其分配在某段FLASH,DSP上电运行时就会从该段FLASH中读出cinit段的内容并对相关变量进行初始化。
但.ebss我们只是给它分配了要预留的RAM空间大小,这个预留的空间大小信息DSP是存储在哪里?
我们知道.ebss只是预先为全局变量或静态变量预留空间,然后在程序开始前会对其进行初始化,我想知道的是.ebss预留空间的信息存放在DSP的哪里,比如我为.ebss预留了0x1000的空间,DSP是把这个预留空间的相关信息保存在哪里,上电后它怎么知道当前要为全局变量或静态变量留出0x1000的空间?
Hank Zhao:
回复 pevin zheng:
在编译后生成的.map文件中记录有为各个section分配的起始地址和地址范围的信息。
我们知道.ebss只是预先为全局变量或静态变量预留空间,然后在程序开始前会对其进行初始化,我想知道的是.ebss预留空间的信息存放在DSP的哪里,比如我为.ebss预留了0x1000的空间,DSP是把这个预留空间的相关信息保存在哪里,上电后它怎么知道当前要为全局变量或静态变量留出0x1000的空间?
yi li16:
回复 Hank Zhao:
CMD文件里.ebss只能放在RAM里面吗?可以放在外扩RAM里面吗?
TI中文支持网



