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 : '.');