Добрый день товарищи. Есть такая ситуация. Пытаюсь вывести содержимое памяти на дисплей. Кагда я распологаю программу в динамической памяти (16 бит) и читаю массив lbuf в 8 битный поток, то данные вычитываются не правильно. я оставляю включенным только один пиксель и вижу его каждый второй кадр (т.е. один кадр пустой) при этом массив начинает отображаться не с начала экрана а значительно позже.
в дискрипторе указывается фиксированный объем байт для вычитывания (0xFF00) и вычисляется количество дескрипторов для отображения одного кадра = WIDTH*HEIGHT/0xFF00 = 5 . Если оставить один-два дескриптора т.е. вычитывать меньше чем объем дисплея. то включенный пиксель будет на каждом кадре.
в связи с этим вопрос - как синхронизируются кадровая синхронизация и чтение из SDRAM. Может кто сталкивался в подобным?
и еще. если программу располагать в SRAM то почемуто работает. чертовщина))))
////Initial LCD Display
alt_video_display* display_global;
display_global = alt_video_display_init( "/dev/lcd_sgdma", // Name of video controller
WIDTH, // Width of display 640
HEIGHT, // Height of display 480
8, // Color depth
lbuf, // Where we want our frame buffers
DESCRIPTOR_MEM_BASE, // Where we want our descriptors
NUM_FRAME);
display_global->buffer_being_displayed = 0;
for ( i=0; i<120000;i++ )
{
lbuf[i]=0x0000;
}
while(1)
{
alt_video_display_register_written_buffer(display_global);
}
Сообщение отредактировал koliyh - Nov 26 2011, 11:23
Эскизы прикрепленных изображений