Dumping firmware/software...and/or reflashing??

bag06a:
With that said, do you have any book suggestions to read on this topic?

Unfortunately, no. This was the last book I read on embedded programming... http://www.amazon.com/Practical-UML-Statecharts-Second-Edition/dp/0750687061 Everything I learned about AVR processors I learned from the Arduino website, Atmel datasheets, and the internet at large.

I believe the question of "which book" has been discussed a few times on the forum. I suggest spending some time with Google...
https://www.google.com/search?q=book+site%3Aarduino.cc%2Fforum

Microconrollers/chips in general and definitely ones that cover the topics of what each pin is (such as MISO and MOSI and CLK and SCK and what not).

This is a fairly good description of SPI...

Essentially, the programmer sends four byte programming commands, over the SPI bus, to the target, which executes those commands.

Through a little bit of reading I know that MISO is Master In Slave Out and MOSI is Master Out Slave In ... CLK is clock I believe.

Correct.

(which MOSI usually connects to a MISO right?)

No. The pins are always from the perspective of the master. Master Out Slave In (MOSI) out of the master is still Master Out Slave (MOSI) in into the slave.

In the case of in-system serial programming the master is the programmer (LcSoft USBasp programmer) and the slave is the target (ATtiny84).

I want to learn more about this stuff so suggestions would be great :slight_smile:

My suggestion is to get your hands dirty. Nearly anything with an AVR processor and a USB connection can act as a programmer (Uno, ATmega328 on a breadboard, LcSoft USBasp) and test targets are fairly cheap...

Add this to the Arduino IDE...
http://code.google.com/p/arduino-tiny/

And you are ready to go!