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

 
 
> вопрос о макросе #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
Ответов
Сергей Борщ
сообщение Aug 27 2014, 19:22
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Никто не запретит читать. Тут комментарий не совсем отражает код. Они имели ввиду, что этот макрос (за неимением ничего лучшего) будут использовать для описания write only регистров. В языке нет средств для объявления write only переменных.

Добавил: Отдельный макрос сделан для облегчения жизни программисту - чтобы он видел этот намек на write-only, когда объявление регистра будет появляться во всплывающих подсказках редактора.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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