RTOS 中断篇-使用临界区保护共享资源

RTOS 中断篇-使用临界区保护共享资源

概述

上一节讲述了中断与中断之间、中断与任务之间存在共享资源的竞争。为了保护共享资源,可以使用临界区机制保护共享资源。

任务与任务共享资源保护-使用临界区保护共享资源的小节中,我们已经认识到临界区的实现原理和基本用法。这里对其再次总结回顾。

临界区的基本原理

临界区是一个共享资源保护机制的通俗概念,具体来讲,临界区是一种上锁-去锁机制,建立临界区后,就对该段代码进行了上锁,其他任务、中断均无法再次进入该段代码,除非去锁。

临界区可以有多种实现方式,通常使用关闭全局中断的方式来实现,ESP-IDF 中对临界区的实现是关闭不大于 configMAX_SYSCALL_INTERRUPT_PRIORITY中断的所有中断(包括 SysTick 中断)。

如下图,代码中进入临界区和退出临界区之间的代码,将独占 CPU 使用权,不会被其他中断、任务打断执行。因此其中的共享资源访问是安全的。

猜你喜欢

转载自blog.csdn.net/wangyx1234/article/details/128253363