Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Difference Between Software, Embedded Software and Firmware

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Difference between Software, Embedded software and firmware

Software

 Software is a set of instructions, data or programs used to operate computers and execute specific tasks.
 The two main categories of software are application software and system software.
 An application is software that fulfills a specific need or performs tasks. System software is designed to
run a computer's hardware and provides a platform for applications to run on top of.
 An application program (app or application for short) is a computer program designed to carry out a
specific task other than one relating to the operation of the computer itself, typically to be used by end-
users.
 Word processors, media players, and accounting software are examples.
 Applications may be bundled with the computer and its system software or published separately and may
be coded as proprietary, open-source, or projects. The term "app" often refers to applications for mobile
devices such as phones.

System software

 These software programs are designed to run a computer's application programs and hardware.
 System software coordinates the activities and functions of the hardware and software.
 In addition, it controls the operations of the computer hardware and provides an environment or platform
for all the other types of software to work in.
 The OS is the best example of system software; it manages all the other computer programs. Other
examples of system software include the firmware, computer language translators and system utilities.

Firmware

 Firmware is programming that's written to a hardware device's nonvolatile memory.


 The firmware in a device is the fixed portion of the device’s low-level software that can’t be modified or
executed by a user and is “flashed,” meaning it is burned (programmed) to a FLASH chip that stores the
firmware executable image.
 Firmware’s primary function is to boot a device and control its hardware peripherals, while in contrast,
embedded software ‘s function is the overall operation and control of the device to perform its specific
function.
 Firmware is typically used as low-level software that operates a specific, single-purpose device.
 Many components within a personal computer – video adapters, disk drives, and network adapters – have
firmware, as do many peripherals that connect to computers (printers, external storage devices;
peripherals…)

Embedded Software

 Embedded software needs to include all needed device drivers at manufacturing time, and the device
drivers are written for the various hardware devices.
 These device drivers, called BSP (Board support package), form the layer of software containing hardware-
specific drivers and other routines that allow a particular operating system (traditionally a real-time
operating system, or RTOS) to function in a particular hardware environment (a computer or CPU card),
integrated with the RTOS itself.
 The software is highly dependent on the CPU and specific chips chosen.
 Most embedded software engineers have at least a passing knowledge of reading schematics, and reading
data sheets for components to determine usage of registers and communication system.
How Embedded software work
 Each device will have its embedded software developed using a specific programming language, which is
typically “C” or “C++.” Higher level devices can also support Python, JavaScript and other languages.
 The embedded software can include its operating environment and application software.
 More complex devices will operate using commercially available operating systems such as FreeRTOS,
uC/OS, Thread, Works, and many other variants.
 Embedded software is developed using specific tools as shown below, each performing a different role to
help create and build the software.e.g editor, compiler etc.
Examples of Embedded Software
Embedded varies significantly based on the device it is controlling. Here are a few more examples of
embedded software use and functionality:
 The anti-lock brakes of your automobile
 The motion detector of a security camera
 The auto-focus on your digital camera
 The disc drive of a computer
 The industrial automation functions of a factory
 The control functions of a video game controller
 The smart lighting control in homes
Example
 With the advent of the digital high-definition TV (HDTV) format, TVs needed microprocessors for
the incoming digital video signal and to generate the red/green/blue values (also digital) for each
pixel in the display. Firmware also handled converting the digital audio signal to analog output
for the speakers. This required firmware, but not what would be properly called embedded
software. Embedded software comes into play in “smart TVs.”
 Smart TVs still have firmware for the low-level signal processing tasks, and more firmware t
operate the wired or wireless network interface and communications with the remote control
(which also now has firmware). But smart TVs also have operating systems; usually, Android or
Roku as well as apps that are preinstalled on the TV or that can be downloaded from the
internet. These apps—the embedded software—enable a higher level of user interactivity
beyond changing the channel and adjusting the volume.

You might also like