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.

C6678 stack



您好:看了很多帖子,都是提示说多核编程stack最好不要共享,一般放到LL2上,我有如下疑问

1. 是把system stack 还是task stack,或者是两者都放到LL2上?

2. 是不是静态创建的task才能指定放在哪个section,动态创建的task其handle和task stack是在system stack上分配内存?

3. 创建多个task,system stack和task stack大小设置有没有要求?

谢谢!

  • 1. 都放到私有的LL2上,不同core的system stack及task stack必须不一样。
    Table 3-1. Comparison of Thread Characteristics
    http://www.ti.com/lit/ug/spruex3q/spruex3q.pdf

    2.动态的也可以,用taskParams.stack可以指定,通常情况下taskParams.stack的参数是NULL, 告诉SYS/BIOS从Heap里分配。

    3. task stack大小可以参考上面的SYS/BIOS user guide文档3.6.3 Task Stacks。另外可以通过ccs tools->RTOS object view (ROV)可以查看每个task stack的使用情况确定size大小。

  • 您好:

    我现在就是为每个核开辟一个私有的heap(heap0--heap7),放在DDR上,我会把task stack放到对应的堆上。Program.sectMap[".stack"]=“”“heap0”,这样只是把system stack放到heap0上,system stack不是只有一个么,怎么把它放到各自的堆上?

    谢谢