Компоненты и технологии • №2 '2011 компоненты


КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 7 '2011



Pdf көрінісі
бет74/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   70   71   72   73   74   75   76   77   ...   129
Kurniz

32
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 7 '2011
микроконтроллеры
Следует отметить, что в популярном се-
мействе микроконтроллеров ARM Cortex M3 
(как и в некоторых других) меньшие значения 
приоритетов прерываний соответствуют ло-
гически б
óльшим приоритетам. Если вы хоти-
те назначить прерыванию более высокий при-
оритет, вы назначаете ему приоритет с более 
низким номером. Одна из возможных причин 
краха программы в таких случаях — назначе-
ние прерыванию номера приоритета меньше-
го, чем configMAX_SYSCALL_INTERRUPT_
PRIORITY, и вызов из него API-функции.
Пример корректной настройки файла 
FreeRTOSConfig.h для микроконтроллеров 
ARM Cortex M3:
#define configKERNEL_INTERRUPT_PRIORITY 
255
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 191
Выводы
В любой операционной системе реального 
времени с вытесняющей многозадачностью 
существует потенциальный источник оши-
бок и сбоев работы системы — это едино-
временное обращение сразу нескольких задач 
к одному ресурсу. В качестве ресурса может 
выступать множество видов объектов:
память;

периферийные устройства;

библиотечные функции и др.

Проблема возникает, когда одна задача 
начинает какие-либо действия с ресурсом, 
но не успевает их закончить, когда проис-
ходит переключение контекста и управление 
получает другая задача, которая обращается 
к тому же самому ресурсу, состояние которо-
го носит промежуточный, не окончательный 
характер (из-за воздействия первой задачи). 
При этом результат обращения к ресурсу 
в обеих задачах окажется ошибочным, ис-
каженным.
К счастью, во FreeRTOS существуют встро-
енные на уровне ядра механизмы обеспечения 
совместного доступа к одному аппаратному 
ресурсу. С применением счетных семафоров 
для управления доступом к ресурсам читатель 
уже познакомился. В следующей публикации 
внимание будет сконцентрировано на сред-
ствах FreeRTOS обеспечения безопасного до-
ступа к ресурсам. К таковым относятся:
мьютексы и двоичные семафоры;

счетные семафоры;

критические секции;

задачи-сторожа (gatekeeper tasks).

n
Литература
1. Эндрюс Г. Р. Основы многопоточного, парал-
лельного и распределенного программирования. 
Пер. с англ. М.: ИД «Вильямс», 2003.
2. Курниц А. FreeRTOS — операционная система 
для микроконтроллеров // Компоненты и тех-
нологии. 2011. № 2–6.
3. Barry R. Using the FreeRTOS real time kernel: 
A Practical Guide. 2009.
4. 


Достарыңызбен бөлісу:
1   ...   70   71   72   73   74   75   76   77   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет