embedded system

 

  • When a system-on-a-chip processor is involved, there may be little benefit to having a standardized bus connecting discrete components, and the environment for both hardware
    and software tools may be very different.

  • • Another alternative is to add a RTOS or embedded operating system • Modeling and code generating tools often based on state machines Software tools can come from several
    sources: • Software companies that specialize in the embedded market • Ported from the GNU software development tools • Sometimes, development tools for a personal computer can be used if the embedded processor is a close relative to a common
    PC processor As the complexity of embedded systems grows, higher-level tools and operating systems are migrating into machinery where it makes sense.

  • ASIC or FPGA implementations may be used for not-so-high-volume embedded systems with special needs in kind of signal processing performance, interfaces and reliability, like
    in avionics.

  • Wireless sensor networking makes use of miniaturization made possible by advanced integrated circuit (IC) design to couple full wireless subsystems to sophisticated sensors,
    enabling people and companies to measure a myriad of things in the physical world and act on this information through monitoring and control systems.

  • A variety of techniques are used, sometimes in combination, to recover from errors—both software bugs such as memory leaks, and also soft errors in the hardware: • watchdog
    timer that resets and restarts the system unless the software periodically notifies the watchdog subsystems • Designing with a trusted computing base (TCB) architecture ensures a highly secure and reliable system environment[14] • A hypervisor
    designed for embedded systems is able to provide secure encapsulation for any subsystem component so that a compromised software component cannot interfere with other subsystems, or privileged-level system software.

  • Additional software components[edit] In addition to the core operating system, many embedded systems have additional upper-layer software components.

  • From simplest to most sophisticated debugging techniques and systems be roughly grouped into the following areas: • Interactive resident debugging, using the simple shell
    provided by the embedded operating system (e.g.

  • For low-volume or prototype embedded systems, general-purpose computers may be adapted by limiting the programs or by replacing the operating system with an RTOS.

  • An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a
    larger mechanical or electronic system.

  • In certain applications, where small size or power efficiency are not primary concerns, the components used may be compatible with those used in general-purpose x86 personal
    computers.

  • Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints.

  • Because of these complexities, it is common for organizations to use an off-the-shelf RTOS, allowing the application programmers to concentrate on device functionality rather
    than operating system services.

  • As any code can potentially damage the data of another task (except in systems using a memory management unit) programs must be carefully designed and tested, and access to
    shared data must be controlled by some synchronization strategy such as message queues, semaphores or a non-blocking synchronization scheme.

  • Typical reports that help a designer to make architecture decisions include application latency, device throughput, device utilization, power consumption of the full system
    as well as device-level power consumption.

  • Embedded systems control many devices in common use.

  • Considerations include: does it slow down the main application, how close is the debugged system or application to the actual system or application, how expressive are the
    triggers that can be set for debugging (e.g., inspecting the memory when a particular program counter value is reached), and what can be inspected in the debugging process (such as, only memory, or memory and registers, etc.).

  • The module vendor will usually provide boot software and make sure there is a selection of operating systems, usually including Linux and some real-time choices.

  • One common design style uses a small system module, perhaps the size of a business card, holding high density BGA chips such as an ARM-based system-on-a-chip processor and
    peripherals, external flash memory for storage, and DRAM for runtime memory.

  • The advantage of this approach is that low-cost commodity components may be used along with the same software development tools used for general software development.

  • [10] • External debugging using logging or serial port output to trace operation using either a monitor in flash or using a debug server like the Remedy Debugger that even
    works for heterogeneous multicore systems.

  • General-purpose microprocessors are also used in embedded systems, but generally, require more support circuitry than microcontrollers.

  • [13] One example of a software-based tracing method used in RTOS environments is the use of empty macros which are invoked by the operating system at strategic places in the
    code, and can be implemented to serve as hooks.

  • Ready-made computer boards[edit] PC/104 and PC/104+ are examples of standards for ready-made computer boards intended for small, low-volume embedded and ruggedized systems.

  • Despite the increased cost in hardware, this type of embedded system is increasing in popularity, especially on the more powerful embedded devices such as wireless routers
    and GPS navigation systems.

  • ASIC and FPGA SoC solutions[edit] A system on a chip (SoC) contains a complete system – consisting of multiple processors, multipliers, caches, even different types of memory
    and commonly various peripherals like interfaces for wired or wireless communication on a single chip.

  • Tracing[edit] Real-time operating systems often support tracing of operating system events.

  • An early microprocessor, the Intel 4004 (released in 1971), was designed for calculators and other small systems but still required external memory and support chips.

  • Forth and Basic) • Software-only debuggers have the benefit that they do not need any hardware modification but have to carefully control what they record in order to conserve
    time and storage space.

  • Characteristics Embedded systems are designed to perform a specific task, in contrast with general-purpose computers designed for multiple tasks.

  • Software-based trace recording does not require specialized debugging hardware and can be used to record traces in deployed devices, but it can have an impact on CPU and RAM
    usage.

  • Unless restricted to external debugging, the programmer can typically load and run software through the tools, view the code running in the processor, and start or stop its
    operation.

  • • System-level modeling and simulation tools help designers to construct simulation models of a system with hardware components such as processors, memories, DMA, interfaces,
    buses and software behavior flow as a state diagram or flow diagram using configurable library blocks.

  • Embedded systems range from those low in complexity, with a single microcontroller chip, to very high with multiple units, peripherals and networks, which may reside in equipment
    racks or across large geographical areas connected via long-distance communications lines.

  • Since these early applications in the 1960s, embedded systems have come down in price and there has been a dramatic rise in processing power and functionality.

  • [6] Development[edit] One of the first recognizably modern embedded systems was the Apollo Guidance Computer,[citation needed] developed ca.

  • Therefore, the software is usually developed and tested more carefully than that for personal computers, and unreliable mechanical moving parts such as disk drives, switches
    or buttons are avoided.

  • This timing forces developers to choose the embedded operating system for their device based on current requirements and so restricts future options to a large extent.

  • • For systems using digital signal processing, developers may use a computational notebook to simulate the mathematics.

  • [4][needs update] Modern embedded systems are often based on microcontrollers (i.e.

  • • A model-based development tool creates and simulates graphical data flow and UML state chart diagrams of components like digital filters, motor controllers, communication
    protocol decoding and multi-rate tasks.

  • In either case, the processor(s) used may be types ranging from general purpose to those specialized in a certain class of computations, or even custom designed for the application
    at hand.

  • Very few additional components may be needed and most of the design effort is in the software.

  • These modules can be manufactured in high volume, by organizations familiar with their specialized testing issues, and combined with much lower volume custom mainboards with
    application-specific external peripherals.

  • Systems built in this way are still regarded as embedded since they are integrated into larger devices and fulfill a single role.

  • • An embedded system may have its own special language or design tool, or add enhancements to an existing language such as Forth or Basic.

  • [1][2] It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts.

  • Trace recording in embedded systems can be achieved using hardware or software solutions.

  • [19] The level of complexity in embedded systems is continuously growing as devices are required to manage peripherals and tasks such as serial, USB, TCP/IP, Bluetooth, Wireless
    LAN, trunk radio, multiple channels, data and voice, enhanced graphics, multiple states, multiple threads, numerous wait states and so on.

  • Embedded software architectures In 1978 National Electrical Manufacturers Association released ICS 3-1978, a standard for programmable microcontrollers,[18] including almost
    any computer-based controllers, such as single-board computers, numerical, and event-based controllers.

  • Boards such as the VIA EPIA range help to bridge the gap by being PC-compatible but highly integrated, physically smaller or have other attributes making them attractive to
    embedded engineers.

  • • Immunity-aware programming can help engineers produce more reliable embedded systems code.

  • This means that tasks performed by the system are triggered by different kinds of events; an interrupt could be generated, for example, by a timer at a predefined interval,
    or by a serial port controller receiving data.

  • However, most ready-made embedded systems boards are not PC-centered and do not use the ISA or PCI busses.

  • Software prototype and test can be quicker compared with the design and construction of a new circuit not using an embedded processor.

  • Embedded systems within medical equipment are often powered by industrial computers.

  • Embedded systems range in size from portable personal devices such as digital watches and MP3 players to bigger machines like home appliances, industrial assembly lines, robots,
    transport vehicles, traffic light controllers, and medical imaging systems.

  • Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase its reliability and performance.

  • [16][17] Guidelines and coding rules such as MISRA C/C++ aim to assist developers produce reliable, portable firmware in a number of different ways: typically by advising
    or mandating against coding practices which may lead to run-time errors (memory leaks, invalid pointer uses), use of run-time checks and exception handling (range/sanity checks, divide-by-zero and buffer index validity checks, default cases
    in logic checks), loop bounding, production of human-readable, well commented and well structured code, and avoiding language ambiguities which may lead to compiler-induced inconsistencies or side-effects (expression evaluation ordering, recursion,
    certain types of macro).

  • Processors in embedded systems[edit] Examples of properties of typical embedded computers when compared with general-purpose counterparts, are low power consumption, small
    size, rugged operating ranges, and low per-unit cost.

 

Works Cited

[‘1. Michael Barr. “Embedded Systems Glossary”. Neutrino Technical Library. Retrieved 2007-04-21.
2. ^ Heath, Steve (2003). Embedded systems design. EDN series for design engineers (2 ed.). Newnes. p. 2. ISBN 978-0-7506-5546-0. An embedded system
is a microprocessor based system that is built to control a function or a range of functions.
3. ^ Jump up to:a b Michael Barr; Anthony J. Massa (2006). “Introduction”. Programming embedded systems: with C and GNU development tools. O’Reilly. pp.
1–2. ISBN 978-0-596-00983-0.
4. ^ Barr, Michael (1 August 2009). “Real men program in C”. Embedded Systems Design. TechInsights (United Business Media). p. 2. Retrieved 2009-12-23.
5. ^ Shirriff, Ken (30 August 2016). “The Surprising Story of
the First Microprocessors”. IEEE Spectrum. Institute of Electrical and Electronics Engineers. 53 (9): 48–54. doi:10.1109/MSPEC.2016.7551353. S2CID 32003640. Retrieved 13 October 2019.
6. ^ “1971: Microprocessor Integrates CPU Function onto a Single
Chip”. The Silicon Engine. Computer History Museum. Retrieved 22 July 2019.
7. ^ “Electronic Frontier Foundation”. Electronic Frontier Foundation.
8. ^ Embedded Systems Dell OEM Solutions | Dell Archived 2013-01-27 at the Wayback Machine. Content.dell.com
(2011-01-04). Retrieved on 2013-02-06.
9. ^ David Carey (2008-04-22). “Under the Hood: Robot Guitar embeds autotuning”. Embedded Systems Design. Archived from the original on 2008-07-08.
10. ^ Tancreti, Matthew; Sundaram, Vinaitheerthan; Bagchi,
Saurabh; Eugster, Patrick (2015). “TARDIS”. Proceedings of the 14th International Conference on Information Processing in Sensor Networks. IPSN ’15. New York, NY, USA: ACM. pp. 286–297. doi:10.1145/2737095.2737096. ISBN 9781450334754. S2CID 10120929.
11. ^
Tancreti, Matthew; Hossain, Mohammad Sajjad; Bagchi, Saurabh; Raghunathan, Vijay (2011). “Aveksha”. Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems. SenSys ’11. New York, NY, USA: ACM. pp. 288–301. doi:10.1145/2070942.2070972.
ISBN 9781450307185. S2CID 14769602.
12. ^ “Tektronix Shakes Up Prototyping, Embedded Instrumentation Boosts Boards to Emulator Status”. Electronic Engineering Journal. 2012-10-30. Retrieved 2012-10-30.
13. ^ Kraft, Johan; Wall, Anders; Kienle,
Holger (2010), Barringer, Howard; Falcone, Ylies; Finkbeiner, Bernd; Havelund, Klaus (eds.), “Trace Recording for Embedded Systems: Lessons Learned from Five Industrial Projects”, Runtime Verification, Berlin, Heidelberg: Springer Berlin Heidelberg,
vol. 6418, pp. 315–329, doi:10.1007/978-3-642-16612-9_24, ISBN 978-3-642-16611-2, retrieved 2022-08-16
14. ^ Heiser, Gernot (December 2007). “Your System is secure? Prove it!” (PDF). ;login:. 2 (6): 35–8. Archived (PDF) from the original on 2014-11-29.
15. ^
Moratelli, C; Johann, S; Neves, M; Hessel, F (2016). “Embedded virtualization for the design of secure IoT applications”. Proceedings of the 27th International Symposium on Rapid System Prototyping: Shortening the Path from Specification to Prototype.
pp. 2–6. doi:10.1145/2990299.2990301. ISBN 9781450345354. S2CID 17466572. Retrieved 2 February 2018.
16. ^ Jump up to:a b Short, Michael (March 2008). “Development guidelines for dependable real-time embedded systems”. 2008 IEEE/ACS International
Conference on Computer Systems and Applications. pp. 1032–1039. doi:10.1109/AICCSA.2008.4493674. ISBN 978-1-4244-1967-8. S2CID 14163138.
17. ^ Motor Industry Software Reliability Association. “MISRA C:2012 Third Edition, First Revision”. Retrieved
2022-02-03.
18. ^ “FAQs: Programmable Controllers” (PDF). Retrieved 2020-01-10.
19. ^ “Working across Multiple Embedded Platforms” (PDF). clarinox. Archived (PDF) from the original on 2011-02-19. Retrieved 2010-08-17.
\ Photo credit: https://www.flickr.com/photos/djbryson/155097272/’]