Hi Ti:
我看到很多地方和 stack size 相关,想问一下以下设置都有什么区别:
我想请问一下上面的设置都表示什么意思呢?
而我通过 TI 官方文档对 stack size 进行输出,结果如下:
实际值和上面的设置值都不一样,请问这些值都要怎么理解呢?
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.
Hi Ti:
我看到很多地方和 stack size 相关,想问一下以下设置都有什么区别:
我想请问一下上面的设置都表示什么意思呢?
而我通过 TI 官方文档对 stack size 进行输出,结果如下:
实际值和上面的设置值都不一样,请问这些值都要怎么理解呢?
第一个是CCS编译的stack,第二个是默认的system stack,第三个是任务的stack
上面的stack是RTOS中的概念,每个任务都有对应的stack size,用来存放变量等
实际值和上面的设置值都不一样,请问这些值都要怎么理解呢?
任务程序越大,stack size也就越大
具体的你可以查下stack的概念和使用方法
第二个是默认的system stack,第三个是任务的stack
那下面两张图中的 stack 分别表示的是哪种stack呢
我看到说可以减小 ROV 中未使用的 stack,也就是上面 stackSize 为 768 的区域,我该在哪里修改呢?
代码中的基本都是task stack
也就是上面 stackSize 为 768 的区域,我该在哪里修改呢?
当前任务实际的stack size,修改下面宏定义
#define SP_TASK_STACK_SIZE 2048
谢谢 kevin.
通过 ROV 工具调试,我发现如下结果:
其中 768 的栈是在 .cfg 文件定义的 Idle task 任务栈
Task.idleTaskStackSize = 768;
而 2048 和 4096 的栈分别是 simple_peripheral task 和 ICall task 定义的任务栈
// define in simple_peripheral_oad_onchip.c #define SP_TASK_STACK_SIZE 2048 // define in icall_addrs.h #define ICALL_TASK_STACK_SIZES { 4096 }
而问题中 .cfg 文件中 1024 栈的设置,可以在 ROV 中的 Hwi 中查看,这是一个 system stack,具体功能参考以下说明:
而下图中的 256,表示的是 “C system" 栈大小。。。