/** * * Initialize timer subsystem. * * @return None. * * @note None. * *****************************************************************************/ void swConfig_initTimerSubsystem(void) { #ifdef USE_XYLON_PLATFORM_LIBRARY plfTimer_init(); plfTimer_start(SYSTEM_TIMER); #else #ifdef __arm__ XTime t=0; XTime_SetTime(t); #else tmrCnt=0; #endif #endif }
int vbx_timestamp_start() { // Reset counter to 0. XTime_SetTime((XTime) 0); return 0; }
static void execute(int run) { XTime time; u32 frame, init_frame, frame_before_start, generations; unsigned int seed; init_interrupt(); XTime_GetTime(&time); seed = time; srand(seed); frame_before_start = read_frame_number(); XTime_SetTime(0); while (!OCM_CPU0_RUNNING); OCM_CPU1_RUNNING = 1; /* If the program will run without PL reset then the first frame will * not be 0. */ init_frame = init_popul(); update_development(get_elit(), init_frame, time); for (generations = 1; OCM_CPU0_RUNNING; ++generations) { frame = new_popul(); update_development(get_elit(), frame, generations); } XTime_GetTime(&time); if (init_frame > 0 && init_frame == frame_before_start) { /* The first frames should be removed because those belong to * the previous run. The size of the FIFO implies that only * one frame remain in the FIFO but it will influence one * run (furthermore, these frames might be several times * in the development list). */ int removed_developments = remove_first_frames(); const int removed_frames = 1; /* Consequently, the frames are renumbered and should start * with number 0 */ postproc_development(init_frame + removed_frames); #if 0 xil_printf("Frame before start: 0x%X. First frame: 0x%X. " "I removed %d development items " "(%d frames).\n\r", frame_before_start, init_frame, removed_developments, removed_frames); (void) run; #else (void) removed_developments; #endif } xil_printf("Run %d is finished.\n\r", run); next_development_run(seed, time, OCM_FRAME_COUNTER, generations); OCM_CPU1_RUNNING = 0; }