Part Number: TMS320C6678
将问题问询了 ai, ai 说:
a. 在动态任务中,如果没指定 .stackHeap,则栈通常来自:默认堆 heap,也就是 SYS/BIOS 的默认动态内存池。
具体来源一般是:
- 如果配置了
Task.defaultStackHeap,则从该 Heap 分配; - 否则从
Memory.defaultHeapInstance分配;
---
b. 在静态任务中,如果没指定 .stackSection,则其来自编译期静态分配的 RAM,通常位于 .bss、.far、.ebss 或你指定的 task stack section。
---
请问上述说法正确吗?如果我想控制不同的静态任务的任务堆栈的位置,是不是只需修改 .stackSection 并使用 Program.sectMap[] 语句改变段位置即可?
---
此外在其它示例工程的 cfg 中看到了这样一条语句,这是代表将所有任务的栈空间都分配到 L2SRAM 这个段上吗?
Program.sectMap[".far:taskStackSection"] = "L2SRAM";
感谢您的回复!
