??? 08/08/08 16:43 Read: times |
#157333 - Virtual or existing architecture for emulation |
I have been thinking about adding downloadable plugins to a embedded device I have, but because of timing restrictions etc I don't want the plugins to use native code.
A plugin with an infinite loop or performing division by zero or using initialized pointers may not affect the host. I don't really like to add a java engine but would instead prefer the plugins to use C. I have considered writing my own C implementation for a an abstract virtual machine, but then started to think about instead emulating an existing processor architecture (unless someone can point at any good C compiler that can generate code for an abstract machine). Anyone having suggestions for a really good processor architecture to emulate? The intention is to run multiple concurrent virtual machines, and to add memory-mapped SFR or "magic" call addresses for communicating with the host. Support for 32-bit integers is good to have, but not a hard requirement. Execution speed need not be extremely high, but it is nice if the instructions are reasonably powerful and regular so that they are easy to decode, but still results in compact binaries. RAM for the virtual machines is more critical than the code space needed for the emulator. An important thing is that there is a freely distributable compiler available - preferably for both Linux and Windows. I have been thinking a bit about the AVR architecture, since I have written a working emulator for Mega48/Mega88. An open issue is also how an end user will be able to debug an application. The code run in the embedded environment may not pollute any other code so the runtime environment may not make use of GPL:ed code. However, I don't mind writing a new emulator/virtual machine from scratch. It's the compiler side I don't want to spend the time writing. |
Topic | Author | Date |
Virtual or existing architecture for emulation | 01/01/70 00:00 | |
Additional info about host/usage | 01/01/70 00:00 | |
How about MIPS? | 01/01/70 00:00 | |
VHDL | 01/01/70 00:00 | |
take a look at the content | 01/01/70 00:00 | |
I think 8 or 16 bit is optimum | 01/01/70 00:00 | |
Maybe you should start with an ARM chip | 01/01/70 00:00 | |
I2L sounds interesting | 01/01/70 00:00 | |
It's probably best to check with the maintainers | 01/01/70 00:00 | |
Doesn't seem to be a C to I2L | 01/01/70 00:00 | |
The LLVM Compiler Infrastructure | 01/01/70 00:00 | |
Since there's help available ... | 01/01/70 00:00 | |
With the low price of 8-bit single chip MCUs... | 01/01/70 00:00 | |
Slave processors not an alternative | 01/01/70 00:00 | |
Users | 01/01/70 00:00 | |
Probably debugging on PC | 01/01/70 00:00 | |
Are you really going to do that! | 01/01/70 00:00 | |
Existing building blocks helps | 01/01/70 00:00 | |
It hasn't been done for you but ... | 01/01/70 00:00 | |
When I was in school ... | 01/01/70 00:00 |