Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ISA DMA driver 
:(
    Опции темы
nnk
Дата 2.3.2012, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.1.2012

Репутация: нет
Всего: нет



здравствуйте =)

ОС Gentoo (если это имеет значение, ядро 2.6.39) вопрос такой:

пишу модуль ядра для опроса АЦП платы Fastwel AIC121 с передачей данных по каналу DMA.
Сначала выделяю память таким образом:
Код

dma_pages = __get_free_pages(GFP_KERNEL | __GFP_DMA, order); 
phAddr = __pa(dma_pages);


пробовала выделить через dma_alloc_coherent, но функция возвращает нулевые указатели, отсюда первый вопрос, по какой причине такое может происходить?

успешно регистрирую использование канала (request_dma)

далее работаю с DMA контроллером
Код

outb(3 | 4, 0xA); 
outb(3 | 0x18, 0xB); 
page = phAddr >> 16;
offset = (unsigned int)phAddr;
outb(page, 0x82);
outb(0, 0xC); //clear flip flop
outb((byte)offset, 0x06);
outb((byte)(offset >> 8), 0x06);
outb(lbDataCount, 0x07);
outb(hbDataCount, 0x07);
outb(3, 0xA);


после этого разрешаю DMA на самой плате, и по идее все должно работать, но на деле ничего не происходит, текущий адрес не меняется, буфер пустой, регистр состояния контроллера DMA возвращает нули, по документации вроде бы все правильно, что я упускаю из вида?
PM MAIL   Вверх
nnk
Дата 2.3.2012, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.1.2012

Репутация: нет
Всего: нет



вопрос решен, тему можно удалить, как всегда все дело в невнимательности,
хотя если кто-нибудь подскажет почему не хочет работать функция dma_alloc_coherent, буду рада

PM MAIL   Вверх
xvr
Дата 2.3.2012, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(nnk @  2.3.2012,  13:52 Найти цитируемый пост)
хотя если кто-нибудь подскажет почему не хочет работать функция dma_alloc_coherent, буду рада

Может слишком много попросили? Я ядро ничего в ядерный лог не написало?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.