Are there any AVR development environments which implement virtual input/output devices (e.g. a virtual lcd character display, virtual buttons/pots, etc.)?
The idea is that instead of connecting real hardware, the uC would control virtual hardware implemented on the host PC. Control messages could be sent/received, for instance, via the serial port.
The key to making it work is crafting the software libraries on the uC side so that it is easy to switch between controlling real vs. virtual hardware.
I am especially interested in something that works under Linux. Extra bonus points if it is also compatible with the Arduino libraries.