*
对于裸机而言,
*
对于RTOS而言
即:对于裸机,打游戏意味着不能回消息 回消息意味着不能打游戏
对于RTOS 打游戏和裸机的切换只需要一个时间片节拍 1ms 从宏观来看 就是同时进行的两件事(但要在这两件事情的优先级一样的情况下)
*
如果这个时候肚子疼 (肚子疼优先级高)
裸机 :一旦肚子疼 触发中断 中断里flag置1 会产生一个更高优先级的中断
(中断里面不能写太多的程序 不然会卡死的)flag=1 赋值完之后又回去执行打游戏(因为中断会保护现场)直到执行完,又继续执行回复信息(),最后到了if
,才会执行去医院。
RTOS:去医院的优先级最高 先去医院 如果去医院函数里面有延时 在进行延时的时候让出CPU资源,可以让让打游戏和回复信息执行
4、
任务堆栈:把中断来之前的寄存器数据存起来 中断执行结束继续从断点处执行
每建一个任务 MPU就要分配一个任务堆栈给这个task
*
软件设置优先级 不限 可以设置无穷多个任务
硬件设置优先级 以STM32为例 优先级可设置为0~31 数字越大 优先级越高
虽然从软件来说 理论上可以设置无穷多个任务,但是每建一个任务 ,MPU就要分配一个任务堆栈给这个task,所以实际任务的创建还是有限的。
2、