По поводу таймингов и отображения концов строк:
- Обратный ход по строкам занимает обычно 20% от времени строки, а не 3%.
- Кадры тоже слишком "ужаты".
- Счетчики строк и кадров у EP93xx считают сверху вниз.
Погуглите что-нибудь вроде "vesa 640x480 timings".
Цитата(metalkain @ Oct 18 2006, 19:27)

Четность строк проверяю так:
Код
int ModifyAdr(int i)
{
if(fmod(i,2*words_per_str)<words_per_str){
return beg_of_0+(i/words_per_str)*(words_per_lstr/2)+fmod(i,words_per_str);
}
else{
return beg_of_1+(i/words_per_str-1)*(words_per_lstr/2)+fmod(i,words_per_str);
}
}
где words_per_str - число слов на строку (в моем случае использования части экрана это 30), word_per_lstr - реальное число слов на строку (80),
beg_of_0 - адрес начала первой нечетной строки,
beg_of_1 - фдрес начала первой четной строки.
Функция ModifyAdr преобразует линейный адрес необходимой мне части экрана в адрес SDRAM.
Честно попытался разобрать этот код.
- Почему "words_per_lstr/2", а не просто "words_per_lstr"?
- Зачем во второй части написано "i/words_per_str-1", если адреса четных и нечетных строк уже учтены?
- Зачем использовать fmod для целых чисел?
ИМХО, лучше так не делать.