Popis: |
This paper presents a review on firmware and the process of firmware development including firmware development model, current trend in firmware development, task scheduling, debugging, documenting the source code and discussed some information related to embedded microcontroller. Firmware was introduced by Ascher Opler in 1967, to solve confusion on defining the software code residing in the hardware Read Only Memory (ROM). Moore's law (1965) is rumored to coming to an end, but undeniable it has been envisioning semiconductor industry for the past 5 decades. Improvement in semiconductor manufacturing technology for integrated chip has at least 10 to 100-folded in term of performance. Embedded device which was then resource-constrained is now capable to run full fledge operating system (O/S). Firmware had been used to define the software code reside in ROM for the Basic Input Output System (BIOS) in our computer motherboard used for initialization of the hardware peripheral. Firmware is also used to define the software code reside in microcontroller and embedded system. Embedded microcontroller is used in various application due to its low cost, small size, reliability, less power consumption and lighter weight. The improvement of technology in term of both hardware and software development had introduce microcontroller like Arduino to allow people to carry out firmware coding relatively ease compared with previously available embedded system. The increased capacity of embedded memory had allowed O/S stack to reside with the embedded system firmware which has blurred the border between firmware and software as how the software code stored in the hardware ROM happened back in 1967. The definition of firmware should be redefined over time to further avoid confusion. Although the borderline between firmware and software is rather blur, undoubtedly firmware is a piece of software with close relation to the hardware within. This paper gives an overview about firmware and provides a clearer view on firmware in personal computer and embedded systems. |