AlexBi (18.10.2013 11:18, просмотров: 144) ответил fk0 на Что толку от второй страницы? Ну заткнётся на записи не второй, так третьей страницы и всё равно ждать. Если скорости разные и объёмы большие, то никакой буфер не поможет. memcpy внутри write -- ну давайте уж пойдём до конца и сделаем что-то а-ля
Вторая страница нужна когда за раз записывается много данных (больше чем размер одной страницы), т.к. на заполнение страницы данными тоже надо время, со второй страницей процессы записи и заполнения страницы идут параллельно. ДМА удобно тем, что экономит ресурсы процессора. При достаточно большой скорости СПИ работа по прерываниям "затормозит" процессор очень сильно. При небольшом буфере СПИ в процессоре будет 1-2 прерывания за мкс, их обработать не просто. Вход/прочитать адрес/проверить на конец/прочитать данные/записать в СПИ/выход - долгая история в сравнении с 1мкс. Т.е. на все время записи процессор будет сильно заторможен.
Соотношение размера стираемой страницы и буферной страницы важно тем, что если они равны, то чтение/модификация/запись не требует вычитывания во внутреннюю память стираемой страницы. Страница читается в буфер, там же изменяется что-то и записывается обратно. Вычитывание 4кб по СПИ - это время и необходимость буфера на 4кб во внутренней памяти. Для сравнительно мелких м/к это ставит крест на возможности использования SST26 в режиме чтение/модификация/запись, остаются только циклические буферы и подобие FS.