source: soft/giet_vm/display/main.c @ 343

Last change on this file since 343 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: 1.7 KB
RevLine 
[295]1#include "stdio.h"
2#include "hard_config.h"
[191]3
[258]4#define NBLOCKS 32   // (128 * 128) / 512
[191]5
[258]6unsigned char buf[128*128] __attribute__((aligned(512)));
[249]7
[258]8__attribute__((constructor)) void main()
9{ 
[295]10    int             fd;
11    int             blocks;
12    unsigned int    ko;
13    unsigned int    blocks_to_skip = 8*NBLOCKS;
[207]14
[295]15    unsigned int    procid     = giet_procid();
16    unsigned int    cluster_xy = procid/NB_PROCS_MAX;
17    unsigned int    lpid       = procid%NB_PROCS_MAX;
18    unsigned int    x          = cluster_xy >> Y_WIDTH;
19    unsigned int    y          = cluster_xy & ((1<<Y_WIDTH)-1);
[254]20
[295]21    giet_tty_printf( "*** Starting task display on processor[%d,%d,%d] at cycle %d\n\n", 
22                      x, y, lpid, giet_proctime() );
23
[258]24    ///////////////////////////////////////////
25    fd = giet_fat_open( "misc/images.raw", 0 );
[297]26    if ( fd < 0 ) giet_exit("echec giet_fat_open for misc/images.raw");
[254]27
[297]28    giet_tty_printf("\ngiet_fat_open completed for misc/images.raw at cycle %d\n", 
29                    giet_proctime() );
30
[258]31    /////////////////////////////////////////
32    while ( blocks_to_skip < (10 * NBLOCKS) )
[191]33    {
[258]34        // lecture image sur le disque
[297]35        giet_fat_read( fd, buf, NBLOCKS, blocks_to_skip );
36       
37        giet_tty_printf("\ngiet_fat_read for image %d completed at cycle %d \n", 
38                        (blocks_to_skip>>5), giet_proctime());
[191]39
[258]40        // transfert vers le frame buffer 
[297]41        giet_fb_sync_write( 0, buf, 128 * 128 );
[254]42
[297]43        giet_tty_printf("\ndisplay completed for image %d at cycle %d \n", 
44                        (blocks_to_skip>>5), giet_proctime());
45
[258]46        blocks_to_skip = blocks_to_skip + NBLOCKS;
47    }
[254]48
[297]49    giet_exit("completed");
[191]50}
Note: See TracBrowser for help on using the repository browser.