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.

OMAP138 关于内存配置的问题



各位大牛,你们好,

请教个问题,怎么把第三方提供的lib库,编译的时候,全部分配到IRAM地址段

现在的工程属性是

IRAM                  11800000   00020000

DSP_PROG     c2000000   02000000 

目前看起来,Lib库里面的全局变量,包括.far变量,都在DSP_PROG内存空间里,

注: 第三方LIB库的使用说明写着,.stack, .systask, .const_in, .bss, .far等最好放到IARM片内,.text可以放到片外的DSP_PROG空间。

  • 在cmd的section里把这上面所说的段放到IRAM就好了。

    比如:

    SECTION{

    .stack  -> IRAM

    .systask ->IRAM

    ....

    }

  • tony哥,谢谢回复,

    但是这个工程还有一个config.bld配置,我按你的说法试了,.stack还是在片外的0xc2打头的地址空间,而不是片内地址空间。

    我把我们的配置发你看看,求指点,我还是一个小白。 然后,我们希望是把第三方lib库的这些都放到片内(片内总共才128K),而把自己的

    东西放到片外(自己的东西比较庞大,片内也放不下),这样的需求怎么实现配置。 

    还有一个问题,TI task_create的堆栈是系统自动分配的,他是在从哪个地址段分配的,我们总共

    用了大概有2M大小的堆栈空间,TI会不会有限制,因为我看有一个设置是__TI_STACK_SIZE 才0x80000,也就是512K大小。

  • Weiqing KE 说:
    但是这个工程还有一个config.bld配置,我按你的说法试了,.stack还是在片外的0xc2打头的地址空间,而不是片内地址空间。

    好就在这个bld文件里修改。

    Weiqing KE 说:
    还有一个问题,TI task_create的堆栈是系统自动分配的,他是在从哪个地址段分配的,

    是从.sysmem段分配的。不够的话,在工程配置里把heap设大就行。heap对应.sysmem段。

  • tony哥,在config.bld文件中写入

    sector

    {

    *****

    .stack   > IRAM

    };

    编译报错

    看来只做应用协议层的,对CCS硬件配置真的一头雾水。求tony哥看一下我发的4张图片,帮我理一下头绪。谢谢

  • 不是在bld里加section{}, bld是一个脚本,不识别你上面加的这种格式的语句的。

    是改bld里的地址长度,分配的memory空间。

    你说的bld难道不是一个内存分配的文件吗?