#include #include #include int main(int argc, char *argv[]) { if (argc < 3){ fprintf(stderr, "Expected 2 arguments: \n"); exit(1); } char* rawGDBfilePath = argv[1]; FILE* rawGDBfile; if ((rawGDBfile = fopen(rawGDBfilePath,"rb"))==NULL) { fprintf(stderr, "File not found: %s\n",rawGDBfilePath); exit(1); } char* outFilePath = argv[2]; FILE* outFile = fopen(outFilePath,"w"); uint64_t qemuWord; uint64_t verilogWord; int bytesReturned=0; do { bytesReturned=fread(&qemuWord, 8, 1, rawGDBfile); verilogWord = (((qemuWord>>0 )&0xff)<<56 | ((qemuWord>>8 )&0xff)<<48 | ((qemuWord>>16)&0xff)<<40 | ((qemuWord>>24)&0xff)<<32 | ((qemuWord>>32)&0xff)<<24 | ((qemuWord>>40)&0xff)<<16 | ((qemuWord>>48)&0xff)<<8 | ((qemuWord>>56)&0xff)<<0); fwrite(&verilogWord, 8, 1, outFile); } while(bytesReturned!=0); return 0; }