*
对于裸机而言,

*
对于RTOS而言

即:对于裸机,打游戏意味着不能回消息 回消息意味着不能打游戏

对于RTOS 打游戏和裸机的切换只需要一个时间片节拍 1ms 从宏观来看 就是同时进行的两件事(但要在这两件事情的优先级一样的情况下)

*
如果这个时候肚子疼 (肚子疼优先级高)

裸机 :一旦肚子疼 触发中断 中断里flag置1 会产生一个更高优先级的中断

(中断里面不能写太多的程序 不然会卡死的)flag=1 赋值完之后又回去执行打游戏(因为中断会保护现场)直到执行完,又继续执行回复信息(),最后到了if
,才会执行去医院。

RTOS:去医院的优先级最高 先去医院 如果去医院函数里面有延时 在进行延时的时候让出CPU资源,可以让让打游戏和回复信息执行

4、

任务堆栈:把中断来之前的寄存器数据存起来 中断执行结束继续从断点处执行

每建一个任务 MPU就要分配一个任务堆栈给这个task

*
软件设置优先级 不限 可以设置无穷多个任务

硬件设置优先级 以STM32为例 优先级可设置为0~31 数字越大 优先级越高

虽然从软件来说 理论上可以设置无穷多个任务,但是每建一个任务 ,MPU就要分配一个任务堆栈给这个task,所以实际任务的创建还是有限的。

2、

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信