Hey, guys today I am going to introduce about Firmware. Basically, what's Firmware? how it works? and can we make some changes into our system Firmware...
Firmware is essentially software, but one that interfaces with hardware. While the software we know is written to run on general purpose CPUs, the Firmware is written to run on special processors. There is not a lot different in the Firmware that software. While in the software you will be reading from std input (keyboard) and writing to std output (screen), in the Firmware you may be reading from a pin (ex. level of voltage) and writing to a pin (ex. changing voltage level). Or in software, you would read from a text file and write to a text file, in the Firmware, you will read from a memory block and write to a memory block.
In other hands, Firmware is the generally lightweight machine-level translation of the code, permanently stored in the device’s memory and acts as an OS analogous setup for the embedded system. It is a binary instruction set converted from the human-developed code and flashed down to the ROM or EEPROM of the device. Generally, the Firmware starts execution as soon as the controller is turned on and it is responsible for hardware interface and communication. It doesn’t do a lot of on the go processing, rather executes all the already compiled code.
Also, read: Windows vs Linux
Firmware is usually written in assembly, C/C++. One big difference in Firmware is that the execution of the program is highly deterministic. Firmware can be written to run only your program, nothing else. There are no background tasks. It only runs your code and your code only. This is very important to most Firmware, for example, like in automobiles, where you need to know absolutely that your piece of code is run when it should be run, without delay. In Firmware, you can know exactly how long it will take to execute a particular task, again because only your code is running. You can look at the disassembly of your code, count the instructions and know exactly how long it would take to do a particular task. This is something you cannot do with software running on a general purpose CPU on top of an OS. There are of course OS's for Firmware, RTOS (real-time OS), that somehow behave a little like a normal PC OS, but still with very low overhead. But when precision and timing is important, you write barebone firmware.
Also, read: Difference between 32 bit and 64 bit OS
Changing the Firmware of a device was rarely or never done during its lifetime in the past but is nowadays a common procedure; some Firmware memory devices are permanently installed and cannot be changed after manufacture. Common reasons for updating Firmware include fixing bugs or adding features to the device. This may require ROM integrated circuits to be physically replaced or flash memory to be reprogrammed through a special procedure. Firmware such as the ROM BIOS of a personal computer may contain only elementary basic functions of a device and may only provide services to higher-level software. Firmware such as the program of an embedded system may be the only program that will run on the system and provide all of its functions...
Check out our Youtube channel Jeetech.
Firmware |
Firmware is essentially software, but one that interfaces with hardware. While the software we know is written to run on general purpose CPUs, the Firmware is written to run on special processors. There is not a lot different in the Firmware that software. While in the software you will be reading from std input (keyboard) and writing to std output (screen), in the Firmware you may be reading from a pin (ex. level of voltage) and writing to a pin (ex. changing voltage level). Or in software, you would read from a text file and write to a text file, in the Firmware, you will read from a memory block and write to a memory block.
In other hands, Firmware is the generally lightweight machine-level translation of the code, permanently stored in the device’s memory and acts as an OS analogous setup for the embedded system. It is a binary instruction set converted from the human-developed code and flashed down to the ROM or EEPROM of the device. Generally, the Firmware starts execution as soon as the controller is turned on and it is responsible for hardware interface and communication. It doesn’t do a lot of on the go processing, rather executes all the already compiled code.
Also, read: Windows vs Linux
Firmware is usually written in assembly, C/C++. One big difference in Firmware is that the execution of the program is highly deterministic. Firmware can be written to run only your program, nothing else. There are no background tasks. It only runs your code and your code only. This is very important to most Firmware, for example, like in automobiles, where you need to know absolutely that your piece of code is run when it should be run, without delay. In Firmware, you can know exactly how long it will take to execute a particular task, again because only your code is running. You can look at the disassembly of your code, count the instructions and know exactly how long it would take to do a particular task. This is something you cannot do with software running on a general purpose CPU on top of an OS. There are of course OS's for Firmware, RTOS (real-time OS), that somehow behave a little like a normal PC OS, but still with very low overhead. But when precision and timing is important, you write barebone firmware.
Also, read: Difference between 32 bit and 64 bit OS
Changing the Firmware of a device was rarely or never done during its lifetime in the past but is nowadays a common procedure; some Firmware memory devices are permanently installed and cannot be changed after manufacture. Common reasons for updating Firmware include fixing bugs or adding features to the device. This may require ROM integrated circuits to be physically replaced or flash memory to be reprogrammed through a special procedure. Firmware such as the ROM BIOS of a personal computer may contain only elementary basic functions of a device and may only provide services to higher-level software. Firmware such as the program of an embedded system may be the only program that will run on the system and provide all of its functions...
Check out our Youtube channel Jeetech.
0 comments:
Post a Comment