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

 
 
> вопрос о макросе #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
Ответов
Genadi Zawidowsk...
сообщение Aug 27 2014, 20:45
Сообщение #2


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



В даташите на STM32-й какой-то про write only было написано, что читается reset state value - оно написано для каждого регистра. т.е., можно не читать - толку никакого. А где-то чтение откуда нельзя может привести (например) к стиранию флэша... Или ещё чего.
Go to the top of the page
 
+Quote Post



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

 


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


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