RTOS内存管理、机器人吸尘器应用及LCD与触摸屏解析
1. RTOS内存管理
RTOS(实时操作系统)在内存管理方面有其独特的机制。以Mbed OS为例,默认会启动ISR/调度器、空闲、定时器和主线程,这些线程以静态形式创建。其中,前三个线程使用2 kB的RAM,且该值不可更改;主线程使用4 kB的RAM,可通过“mbed_app.json”文件更改参数 rtos.main-thread-stack-size
来设置。同样,每个创建的线程默认栈大小为4 kB,可通过“mbed_app.json”文件中的 rtos.thread-stack-size
参数或线程创建函数的 stack_size
参数进行更改。
在Mbed Studio项目中,默认不会创建初始的“mbed_app.json”文件,需要在项目根文件夹中创建一个空的“mbed_app.json”文件,然后从中调整内存参数。例如,添加以下代码可将主线程和用户线程的栈大小设置为2 kB:
{
"target_overrides": {
"*": {
"rtos.main-thread-stack-size": 2048,
"rtos.thread-stack-size": 2048
}
}
}
下面是Mbed OS中的内存管理示例代码:
#include "mbed.h"