![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Solodov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 23.3.2006 Репутация: нет Всего: нет |
// как понять эти макросы? #define WRITE_REG32(A, B) *(volatile uint32 *)(A) = (B) // 1) по аддресу переменной А записывается переменная В ? (Почему нельзя просто написать А=В) #define READ_REG32(A) *(volatile uint32 *)(A) // 2) Чтение переменной по адресу А? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
потому, что A - адрес, и нужно было бы писать *A=B но т.к. вместо A, обычно, будут числовые константы, то их надо привести к типу указателя вот это и делается в макросе... -------------------- qqq |
|||
|
||||
| Solodov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 23.3.2006 Репутация: нет Всего: нет |
Грубо говоря по произвольному аддресу, который обозвали -"А" записываем число "В", правильно ли я понял?
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
ну да...
-------------------- qqq |
|||
|
||||
| regis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
Квалификатор volatile к указателю видимо добавлен для того, чтобы компилятор сделал чтение-запись атомарными. Впрочем, далеко не уверен, что это работает на практике.
--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |