实时操作系统任务调度 DMA 中断向量表和中断处理 Memory

来源:互联网 发布:全球程序员节直播视频 编辑:程序博客网 时间:2024/05/02 01:20

1 任务调度:(优先级抢占调度+时间片轮洵调度

低优先级的任务正在执行中,另一个高优先级的任务进入就绪状态,则立马进入处理器抢占,执行高优先级任务,直到高优先级的任务

释放处理器(完成、挂起、阻塞),才可继续用执行低优先级任务

当系统中存在几个相同优先级的任务时,就会采用时间片轮洵的方式进行调度

比如工A/B/C三个进程,假设时间片为5ms,则时间片轮洵为A/B/C依次执行5ms然后再循环执行

任务切换:任务切换时,把当前任务的现场数据保存在自己的任务栈里面,再把待运行的任务
                  的数据从自己的任务栈装载到
CPU 中,改变CPUPCSP,寄存器等。


2 DMA(直接存储器访问


一般情况下,把外设如IIC的数据搬到内存,需要经外设到CPU再到RAM

DMA 则不经过CPU,工作时,先向CPU申请总线控制权,指定源地址 目的地址 需要搬多少字节,然后start,执行完把系统总线让给CPU

3 中断向量表和中断处理

中断向量表中的每一项都是一个中断异常处理函数的入口地址,就是来了一个中断后,告诉系统去哪个地址去执行中断

中断处理:接收到中断之后,会挂起当前正在执行的任务,保护好现场,将PC指针知道中断执行的地址,去处理中断请求,

处理完后,再将PC指针返回要原来在执行的地址去

4 Memory

flash擦除:以块为单位,不能按字节去擦除或者更改