Consider that the hardware team will take 2 months to develop some hardware, but by that time I will need to have the software ready.
My question is that how can I write the software and test it without having the hardware?
Is there any standard/s to be followed? How do you do it?
Best Answer
Not having hardware during the initial stages of firmware development happens. Common strategies to deal with this are:
This is where the modular design helps again. If you can't reasonably simulate some low level hardware interactions, you use a different version of the module that touches that hardware but that passes its own simulated actions to the upper levels. The upper levels won't know this is happening. You won't be checking the low level module this way, but most everything else.
In short, use good software desing practices, which of course you should be doing anyway.