Whats the matter with simulators?
Personal bias. I have been an embedded systems programmer for over 25 years. I wrote NoICE for my own use, and I prefer to debug on real hardware whenever possible. Most embedded processors are used to control specialized external hardware, which is often difficult or impossible to simulate exactly. Instruction set simulation is quite straightforward, and that is what the NoICE simulator supports. However, simulating the UARTs, timers, and other peripherals found on current microprocessors is a very complex task – at least, if you want a good (i.e., useful) simulation. The cycle-by-cycle operation of these peripherals is seldom publicly documented, and anything less than a cycle-by-cycle simulation will mask the problems which occur in real systems. One often sees the claim that simulation is useful “until the hardware is ready”. In my experience, the first-cut hardware is (or can be) ready long before marketing gets done arguing about the software feature set – and certainly before yo