实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)

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

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

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

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

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

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

实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)

2 DMA(直接存储器访问

实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)

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

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

3 中断向量表和中断处理

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

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

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

4 Memory

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

实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)

4 一种升级模式(从BootLoader到main)

实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)

其中实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)本来部分存的是Main image,当Bootloader启动未收到升级指令时,则正常跳到实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)中的Main中去执行

实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)中开始存储为Backup Image,Bootloader当收到升级指令后,会擦除Backup Image,并写入新的image

最后设置实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)为Main Image,当程序下次启动,若无升级指令,则跳到实时操作系统任务调度 DMA 中断向量表和中断处理 Memory 一种升级模式(从BootLoader到main)中的Main去执行

若不断发生升级,则两块区域Backup Image和Main Image就来回倒换