Embedded software is computer software written to control machines and devices not typically thought of as computers. It has specialized functionality for particular hardware and is constrained by limited time and memory. Embedded software is typically the only software on a device and is "built in" by manufacturers to control electronics in many products. It can be simple or sophisticated, depending on the application, and uses a variety of specialized operating systems.
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Embedded software controls devices
1. Embedded software
From Wikipedia, the free encyclopedia
Jump to: navigation, search
Embedded software is computer software, written to control machines or devices
that are not typically thought of as computers. It is typically specialized for the
particular hardware that it runs on and has time and memory constraints.[1]
This
term is sometimes used interchangeably with firmware, although firmware can also
be applied to ROM-based code on a computer, on top of which the OS runs,
whereas embedded software is typically the only software on the device in
question.
A precise and stable characteristic feature is that no or not all functions of
embedded software are initiated/controlled via a human interface, but through
machine-interfaces instead.[2]
Manufacturers 'build in' embedded software in the electronics in cars, telephones,
modems, robots, appliances, toys, security systems, pacemakers, televisions and
set-top boxes, and digital watches, for example.[3]
This software can be very
simple, such as lighting controls running on an 8-bit microprocessor and a
few kilobytes of memory, or can become very sophisticated in applications such
as airplanes, missiles, and process controlsystems.[4]
Contents
1 Operating Systems
2 Differences from Application Software
3 Communication Protocols
4 References
5 See also
Operating Systems[edit source | edit]
Unlike standard computers that use only a few operating systems (MacOS,
Windows and to some extent, Linux), embedded software comes in a wide variety
of operating systems, typically a real-time operating system. This runs from small
one-person operations consisting of a run loop and a timer,
to LynxOS, VxWorks, BeRTOS, ThreadX, to Windows CE or Linux (with patched
kernel). Others include OpenWrt, PikeOS, eCos,Fusion RTOS, Nucleus
RTOS, RTEMS, INTEGRITY, uC/OS, QNX and OSE. Code is typically written
in C or C++. Ada is used in some military and aviation projects.
Differences from Application Software[edit source | edit]
2. Most consumers are familiar with Application software that provide functionality
on a computer. Embedded software however is often less visible, but no less
complicated. Unlike application software, embedded software has fixed hardware
requirements and capabilities, addition of 3rd-party hardware or software is strictly
controlled.
Embedded software needs to include all needed device drivers at manufacturing
time, and the device drivers are written for the specific hardware. 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. Conversion betweendecimal, hexadecimal and binary is useful as well as
using bit manipulation.[5]
Web applications are rarely used, although XML files and other output may be
passed to a computer for display. File systems with folders are typically absent as
are SQL databases.
Software development requires use of a cross compiler, which runs on a computer
but produces executable code for the target device. Debugging requires use of
an in-circuit emulator, JTAG or SWD. Software developers often have access to
the complete kernel (OS) source code.
Size of the storage memory and RAM can vary significantly. Some systems run in
16 KB of Flash and 4 KB of RAM with a CPU operating at 8MHz, other systems
can rival contemporary computers.[6]
These space requirements lead to more work
being done in C or embedded C++, instead of C++. Interpreted languages
like BASIC and Java are not used.
Communication Protocols[edit source | edit]
Communications between processors and between one processor and other
components are essential. Besides direct memory addressing, common protocols
include I2C, SPI, serial ports, and USB.
Communications protocols designed for use in embedded systems are available
as closed source from companies including InterNiche Technologies and CMX
Systems. Open-source protocols stem from uIP, lwip, and others.
References[edit source | edit]
Edward A. Lee, "Embedded Software", Advances in Computers (M.
Zelkowitz, editor) 56, Academic Press, London, 2002.
3. 1. ^ "Stroustrup on C++ for embedded (bottom p.2)". Retrieved 9 December
2012.
2. ^ "I.C.S. on embedded software". Retrieved 22 July 2013.
3. ^ "Embedded Systems Methods and Technologies". Retrieved 9 December
2012.
4. ^ http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoft
wre.pdf
5. ^ "Stroustrup on embedded software". Retrieved 9 December 2012.
6. ^ "Example of embedded CPU". Retrieved 9 December 2012.
See also[edit source | edit]
Embedded system
Retrieved from
"http://en.wikipedia.org/w/index.php?title=Embedded_software&oldid=56532920
9"
Categories:
Computing terminology
Embedded systems
Navigation menu
Personal tools
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit source
Edit
View history
Actions
4. Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Toolbox
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Data item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
Català
Dansk
Deutsch
Français
Bahasa Melayu
5. Edit links
This page was last modified on 22 July 2013 at 13:27.
Text is available under the Creative Commons Attribution-ShareAlike
License; additional terms may apply. By using this site, you agree to
the Terms of Use and Privacy Policy.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a
non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Mobile view