1

I am working on a project and my team is responsible for the software stack of the particular hardware.

I only have the instruction set of the processor in my hand and I need to develop the complete software stack with it.

Do I require anything else other than the instruction set for the assembler?

Please note that I am not aware of the organisation of the hardware of that computer

Alex
  • 9,891
  • 11
  • 53
  • 87
anichhangani
  • 129
  • 1
  • 9
  • 3
    ISTM that at the very least you'll need to know how to get binary instructions into a place where the processor can execute them and how to make it start processing them. – 500 - Internal Server Error Feb 25 '13 at 20:42
  • Just to add to 500 - Internal Server Error's comment, a memory map will likely be helpful. Where are your interrupt handlers & vector table (if using interrupts)? What about Video, Disk or other I/O? Other than that, I can only recommend getting a compiler working early on (see http://compilers.iecc.com/crenshaw/ for a simple example in PASCAL) – psema4 Feb 25 '13 at 20:59
  • Can you clarify what you mean by software stack? – Dougvj Feb 25 '13 at 21:00
  • 1
    Do you have the full specification for said software stack? Is this technically possible without doing any I/O, that is, without interfacing with the hardware that you know nothing about? – Alexey Frunze Feb 25 '13 at 21:58
  • @Dougvj Software stack includes : assembler, virtual machine, compiler and operating system. The software we need would be pretty basic.(no fancy stuff) – anichhangani Feb 26 '13 at 04:32

1 Answers1

1

The very short answer is "probably not possible without further information".

At the very least, you will need to know where different types of memory is located, what you need to initialize within the processor itself [this is typically not in the Instruction Set Manual]. Typical examples: interrupt vector, timers, memory controllers, etc that are often part of the processor itself, but not really part of the instruction set.

Obviously, the software stack for a digital wrist-watch is pretty basic. The software stack for a complete Home Entertainment system with the ability to stream encrypted video and also browse the web would be quite large. The software stack for a mobile phone even larger. The requirements for a wrist-watch and building the hardware necessary to do that [not saying you can get it small enough easily, but ignoring that since this is a software, not a hardware question], would probably take a few days at most. A smart-phone that is able to compete with at least some success with the top of the range products on the market today would take a large team of very skilled software developers a couple of years to complete. Obviously, there are a lot of other software based systems somewhere between those relatively extreme examples.

Mats Petersson
  • 126,704
  • 14
  • 140
  • 227
  • Since this a small project in our university and we are doing it for fun the phase one of our software would be pretty basic. Software stack includes : assembler, virtual machine, compiler and operating system. The software we need would be pretty basic.(no fancy stuff). Also I thought if the instruction set of the hardware is already given the organisation and the inner working of the computer wont be necessary from a programmers perspective, since we just need to write programs on it. – anichhangani Feb 26 '13 at 04:45