栈大小配置
8 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 的整数倍。