int main(int argc, char ** argv){ char c ; FILE * fr; long start_time, end_time ; double diff_time ; struct timespec cpu_time ; unsigned int size = 0 ; initGPIOs(); #ifdef MARK1 init_i2c(3); #endif fr = fopen (argv[1], "rb"); /* open the file for reading bytes*/ if(fr < 0){ printf("cannot open file %s \n", argv[1]); } size = fread(configBits, 1, 1024*1024, fr); printf("bit file size : %d \n", size); //clock_gettime(CLOCK_REALTIME, &cpu_time); //start_time = cpu_time.tv_sec ; if(serialConfig(configBits, size) < 0){ printf("config error \n"); exit(0); }else{ printf("config success ! \n"); } //clock_gettime(CLOCK_REALTIME, &cpu_time); //end_time = cpu_time.tv_sec ; //diff_time = end_time - start_time ; //diff_time = diff_time/1000000 ; //printf("Configuration took %fs \n", diff_time); closeGPIOs(); fclose(fr); return 1; }
int main(int argc, char ** argv) { char c ; unsigned int i ; FILE * fr; long start_time, end_time ; double diff_time ; struct timespec cpu_time ; unsigned int size = 0 ; initGPIOs(); init_i2c(1); //parse programm args for(i = 1 ; i < argc ; ) { if(argv[i][0] == '-') { switch(argv[i][1]) { case '\0': i ++ ; break ; case 'r' : resetFPGA(); closeGPIOs(); close(i2c_fd); return 1 ; break ; case 'h' : printHelp(); return 1 ; break; default : printHelp(); return 1 ; break ; } } else { //last argument is file to load break ; } } if(init_spi() < 0) { printf("cannot open spi bus \n"); return -1 ; } fr = fopen (argv[i], "rb"); /* open the file for reading bytes*/ if(fr < 0) { printf("cannot open file %s \n", argv[1]); return -1 ; } memset((void *) configBits, (int) 0, (size_t) 1024*1024); size = fread(configBits, 1, 1024*1024, fr); printf("bit file size : %d \n", size); //8*5 clock cycle more at the end of config if(serialConfig(configBits, size+5) < 0) { printf("config error \n"); exit(0); } else { printf("config success ! \n"); } closeGPIOs(); fclose(fr); close(spi_fd); close(i2c_fd); return 1; }