repo2/firmware_legacy/mif_file_stuff/zpuromgen.c
46 | markw | // zpuromgen.c
|
|
//
|
|||
// Program to turn a binary file into a VHDL lookup table.
|
|||
// by Adam Pierce
|
|||
// 29-Feb-2008
|
|||
//
|
|||
// This software is free to use by anyone for any purpose.
|
|||
//
|
|||
#include <unistd.h>
|
|||
#include <stdio.h>
|
|||
typedef unsigned char BYTE;
|
|||
main(int argc, char **argv)
|
|||
{
|
|||
BYTE opcode[4];
|
|||
int fd;
|
|||
int addr = 0;
|
|||
ssize_t s;
|
|||
// Check the user has given us an input file.
|
|||
if(argc < 2)
|
|||
{
|
|||
printf("Usage: %s <binary_file>\n\n", argv[0]);
|
|||
return 1;
|
|||
}
|
|||
// Open the input file.
|
|||
fd = open(argv[1], 0);
|
|||
if(fd == -1)
|
|||
{
|
|||
perror("File Open");
|
|||
return 2;
|
|||
}
|
|||
while(1)
|
|||
{
|
|||
// Read 32 bits.
|
|||
s = read(fd, opcode, 4);
|
|||
if(s == -1)
|
|||
{
|
|||
perror("File read");
|
|||
return 3;
|
|||
}
|
|||
if(s == 0)
|
|||
break; // End of file.
|
|||
// Output to STDOUT.
|
|||
printf("%04x : %02x%02x%02x%02x;\n",
|
|||
addr++, opcode[0], opcode[1],
|
|||
opcode[2], opcode[3]);
|
|||
}
|
|||
close(fd);
|
|||
return 0;
|
|||
}
|