TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2652RB: CCS 中的栈大小设置

Part Number:CC2652RB

Hi Ti:

我看到很多地方和 stack size 相关,想问一下以下设置都有什么区别:

    

我想请问一下上面的设置都表示什么意思呢?

而我通过 TI 官方文档对 stack size 进行输出,结果如下:

实际值和上面的设置值都不一样,请问这些值都要怎么理解呢?

Kevin Qiu1:

第一个是CCS编译的stack,第二个是默认的system stack,第三个是任务的stack

上面的stack是RTOS中的概念,每个任务都有对应的stack size,用来存放变量等

junde deng 说:实际值和上面的设置值都不一样,请问这些值都要怎么理解呢?

任务程序越大,stack size也就越大

具体的你可以查下stack的概念和使用方法

,

junde deng:

Kevin Qiu1 说:第二个是默认的system stack,第三个是任务的stack

那下面两张图中的 stack 分别表示的是哪种stack呢

  

我看到说可以减小 ROV 中未使用的 stack,也就是上面 stackSize 为 768 的区域,我该在哪里修改呢?

,

Kevin Qiu1:

代码中的基本都是task stack

junde deng 说:也就是上面 stackSize 为 768 的区域,我该在哪里修改呢?

当前任务实际的stack size,修改下面宏定义

#define SP_TASK_STACK_SIZE                  2048

,

junde deng:

谢谢 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_SIZE2048// define in icall_addrs.h
#define ICALL_TASK_STACK_SIZES { 4096 }

而问题中 .cfg 文件中 1024 栈的设置,可以在 ROV 中的 Hwi 中查看,这是一个 system stack,具体功能参考以下说明:

  

而下图中的 256,表示的是 “C system" 栈大小。。。

赞(0)
未经允许不得转载:TI中文支持网 » CC2652RB: CCS 中的栈大小设置
分享到: 更多 (0)