Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
вызов функции на С
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #31
RE: вызов функции на С
Для DMA нужно чтобы буфер был в no cache area, иначе есть шанс словить косяка в данных.
Вот кусок из httpd-ack, на который я ориентировался при создании кастомных функций для чтения диска и на которых основан код рипа GD на SD самого автора этого мода:

PHP код:
#define MAX_SECTOR_READ      128
#define SECTOR_BUFFER        (2352*(MAX_SECTOR_READ + 1))
#define MMAP_NOCACHE         0x20000000
char *buf, *nocache;
buf memalign(32SECTOR_BUFFER);
nocache = (void*)((mem_ptr_tbuf MMAP_NOCACHE);
... 

Как видишь буфер у него гораздо больше. И не нужно его в стек запихивать, будет overflow. Стек не резиновый (всего 64кб на сколько я помню на тред), лучше динамически память выделять в таких случаях.
Я думаю что он не спроста такое количество считывает за раз, попробуй и ты.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 15.02.2014 в 15:44, отредактировал пользователь SWAT.)
15.02.2014 15:44
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Сообщения в этой теме
RE: вызов функции на С - SWAT - 15.02.2014 15:44

Переход:


Пользователи просматривают эту тему: 3 Гость(ей)