Custom ISA Requirements

The first requirement to use FreeRTOS on the processor is to have a compatible C compiler, so you can compile the code for the project. While you can possible use an open source complier as a starting point, you will need to think how you can implement all the requirements that it needs in the processor.

A few real important features are:

  • The code generation needs to be “thread-safe” and not use scratch memory that would cause issues with multiple tasks accessing the same scratch memory
  • This means that the code should largely be using a “stack” for most scratch memory storage, with the ability to change the stack pointer from one stack to another to change what task is running
  • The processor will need to have some interrupts, especially with an ability to get a periodic “tick” interrupt to provide a time base for the system.
  • The processor needs to have some way to save ALL the status of the current processing (or at least all that the C implementaiton needs to be saved) onto the stack, so you can save the current state onto the stack, and then resume it later.

These are features well beyond the details you mentioned, but are the sort of things you need to be thinking of.

Building such a processor with relays would be a monumental amount of work. I suppose the big question is what are you planing to use as your memory?

1 Like