TMS320C6678: SYS/BIOS 中 Task 动态创建和静态时,如果未指定 .stackHeap 和 .stackSection,那么栈空间会来源于哪里?

Part Number: TMS320C6678

将问题问询了 ai, ai 说:

a. 在动态任务中,如果没指定 .stackHeap,则栈通常来自:默认堆 heap,也就是 SYS/BIOS 的默认动态内存池。

具体来源一般是:
  1. 如果配置了 Task.defaultStackHeap,则从该 Heap 分配;
  2. 否则从 Memory.defaultHeapInstance 分配;

---

b. 在静态任务中,如果没指定 .stackSection,则其来自编译期静态分配的 RAM,通常位于 .bss.far.ebss 或你指定的 task stack section。 

---

请问上述说法正确吗?如果我想控制不同的静态任务的任务堆栈的位置,是不是只需修改 .stackSection 并使用 Program.sectMap[] 语句改变段位置即可?
---

此外在其它示例工程的 cfg 中看到了这样一条语句,这是代表将所有任务的栈空间都分配到 L2SRAM 这个段上吗?

Program.sectMap[".far:taskStackSection"] = "L2SRAM";

感谢您的回复!