However, with this approach, I'm running into a bit of problem that on my target uC (attiny85), I shall fall short of needed number of GPIO pins, if I reserve the ISP header pins, for it's subsequent programability (to write to EEPROM). Is this then something, that I should use jumper-pins to shunts to work around ? I.e. when I need to program uC, the jumper-settings are changed to connect uC pins to ISP pins (MISO, MOSI, SCK), and post programming jumpers are reset to allow them to function as GPIO ?
You don't need to dedicate the ICSP pins, you can use them as general I/O as well. However:
- If you use them as output pins, then whatever is connected to them must not put more load on them than the programmer can drive, and must tolerate the signals that appear on them during programming.
- If you use them as input pins, then whatever device is attached to them must be able to handle the digital signals that appear on them during programming. For example, a push button connected to ground is OK as long as that button is not pressed during programming. For other devices driving those input pins, you may need to add a series resistor.