就是通过打开和关闭总中断,来实现
临界端的意思就是:
凡是进入临界段后,程序这时候不能中断,任务不能调度,只执行临界段中的代码。
只有退出临界段后,程序才能响应中断,和任务调度,信号量等等
所以要求:进入临界段和退出临界段要成对使用。
关中断,有关中断的api,调用就好
临界就是执行的代码需要保护 操作系统中,操作系统中会有中断导致不停的调度任务或者进入中断处理,不想被打断,就要把他们都关闭,然后在执行临界代码,执行完了,再恢复中断。关闭中断到恢复中断,这段时间是不会进行调度和进入中断处理的,这段时间正在执行的进程不会被打断也不会被切换出去。保护了这段代码执行过程不被干扰。
临界段会禁用系统调度,那个freertos的系统调度是靠systick的中断来实现的,只需要禁用中断,它就无法继续调度了
临界段一般是用于保护那种不可打断的任务的,如读写文件,模拟I2C时序等