All About Firmware
Posted on 09. Jan, 2009 by Terry Reinert in Photography
One of Hali’s recent comments reminded me that I needed to upgrade the firmware in my Canon 5D Mark I. I decided that while I was at it I would post not only a reminder to everyone else to check for new firmware for their cameras but also explain what firmware is and what it does.
Before I begin I feel the need to mention that I am going to present this topic in a general sense so that non-engineers can relate to what I am writing. If any of my fellow embedded software engineers are reading this, feel free to comment on any gross errors that I make but let the little stuff go…
In a general sense, firmware is the software program that internally controls many electronic devices. Firmware can be found in all manner of things ranging from digital cameras to toasters. It is contained on a Read-Only Memory (ROM) or Erasable Programmable Read-Only Memory (EPROM) chip within the device and is usually loaded into Random Access Memory (RAM) on power up. The reason that the firmware is loaded into RAM on start is because executing code on ROM or EPROM is much slower than executing it in RAM. The copying of the firmware to RAM is performed by the bootstrap loader which is the first block of code to run when power is applied to the device. The bootstrap loader is part of the firmware and performs the initial configuration of the device as well as the copying of the firmware to RAM as stated above. In some cases the bootstrap loader doesn’t actually do the copying to RAM but instead starts up a low-level application that is part of the OS that actually handles the copying. Additionally, the bootstrap loader usually contains the code required to install new firmware so that the firmware can be updated in a self contained fashion instead of having to take the device apart to connect a programmer directly to the EPROM device.
While there really is no well defined boundary between firmware and software, it is safe to say that most operating systems and applications are not firmware. However, these terms are also used very loosely because there can be an OS contained in the firmware but they are not the same type of OS that a normal device user are accustomed to. For example, the Canon DIGICII cameras run VxWorks, the DIGICIV cameras run DryOS, and the DIGICIII cameras run one or the other depending on the camera you have. How these two operating systems differ from Windows or OSX is a whole new topic that will not be discussed right now. But as long as you are not planning on becoming an embedded software engineer then you don’t have to worry about this detail and can just generalize as stated above.
What the firmware in the device actually does is based on what type of device it is loaded into. Everything that your digital camera does is done 100% by firmware. This includes communicating with your computer when your shooting tethered or downloading images, displaying the menu, handling all the button presses and knob turns, and even converting a RAW image to JPEG if you are shooting in JPEG mode.
As you can see, the entire functionality of your digital camera is configured and controlled by firmware. What you may not be aware of is that the firmware provided by your camera’s manufacturer may actually limit the true functionality of the device! There are many cases where two different products have identical hardware but only certain features are available on the higher priced item. The nice thing about that is you can buy the cheaper device, load in modified firmware that unlocks the better features, and now you have the better device for the cheaper cost. Of course doing this will void your warranty and has a risk of damaging your device beyond repair so you have to trust the source of the third party firmware! But there are also firmware add-ons that will not replace your cameras firmware but add to it. An example of this is CHDK which unleashes all the power contained in various Canon cameras (mostly PNS cameras and not the EOS SLR’s) that Canon limited in their official firmware releases. You can read the Lifehacker article on CHDK if you’re really interested in learning more about it.
As you can probably guess, if there is a problem with the firmware then it can be pretty severe. A recent case of a bug in camera firmware is the “Black Dot” problem found on the Canon 5D Mark II. Canon has already released the firmware update to fix this problem but this is a perfect example of how critical firmware bugs can be!
So that should give you a pretty good idea as to what firmware is. Next time you pick up a fancy remote control or see one of those fancy toasters that have a LCD screen on it and tell you all the details of your toast, you’ll know exactly what is inside of the thing making it work… firmware.
Related posts:







Additional comments powered by BackType