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.

[参考译文] CCS/CC1310:将堆内存放入GPRAM

Guru**** 2616675 points

Other Parts Discussed in Thread: CC1310, SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/654049/ccs-cc1310-place-heap-memory-into-gpram

部件号:CC1310
“Thread: SysBIOS”中讨论的其它部件

工具/软件:Code Composer Studio

您好,

由于内存限制,我们决定在CC1310中使用GPRAM作为SRAM。 我们以前对目标文件中的某些变量或数组执行过此操作。 现在,我想将所有堆内存放入GPRAM。 很遗憾,我无法找到正确的语法。 请您提供有关正确语法的建议吗?

例如,对于radio.c文件中的数组,我们使用了这样的语法,它是有效的。
/*内存中的部分分配*/

部分
{
文本 :>闪烁
。const :>闪烁
.constdata :>闪烁
.rodata :>闪烁
cinit :>闪烁
。销钉 :>闪烁
init_array :>闪烁
.EMB文本 :>闪烁
ccfg. :>闪烁(高)

数据 :> SRAM
.gpram :
{
radio.obj(*rfRxTaskStack)
} > GPRAM
BSS :> SRAM
sysmem :> SRAM
堆栈 :> SRAM (高)
nonretenvar :> SRAM
}



对于堆,对象在 Memory_Allocation中被视为.common:ti_SysBIOS_States_HeapMem_Instance_0_buf__A。

此致
CEM



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    首先,我没有以这种方式使用GPRAM,我听说可能存在一些性能/电源问题。 例如,我发现了以下线程:

    已经说过,有几种方法可以放置TI-RTOS内核项目。 如果只有几个(例如堆),则将其放入链接程序文件中可能是最简单的。 对于内核堆的显式示例,可以执行此操作。

    ...

      数据      :> SRAM

      .bss:.common:ti_SysBIOS_States_HeapMem_Instance_State_0_buf__a :> GPRAM

      BSS       :> SRAM

    ...

    注意:这是假设您没有像我们在某些示例中那样使用primary_heap逻辑。 这允许您更改链接程序文件(而不是.cfg文件)中堆的大小。 在主堆用例中,只需将.priheap放在链接程序文件中的GPRAM中。

    此外,在.cfg中,大多数模块都有放置静态项目的方法。 例如,如果要将堆栈放置在特定部分中静态创建的任务上,则会出现

    Task.defaultStackSection =".myStack"; //然后将.myStack放入链接程序文件中的GPRAM。

    注:有多种方法可以放置内存部分(例如 bss或.bss:taskStackSection)到内存区域(例如 GPRAM),但我们发现大多数人更喜欢在链接器文件中执行此操作。  

    托德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢,这解决了我的问题