502398542 发表于 2019-1-14 16:16:08

定时器栈大小

本帖最后由 502398542 于 2019-1-14 16:24 编辑

在freertos下创建了几个定时器,其中有一个定时器回调函数中局部变量比较多,大概有9KByte那么多,请问怎么样才能单独给这个定时器分配一个比较大的栈空间?

eric2013 发表于 2019-1-15 00:25:46

在FreeRTOSConfig.h文件配置就行

#define configUSE_TIMERS                                  1
#define configTIMER_TASK_PRIORITY                  2
#define configTIMER_QUEUE_LENGTH                  10
#define configTIMER_TASK_STACK_DEPTH      ( configMINIMAL_STACK_SIZE * 2 )

502398542 发表于 2019-1-15 11:33:47

eric2013 发表于 2019-1-15 00:25
在FreeRTOSConfig.h文件配置就行

#define configUSE_TIMERS                                  1


这样是不是给所有定时器都配置了一个大的栈空间,而我只有一个定时器用的栈比较大,其他几个定时器都只用很小的栈
另外设置了这个值之后,比如我有5个定时器,configTIMER_TASK_STACK_DEPTH 设置成1024,configTOTAL_HEAP_SIZE是不是要在原来的值上增加1024*5?

eric2013 发表于 2019-1-15 11:46:32

502398542 发表于 2019-1-15 11:33
这样是不是给所有定时器都配置了一个大的栈空间,而我只有一个定时器用的栈比较大,其他几个定时器都只用 ...

定时器任务只有一个,要根据你所有几定时器子函数需要的局部变量进行加大。

502398542 发表于 2019-1-15 13:08:30

eric2013 发表于 2019-1-15 11:46
定时器任务只有一个,要根据你所有几定时器子函数需要的局部变量进行加大。

原来如此,明白了,多谢指教
页: [1]
查看完整版本: 定时器栈大小