34 "NONE",
"INT8",
"INT16",
"INT32",
"FLOAT",
"VECTOR3F",
"MATRIX6F",
"GROUP" 69 printf(
"unknown type %u\n", (
unsigned int)type);
76 fprintf(stderr,
"ERROR: %s\n", why);
81 main(
int argc,
char *argv[])
90 fail(
"missing EEPROM file name");
92 if (
NULL == (fp =
fopen(argv[1],
"rb"))) {
93 fail(
"can't open EEPROM file");
96 fail(
"can't read EEPROM file");
103 fail(
"bad magic in EEPROM file");
106 fail(
"unsupported EEPROM format revision");
110 index =
sizeof(*header);
117 printf(
"end sentinel at %u\n", index);
121 printf(
"%04x: type %u (%s) key %u group_element %u size %d value ",
123 index +=
sizeof(*var);
140 *(
float *)&
eeprom[index+4],
141 *(
float *)&
eeprom[index+8]);
144 printf(
"%f %f %f %f %f %f\n",
146 *(
float *)&
eeprom[index+4],
147 *(
float *)&
eeprom[index+8],
148 *(
float *)&
eeprom[index+12],
149 *(
float *)&
eeprom[index+16],
150 *(
float *)&
eeprom[index+20]);
153 printf(
"%f %f %f %f %f %f %f %f %f\n",
155 *(
float *)&
eeprom[index+4],
156 *(
float *)&
eeprom[index+8],
157 *(
float *)&
eeprom[index+12],
158 *(
float *)&
eeprom[index+16],
159 *(
float *)&
eeprom[index+20],
160 *(
float *)&
eeprom[index+24],
161 *(
float *)&
eeprom[index+28],
162 *(
float *)&
eeprom[index+32]);
168 for (i = 0; i < size; i++) {
173 if (index >=
sizeof(
eeprom)) {
175 fail(
"missing end sentinel");
static const char * type_names[8]
int printf(const char *fmt,...)
static const uint8_t _sentinal_key
static const uint8_t _sentinal_type
static void fail(const char *why)
static const uint16_t k_EEPROM_magic1
int main(int argc, char *argv[])
static const uint8_t _sentinal_group
FILE * fopen(const char *path, const char *mode)
POSIX Open a file with path name and ascii file mode string.
static uint8_t type_size(enum ap_var_type type)
int fprintf(FILE *fp, const char *fmt,...)
fprintf character write function
static const uint16_t k_EEPROM_magic0
static const uint16_t k_EEPROM_revision