예제 #1
0
//! \brief call stop, free mutex, clear stack, free capture-Modul
void ende()
{
    if(mutex_lock(mutex))
        printf("encoder.ende Fehler beu mutex_lock 1\n");
    g_run = 0;
    if(mutex_unlock(mutex))
        printf("encoder.ende Fehler bei mutex_unlock 1\n");
    stop();
    if(mutex_lock(mutex))
        printf("encoder.ende Fehler bei mutex_lock 2\n");
    //löschen des letzten Frames
    getFrame(NULL, NULL);
    if(mutex_unlock(mutex))
        printf("encoder.ende Fehler bei mutex_unlock 2\n");

    mutex_close(mutex);
    mutex = NULL;
 
    printf("Frames on Stack: %d\n", count_stack(g_FrameBuffer));
    clear_stack(g_FrameBuffer);
    if(capture)
    {
        capture->ende();
        interface_close(capture);
    }
    capture = NULL;
    printf("encoder.ende Encoder Modul ende\n");
}
예제 #2
0
int main (void)
{
	// Sync with the monitor.
	start_stack_check();
	paint_stack();
    benchmark_cmem_pattern();
	mk_mon_sync();
	mask_DDR(); 
	
	begin_use();
    JpegToBmp();
	end_use();

	count_stack();
    benchmark_malloc_max_usage();
    benchmark_malloc_num_mallocs();
    benchmark_malloc_num_malloc_free();
    benchmark_cmem_usage();
    readback_DDR(); // only need to be put in 1 core
    print_DDR_usage(); // only need to be put in 1 core
    
	mk_mon_debug_info(0x00444D41);//start of DMA_counters
   //print the dma_counters according to the following order here
     mk_mon_debug_info(to_core1);
     mk_mon_debug_info(to_core2);
     mk_mon_debug_info(to_core3);
     mk_mon_debug_info(to_core4);
     mk_mon_debug_info(to_DDR);
     mk_mon_debug_info(from_core1);
     mk_mon_debug_info(from_core2);
     mk_mon_debug_info(from_core3);
     mk_mon_debug_info(from_core4);
     mk_mon_debug_info(from_DDR);
   mk_mon_debug_info(0xFF444D41);//end of DMA_counters
	// Signal the monitor we are done.
	mk_mon_debug_tile_finished();
	return 0;
}
예제 #3
0
int getStackCount()
{
    //if(!g_FrameBuffer) return 0;
    return count_stack(g_FrameBuffer);
}