rtos实时操作系统基础知识
·
rtos可以在多个程序执行时不用等待。还可以释放cpu性能。
rtos中可以将不同的功能写作不同的任务然后给他们不同的优先级。优先级高的任务快速执行,低的在空闲时执行。
如果单片机运行内存,闪存小时不适合运行rtos
并行:多任务同时执行。
并发:多个任务不同时进行。
单核cpu可以通过快速切换任务执行多个任务。
freertos对更高优先级的任务用抢占式优先级,同优先级用时间片轮询调度。
高优先级的任务并不会一直执行,导致低优先级的任务无法执行。如果高优先级等待资源、延时,时会执行低优先级任务。
同等级时间片轮询调度时有一个任务在时间片停止前结束,其他任务会直接执行。
任务状态
freertos通过状态机管理各个任务
任务状态有运行态,就绪态,阻塞态,挂起态。
在执行时为运行态。就绪态:准备执行。阻塞态:正在延时或等待外部事件。挂起态:类似于暂停,需要解挂才能运行。
只有就绪态才能变成运行态。
内部为一个列表实现任务切换。
freertos实时内核通过滴答定时器测量时间。
在切换任务时应该保存当前任务数据,再次切换时才可以直接回复。上下文保存在任务堆栈中。(将当前任务在cpu的寄存器的值保存到堆栈中)
什么时候任务切换
上下文切换在pendsv的isr中处理,因为pendsv可以手动触发。rtos滴答中断,任务执行完毕会触发pendsv异常产生中断。
空闲任务:确保存在一个始终能运行的任务,负责释放被删除的任务。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)