Commit aa191d56 authored by Wesley W. Terpstra's avatar Wesley W. Terpstra

new tool genrammif: generate altera-formatted mif file from binary

parent 120770b7
......@@ -2,6 +2,7 @@
*.elf
*.ram
*.bin
*.mif
*.*~
*~
include/board.h
......@@ -9,6 +10,7 @@ tools/zpu-loader
tools/vuart_console
tools/genraminit
tools/genramvhd
tools/genrammif
tools/lm32-loader
wrc_disasm.S
wrc.ram
......
......@@ -90,7 +90,7 @@ OUTPUT = wrc
REVISION=$(shell git describe --dirty --always)
all: tools $(OUTPUT).ram $(OUTPUT).vhd
all: tools $(OUTPUT).ram $(OUTPUT).vhd $(OUTPUT).mif
.PRECIOUS: %.elf %.bin
.PHONY: all tools clean gitmodules
......@@ -111,7 +111,10 @@ $(OUTPUT).o: $(OBJS)
./tools/genraminit $*.bin 0 > $@
%.vhd: tools %.bin
./tools/genramvhd -s 90112 $*.bin > $@
./tools/genramvhd -s `. ./.config; echo $$CONFIG_RAMSIZE` $*.bin > $@
%.mif: tools %.bin
./tools/genrammif $*.bin `. ./.config; echo $$CONFIG_RAMSIZE` > $@
$(AUTOCONF): silentoldconfig
......
CFLAGS = -Wall -ggdb -I. -I../include -Imini_bone
ALL = genraminit genramvhd genrammif
AS = as
LD = ld
......@@ -10,13 +11,10 @@ STRIP = strip
OBJCOPY = objcopy
OBJDUMP = objdump
all: genraminit genramvhd
all: $(ALL)
genraminit: genraminit.o
${CC} -o genraminit genraminit.o
genramvhd: genramvhd.o
${CC} -o genramvhd genramvhd.o
%: %.o
${CC} -o $@ $<
%.o: %.c
${CC} -c $^ $(CFLAGS) -O0
......
/*
* This work is part of the White Rabbit project
*
* Copyright (C) 2013 GSI (www.gsi.de)
* Author: Wesley W. Terpstra <w.terpstra@gsi.de>
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
unsigned char x[4];
int i, n;
FILE* f;
if (argc < 3) return 1;
if (!(f = fopen(argv[1], "rb"))) return 1;
n = atoi(argv[2])/4;
printf("DEPTH = %d;\n", n);
printf("WIDTH = 32;\n");
printf("ADDRESS_RADIX = HEX;\n");
printf("DATA_RADIX = HEX;\n");
printf("CONTENT\n");
printf("BEGIN\n");
for (i = 0; !feof(f); ++i) {
fread(x, 1, 4, f);
printf("%x : %02X%02X%02X%02X;\n", i, x[0], x[1], x[2], x[3]);
}
for (; i < n; ++i) {
printf("%x : %02X%02X%02X%02X;\n", i, 0, 0, 0, 0);
}
printf("END;\n");
fclose(f);
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment