15 int read_eeprom(comedi_t *it,unsigned int **eeprom);
16 void dump_eeprom(unsigned int *eeprom,int len);
20 int main(int argc, char *argv[])
25 parse_options(argc,argv);
27 device=comedi_open(filename);
29 comedi_perror(filename);
33 len=read_eeprom(device,&eeprom);
34 dump_eeprom(eeprom,len);
42 int read_eeprom(comedi_t *it,unsigned int **eeprom)
50 subd=comedi_find_subdevice_by_type(it,COMEDI_SUBD_MEMORY,0);
52 fprintf(stderr,"No memory subdevice\n");
56 n=comedi_get_n_channels(it,subd);
57 maxdata=comedi_get_maxdata(it,subd,0);
60 fprintf(stderr,"Memory subdevice has strange maxdata, aborting\n");
63 ptr=malloc(sizeof(unsigned int)*n);
66 ret=comedi_data_read(it,subd,i,0,0,&data);
69 comedi_perror("comedi_data_read");
79 void dump_eeprom(unsigned int *eeprom,int len)
83 for (i = 0; i < len - 16; i+=16) {
85 for (j = 0; j < 16; j++) {
86 printf("%02x", eeprom[i + j] & 0xff);
89 for (j = 0; j < 16; j++) {
90 c = eeprom[i + j] & 0xff;
91 printf("%c", isprint(c) ? c : '.');
97 for (j = 0; j < len-i; j++) {
98 printf("%02x", eeprom[i + j] & 0xff);
104 for (j = 0; j < len-i; j++) {
105 c = eeprom[i + j] & 0xff;
106 printf("%c", isprint(c) ? c : '.');