Print Page | Close Window

Implementation of Complex Embedded Systems

Printed From: One Stop Testing
Category: Types Of Software Testing @ OneStopTesting
Forum Name: Mobile, PDAs & Embedded Systems Testing @ OneStopTesting
Forum Discription: Discuss All that is need to be known about Mobile, PDAs & Embedded Systems Testing and its Tools.
URL: http://forum.onestoptesting.com/forum_posts.asp?TID=1234
Printed Date: 01Jun2024 at 4:02am


Topic: Implementation of Complex Embedded Systems
Posted By: Anusree_ghosh
Subject: Implementation of Complex Embedded Systems
Date Posted: 03May2007 at 11:16pm
 Embedded systems are complex systems that can be composed of extremely diverse architectures ranging from tiny 8-bit micro-controllers up to large distributed systems made of multi-processor platforms. However, two-thirds of these systems run on a real-time operating system (RTOS), either commercial off-the-shelf or in-house, and implement the concept of threads (a thread is a granule with an independent flow of control) that extend to the RTOS task or process. In the UML, this concept is referred to as a Component, while a node refers to an independent processing unit running a set of tasks managed by an RTOS. Any communication between nodes is usually performed using message-passing protocols such as TCP/IP.

The vast majority of developers of embedded systems use C, C++, Ada or Java as programming languages (70 percent will be using C in 2002, 60 percent C++, 20 percent Java, 5 percent Ada). It is not unusual to see more than one language in an embedded system, in particular C and C++ together, or C and Java. C is supposed to be more efficient and closer to the platform's details, while Java or C++ are (supposedly) more productive thanks to object-oriented concepts. However, it should be noted that embedded systems programmers are not object devotees!

In the context of embedded systems, a granule can be one the following (sorted by incremental complexity):

    * C function or Ada procedure
    * C++ or Java class
    * C or Ada (set of) module(s)
    * C++ or Java cluster of classes
    * an RTOS task
    * a node
    * the complete system

For the smallest embedded systems, the complete system is composed of a set of C modules only and doesn't integrate any RTOS-related code. For the largest ones (distributed systems), networking protocols add another level of complexity.



Print Page | Close Window