Actually, software can damage (poorly designed) hardware:
- Hardware registers directly control hardware operation. There are often specifications on how to operate the hardware via the registers, but if that is ignored, it can damage hardware. http://en.wikipedia.org/wiki/Hardware_register . Optimally, there should be some hardware circuit to prevent usage outside of spec.
- Tristate pins can cause damage. These pins can be specified as i/o or undefined, and if the pin is forced to low or high, but the connection is the opposite, you can get a short.
Actually, software can damage (poorly designed) hardware:
- Hardware registers directly control hardware operation. There are often specifications on how to operate the hardware via the registers, but if that is ignored, it can damage hardware. http://en.wikipedia.org/wiki/Hardware_register . Optimally, there should be some hardware circuit to prevent usage outside of spec.
- Tristate pins can cause damage. These pins can be specified as i/o or undefined, and if the pin is forced to low or high, but the connection is the opposite, you can get a short.