ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
149973 Топик полностью
Сергей Борщ (04.03.2009 15:22, просмотров: 546) ответил Alex B. на Статья про атомарный доступ к битовым полям.
Введение сумбурное, идеи в макросах интересные. Непонятности во введении: 
Запрещение прерываний - Такое решение нельзя использовать в системах с вытесняющей RTOS (там есть свои методы).
Почему нельзя? Какие другие магические методы ОС запретят прерыванию делать _LATA0 = ~_LATA0 ?
Критическая секция Критическая секция - это часть кода, в которой запрещено переключение контекста. Чаще всего это означает запрещение прерываний и ...
Если прерывания не запрещаются, что мешает прерыванию сделать _LATA0 = ~_LATA0 и чем поможет в этом случае критическая секция? Если они таки запрещаются, то чем критическая секция, которая (возможно) делает еще какие-то дополнительные действия, лучше простого запрещения/восстановления прерываний? Далее по тексту:
Условный оператор ? : Для того чтобы реализовать чтение битового поля, применен тернарный оператор ?. Если тип доступа к структуре равен BFA_RD, то макрос генерирует следующее выражение:
Собственно тернарный оператор кроме как в заголовке больше нигде не встречается.