//Inculde Header Files----------------------------------------------- #include #include #include #include #include #include #include #include #include #include #include #include //Enumerations------------------------------------------------------- typedef enum {false, true} bool; typedef enum {idle, prog_enable, page_read, page_write, prog_check} mode; //Constants---------------------------------------------------------- #define nibble_lo 0x0F #define nibble_hi 0xF0 #define frame_mask 0x90 #define page_size 64 //Structs------------------------------------------------------------ typedef struct { char mode; char opt_lo; char opt_hi; } cmd_t; //Makros------------------------------------------------------------- #define error_handler(err_no, err_str) \ errno = err_no; \ perror(err_str); \ exit(EXIT_FAILURE); //Protoypes---------------------------------------------------------- void * signal_thread(void * arg_ptr); void set_timer(int sec, int usec); char * cmd_build(mode cmd_mode, char cmd_option); char * page_build(char size); unsigned char * page_mask(char * page_build_ptr, int page_end); int page_get(FILE * input_stream, int page_pos); //Global Variables--------------------------------------------------- char cmd_arr[3]; bool timer_state; unsigned char page_buf[64];