Comment
Comment by adrianN
First you define a very simple virtual machine so that the part that needs to be ported to different hardware is minimal. Then you write software for that machine using tools that are themselves written for that machine. Make sure that the parts that are needed for software development inside your VM are very precisely defined.