各位大牛,你们好,
请教个问题,怎么把第三方提供的lib库,编译的时候,全部分配到IRAM地址段
现在的工程属性是
IRAM 11800000 00020000
DSP_PROG c2000000 02000000
目前看起来,Lib库里面的全局变量,包括.far变量,都在DSP_PROG内存空间里,
注: 第三方LIB库的使用说明写着,.stack, .systask, .const_in, .bss, .far等最好放到IARM片内,.text可以放到片外的DSP_PROG空间。
Tony Tang:
在cmd的section里把这上面所说的段放到IRAM就好了。
比如:
SECTION{
.stack -> IRAM
.systask ->IRAM
….
}
Weiqing KE:
回复 Tony Tang:
tony哥,谢谢回复,
但是这个工程还有一个config.bld配置,我按你的说法试了,.stack还是在片外的0xc2打头的地址空间,而不是片内地址空间。
我把我们的配置发你看看,求指点,我还是一个小白。 然后,我们希望是把第三方lib库的这些都放到片内(片内总共才128K),而把自己的
东西放到片外(自己的东西比较庞大,片内也放不下),这样的需求怎么实现配置。
还有一个问题,TI task_create的堆栈是系统自动分配的,他是在从哪个地址段分配的,我们总共
用了大概有2M大小的堆栈空间,TI会不会有限制,因为我看有一个设置是__TI_STACK_SIZE 才0x80000,也就是512K大小。
Tony Tang:
回复 Weiqing KE:
Weiqing KE但是这个工程还有一个config.bld配置,我按你的说法试了,.stack还是在片外的0xc2打头的地址空间,而不是片内地址空间。
好就在这个bld文件里修改。
Weiqing KE还有一个问题,TI task_create的堆栈是系统自动分配的,他是在从哪个地址段分配的,
是从.sysmem段分配的。不够的话,在工程配置里把heap设大就行。heap对应.sysmem段。
Weiqing KE:
回复 Tony Tang:
tony哥,在config.bld文件中写入
sector
{
*****
.stack > IRAM
};
编译报错
看来只做应用协议层的,对CCS硬件配置真的一头雾水。求tony哥看一下我发的4张图片,帮我理一下头绪。谢谢
Tony Tang:
回复 Weiqing KE:
不是在bld里加section{}, bld是一个脚本,不识别你上面加的这种格式的语句的。
是改bld里的地址长度,分配的memory空间。
你说的bld难道不是一个内存分配的文件吗?