| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //Inculde Header Files-----------------------------------------------
- #include<stdlib.h>
- #include<stdio.h>
- #include<time.h>
- #include<unistd.h>
- #include<termios.h>
- #include<sys/types.h>
- #include<sys/stat.h>
- #include<fcntl.h>
- #include<sys/resource.h>
- //Enumerations-------------------------------------------------------
- typedef enum {false, true} bool;
- typedef enum {fuse_read,
- fuse_write,
- page_read,
- page_write,
- prog_check} mode;
- //Constants----------------------------------------------------------
- #define nibble_lo 0x0F
- #define nibble_hi 0xF0
- #define frame_mask 0x90
- //Structs------------------------------------------------------------
- typedef struct {
- char mode;
- char opt_lo;
- char opt_hi;
- } cmd_t;
- //Protoypes----------------------------------------------------------
- char * cmd_build(mode cmd_mode, char cmd_option);
- char * page_build(char size);
- void delay(int delay_time);
- //Variables----------------------------------------------------------
- char cmd_arr[3];
- char page_size = 0x40;
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //Build Command
- char * cmd_build(mode cmd_mode, char cmd_option){
- cmd_t * cmd_ptr = (cmd_t *)malloc(sizeof(cmd_t));
- (*cmd_ptr).mode = frame_mask|cmd_mode;
- (*cmd_ptr).opt_lo = frame_mask|(cmd_option&nibble_lo);
- (*cmd_ptr).opt_hi = frame_mask|((cmd_option>>4)&nibble_lo);
- char * frame_ptr = &((*cmd_ptr).mode);
- return frame_ptr;
- }
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //Delay in ms
- void delay(int delay_time){
- clock_t time1 = clock();
- while(((clock()-time1)/CLOCKS_PER_SEC)*1000
- < (clock_t)delay_time);
- }
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //Build Page
- char * page_build(char size){
- char page[size];
- for(int i=0; i<size; i++){
- page[i] = 0x9F;
- }
- char * page_ptr = &page[0];
- return page_ptr;
- }
|