Saturday, June 5, 2010

Loading My Processor Using MIPS ABI

I'm trying to figure out how to load a program written in C++ onto a processor I've designed. The processor uses the MIPS I ISA and I wrote it using Verilator. This being said I have a C++ file that instantiates my processor module as an object.

The C++ file contains 2 arrays, one that represents instruction memory and another that represents data memory. I want to fill the instruction memory array with the instructions in my compiled binary file (made from a simple test program written in C++). To do this I require some knowledge of the MIPS ABI. I have the generic System V ABI and the processor specific MIPS32 ABI documents and I am attempting to determine where exactly in my binary file my program resides.

I need help figuring out exactly what instructions in my binary file I need and how I should use them. Can anyone supply me with some incite as to how I go about sorting through the binary I generated? I know I need the instructions that represent my sample program but what else do I need? The whole set of instructions or just a subset?

Anything will be useful, even redefinitions of my goals if need be.

No comments:

Post a Comment