реклама на сайте
подробности

 
 
> вопрос о макросе #define __O volatile
Cree
сообщение Aug 27 2014, 17:43
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 27-08-14
Пользователь №: 82 660



Здравствуйте! Практически ничего не знаю о контроллерах. Только начал читать первую книгу в жизни по этой теме.
Нашел не очень понятный момент. В core_cm3.h есть такой код.
Код
/* IO definitions (access restrictions to peripheral registers) */
#ifdef __cplusplus
  #define   __I     volatile             /*!< defines 'read only' permissions                 */
#else
  #define   __I     volatile const       /*!< defines 'read only' permissions                 */
#endif
#define     __O     volatile             /*!< defines 'write only' permissions                */
#define     __IO    volatile             /*!< defines 'read / write' permissions              */

/*@} end of group CMSIS_core_definitions */

Вот я не могу понять, что значит write only? Кто мне запретит читать оттуда? В случае volatile const все ясно - получится только читать, а писать нет. Будет здорово если поможете мне понять что значит write only permissions в данном контексте.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Aug 28 2014, 07:49
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Такие файлы надо начинать читать с конца wink.gif
Вот определена там функция
static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
ну и замечательно, используем её для разрешения прерываний.
Захотелось самостоятельно поработать с регистрами - смотрим выше по тексту определение NVIC и структуру NVIC_Type.

Все это дефайны типа __IO играют вспомогательную роль, нужны только для описания других - более полезных вещей, пока на них можно не обращать внимания.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 09:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01476 секунд с 7
ELECTRONIX ©2004-2016