xref: /XiangShan/tools/readmemh/gen-treadle-readmemh.c (revision b543b09fe259d66bc6815a12b33d14da14834c9f)
1*b543b09fSZihao Yu #include <stdio.h>
2*b543b09fSZihao Yu #include <assert.h>
3*b543b09fSZihao Yu #include <stdint.h>
4*b543b09fSZihao Yu 
5*b543b09fSZihao Yu int main(int argc, char *argv[]) {
6*b543b09fSZihao Yu   assert(argc == 3);
7*b543b09fSZihao Yu 
8*b543b09fSZihao Yu   FILE *in = fopen(argv[1], "rb");
9*b543b09fSZihao Yu   assert(in != NULL);
10*b543b09fSZihao Yu 
11*b543b09fSZihao Yu   FILE *out = fopen(argv[2], "w");
12*b543b09fSZihao Yu   assert(out != NULL);
13*b543b09fSZihao Yu 
14*b543b09fSZihao Yu   int i;
15*b543b09fSZihao Yu   for (i = 0; i < 0x100000; i ++) {
16*b543b09fSZihao Yu     fprintf(out, "00\n");
17*b543b09fSZihao Yu   }
18*b543b09fSZihao Yu 
19*b543b09fSZihao Yu   uint8_t b;
20*b543b09fSZihao Yu   int ret;
21*b543b09fSZihao Yu   while ((ret = fread(&b, 1, 1, in)) != 0) {
22*b543b09fSZihao Yu     fprintf(out, "%1x%1x\n", b >> 4, b & 0xf);
23*b543b09fSZihao Yu   }
24*b543b09fSZihao Yu 
25*b543b09fSZihao Yu   fclose(in);
26*b543b09fSZihao Yu   fclose(out);
27*b543b09fSZihao Yu 
28*b543b09fSZihao Yu   return 0;
29*b543b09fSZihao Yu }
30