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

 
 
> virt_to_phys в arm-linux'е, как получить физ. адр. локальной переменной ?
vvj
сообщение Nov 23 2005, 13:44
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090



Надо (в RM9200) задать Peripheral_DMA_Controller'у адрес буфера (в виде локальной переменной) для отправки (в данном случае в I2S).
Очевидно, DMA_Controller оперирует физ. адресами - соответсвенно я использую макрос __pa() (т.е. virt_to_phys) и пишу полученный физ.адрес в (промапленый есс-но) TransferPointerRegister Peripheral_DMA_Controller'у.

Проблема в том, что прриходит не то. То есть указатель не соотв. дейсвительному для Peripheral_DMA_Controller'а.

Что делать?

EDIT: Вообще сделать надо тоже что и в Application Note doc6020.pdf (Connecting the Atmel ARM-based Serial Synchronous Controller (SSC) to an I2S-compatible Serial Bus)
НО ПОД ЛИНУКС.
Может есть примеры - укажите, плиз!

Вообще - где у линукса "лежат" локальные переменные?

Сообщение отредактировал vvj - Nov 24 2005, 18:55
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gab
сообщение Nov 25 2005, 19:50
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 376
Регистрация: 30-06-04
Из: Moskow
Пользователь №: 218



А может wb() поможет?
Мне на связке PCI и x86 с такой же проблемой помогло...
В принципе, wb() (или rwb(), rb(), srb(), swb(), srwb()) гарантирует, что всё что хотели записать в мэпированную (и не только) память, всё записали. Дальше - работа железа...


--------------------
serpents on the way to paradise -
dying for love, fighting for ages.

Go to the top of the page
 
+Quote Post



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

 


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


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