source: soft/giet_vm/display/main_cma.c @ 297

Last change on this file since 297 was 297, checked in by alain, 10 years ago

Bug fix in both _tty_rx_isr() and _bdv_isr():
The ISR must do nothing it the status indicates that
there is no pending ISR.

File size: 2.0 KB
Line 
1#include "stdio.h"
2#include "hard_config.h"
3
4#define NBLOCKS 32
5
6unsigned char buf0[128*128] __attribute__((aligned(512)));
7unsigned char buf1[128*128] __attribute__((aligned(512)));
8
9__attribute__((constructor)) void main(void)
10{
11    int             fd;
12    unsigned int    blocks_to_skip = 0;
13    unsigned int    procid         = giet_procid();
14    unsigned int    cluster_xy     = procid/NB_PROCS_MAX;
15    unsigned int    lpid           = procid%NB_PROCS_MAX;
16    unsigned int    x              = cluster_xy >> Y_WIDTH;
17    unsigned int    y              = cluster_xy & ((1<<Y_WIDTH)-1);
18
19    giet_tty_printf( "*** Starting task display on processor[%d,%d,%d] at cycle %d\n\n", 
20                      x, y, lpid, giet_proctime() );
21
22    fd = giet_fat_open( "misc/images.raw", 0 );
23    if ( fd < 0 ) giet_exit("echec giet_fat_open for misc/images.raw");
24
25    giet_tty_printf("\ngiet_fat_open completed for misc/images.raw at cycle %d\n", 
26                    giet_proctime() );
27
28    giet_fb_cma_init( buf0, buf1, 128*128 );
29
30    giet_tty_printf("\ngiet_cma_init completed at cycle %d\n", 
31                        giet_proctime() );
32 
33    while ( blocks_to_skip < 10 * NBLOCKS )
34    {
35        giet_fat_read( fd, buf0, NBLOCKS, blocks_to_skip );
36
37        giet_tty_printf("\ngiet_fat_read to buf0 completed at cycle = %d\n",
38                            giet_proctime() );
39
40        giet_fb_cma_write( 0 );
41
42        giet_tty_printf("giet_cma_write for buf0 completed at cycle = %d\n",
43                            giet_proctime() );
44
45        blocks_to_skip = blocks_to_skip + NBLOCKS;
46
47        giet_fat_read( fd, buf1, NBLOCKS, blocks_to_skip );
48
49        giet_tty_printf("giet_fat_read to buf1 completed at cycle = %d\n",
50                            giet_proctime() );
51
52        giet_fb_cma_write( 1 );
53       
54        giet_tty_printf("giet_cma_write for buf1 completed at cycle = %d\n",
55                            giet_proctime() );
56
57        blocks_to_skip = blocks_to_skip + NBLOCKS;
58    }
59
60    giet_fb_cma_stop();
61
62    giet_exit("display completed");
63}
Note: See TracBrowser for help on using the repository browser.