LINUX.ORG.RU

Сообщения nibbler

 

arm linux framebuffer

Форум — Development

fbfd = open("/dev/fb0", O_RDWR);

char *fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);

printf("start memset test...\n");
gettimeofday (& before, NULL);
int i; for(i = 10; i > 0; i--){
memset(fbp, 0xff, screensize);
memset(fbp, 0x00, screensize);
}
gettimeofday (& after, NULL); t = after.tv_sec - before.tv_sec + (double)(after.tv_usec -before.tv_usec)/1000000;
printf("memset 20 test: %f\n\n", t);

printf("\n\nstart write test...\n");
char * buff = alloca(screensize);
memset(buff, 0xaa, screensize);
char * buff2 = alloca(screensize);
memset(buff2, 0xf0, screensize);
gettimeofday (& before, NULL);
for(i = 10; i > 0; i--){
close(fbfd);
fbfd = open("/dev/fb0", O_RDWR);
write(fbfd, buff, screensize);
close(fbfd);
fbfd = open("/dev/fb0", O_RDWR);
write(fbfd, buff2, screensize);
}
gettimeofday (& after, NULL);
t = after.tv_sec - before.tv_sec + (double)(after.tv_usec - before.tv_usec)/1000000;
printf("close open write 20 test: %f\n\n", t);

##############################

И вот что на выходе:

start memset test... memset 20 test: 2.163977

start write test... close open write 20 test: 0.754604

Что-то уж очень медленно. Почему второй вариант быстрее первого? Может кто знает что можно почитать про framebuffer для embedded линуксов, а ещё лучше про линуксы на arm-ах?

Заранее спасибо.

nibbler
()

toolchain, toolbox for cross-develop

Форум — Development

Уважаемые форумчане, подскадите пожалуста, что выбрать (из бесплатного) для разработки под linux на ARM-е.

nibbler
()

RSS подписка на новые темы