栈大小配置
25 Nov 2024
Read time: 1 minute(s)
中断栈
Luban-Lite 中断服务程序运行在独立的栈中,大小可以在 menuconfig
配置界面中修改:
Board options --->
Mem Options --->
(4096) Interrupt stack siz // 大小为 4k
RT-Thread 线程栈
Kernel 为 RT-Thread 时,几个典型线程的栈空间大小的配置:
-
main
线程栈大小Rt-Thread options ---> RT-Thread Components ---> (2048) Set main thread stack size // 大小为 2k
-
idle
线程栈大小Rt-Thread options ---> RT-Thread Kernel ---> (2048) The stack size of idle thread // 大小为 2k (4) Alignment size for CPU architecture data access // CONFIG_RT_ALIGN_SIZE
重要:在使用系统 printf 打印浮点时,要求线程堆栈为 8 字节对齐。此时
CONFIG_RT_ALIGN_SIZE
需要设置为 8,同时线程栈大小也是 8 的整数倍。 -
shell
线程栈大小Rt-Thread options ---> RT-Thread Components ---> MSH: command shell ---> (4096) The stack size for thread // 大小为 4k
Baremetal 用户栈
裸机环境时只有一个用户栈,栈大小如下配置:
Baremetal options --->
(8192) Main loop stack // AIC_NORMALSTACK_SIZE, 大小为 8k
重要:
在使用系统 printf 打印浮点时,要求线程堆栈为 8 字节对齐。此时 AIC_NORMALSTACK_SIZE
需要设置为
8 的整数倍。