【FreeRTOS】读书笔记,嵌入式微操作系统
嵌入式实时操作系统的核心就是调度器和任务切换,调度器的核心就是调度算法。大概分为三种合作式调度器,抢占式调度器和时间片调度器。合作式调度器就是根据用户的设置时刻(周期或者单次)来执行相应的任务,每个时刻只有一个任务可以执行,这些任务间不支持被强占,直到该任务自愿放弃 CPU 的控制权。抢占式调度器如果使用了抢占式调度,最高优先级的任务一旦就绪,总能得到 CPU 的控制权。STM32启动过程。
嵌入式实时操作系统的核心就是调度器和任务切换,调度器的核心就是调度算法。大概分为三种合作式调度器,抢占式调度器和时间片调度器。
合作式调度器就是根据用户的设置时刻(周期或者单次)来执行相应的任务,每个时刻只有一个任务可以执行,这些任务间不支持被强占,直到该任务自愿放弃 CPU 的控制权。
抢占式调度器如果使用了抢占式调度,最高优先级的任务一旦就绪,总能得到 CPU 的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的 CPU 使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了 CPU 的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。
抢占式调度器会为每个任务都分配一个优先级,调度器会激活就绪任务中优先级最高的任务。
时间片调度器(Round-robin)实现 Round-robin 调度算法需要给同优先级的任务分配一个专门的列表,用于记录当前就绪的任务,并为每个任务分配一个时间片( 也就是需要运行的时间长度,时间片用完了就进行任务切换)。
这两天忙着验证在线升级程序,复习一遍STM32启动过程:
|
设置堆栈指针SP指向_initial_sp |
|
设置PC指针指向Reset_Handler |
|
设置中断向量表 |
|
配置系统时钟 |
|
配置外部SRAM/SDRAM |
|
跳转的C库执行main |

书籍来源:
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)