//Include Header----------------------------------------------------- #include"prog.h" //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Main-Program int main(int argc, const char * argv[]){ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Initializations //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Setting up Timer-Signal-------------------------------------------- sigset_t signal; pthread_t thread; int signal_err, pthread_err; signal_err = sigemptyset(&signal); if(signal_err!=0){ error_handler(signal_err, "Not a valid Signal"); } signal_err = sigaddset(&signal, SIGALRM); if(signal_err!=0){ error_handler(signal_err, "Not a valid Signal"); } pthread_err = pthread_sigmask(SIG_BLOCK, &signal, NULL); if(pthread_err!=0){ error_handler(pthread_err, "Error changing Signal-Mask"); } //initializing USART at USB_PORT------------------------------------- int USB = open("/dev/ttyACM3", O_RDWR|O_NOCTTY|O_NONBLOCK); int USB_err = isatty(USB); if(USB_err!=1){ error_handler(USB_err, "No File Descriptor"); } struct termios * termios_ptr = (struct termios *) malloc(sizeof(struct termios)); (*termios_ptr).c_iflag = IGNPAR; //ignore Parity-Err (*termios_ptr).c_oflag = 0; (*termios_ptr).c_cflag = CS8|CREAD; //set Size, enable RX (*termios_ptr).c_lflag = 0; (*termios_ptr).c_cc[VMIN] = 0; //set min Characters cfsetspeed(termios_ptr, B19200); //set Baudrate 19.2k tcsetattr(USB, TCSANOW ,termios_ptr); //initializing Stream for Source-Code-------------------------------- FILE * file_stream = fopen("test.hex", "r"); if(file_stream==NULL){ fprintf(stderr, "No File \n"); } int page_cnt = 0; int skip; int page_end = page_size; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Programming cycle //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Loading and Masking Page------------------------------------------- while(page_end==page_size){ skip=1; page_end = page_get(file_stream, page_cnt); printf("Page %d: \n", page_cnt); for(int i=0; i