实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)
1 任务调度:(优先级抢占调度+时间片轮洵调度)
低优先级的任务正在执行中,另一个高优先级的任务进入就绪状态,则立马进入处理器抢占,执行高优先级任务,直到高优先级的任务
释放处理器(完成、挂起、阻塞),才可继续用执行低优先级任务
当系统中存在几个相同优先级的任务时,就会采用时间片轮洵的方式进行调度
比如工A/B/C三个进程,假设时间片为5ms,则时间片轮洵为A/B/C依次执行5ms然后再循环执行
任务切换:任务切换时,把当前任务的现场数据保存在自己的任务栈里面,再把待运行的任务
的数据从自己的任务栈装载到 CPU 中,改变CPU的PC,SP,寄存器等。
2 DMA(直接存储器访问)
一般情况下,把外设如IIC的数据搬到内存,需要经外设到CPU再到RAM
DMA 则不经过CPU,工作时,先向CPU申请总线控制权,指定源地址 目的地址 需要搬多少字节,然后start,执行完把系统总线让给CPU
3 中断向量表和中断处理
中断向量表中的每一项都是一个中断或异常处理函数的入口地址,就是来了一个中断后,告诉系统去哪个地址去执行中断
中断处理:接收到中断之后,会挂起当前正在执行的任务,保护好现场,将PC指针知道中断执行的地址,去处理中断请求,
处理完后,再将PC指针返回要原来在执行的地址去
4 Memory
flash擦除:以块为单位,不能按字节去擦除或者更改
4 一种升级模式(从BootLoader到main)
其中本来部分存的是Main image,当Bootloader启动未收到升级指令时,则正常跳到
中的Main中去执行
中开始存储为Backup Image,Bootloader当收到升级指令后,会擦除Backup Image,并写入新的image
最后设置为Main Image,当程序下次启动,若无升级指令,则跳到
中的Main去执行
若不断发生升级,则两块区域Backup Image和Main Image就来回倒换