• No results found

SOFTWARE DEVELOPMENT FOR EMBEDDED SYSTEMS

N/A
N/A
Protected

Academic year: 2021

Share "SOFTWARE DEVELOPMENT FOR EMBEDDED SYSTEMS"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

SOFTWARE DEVELOPMENT FOR

EMBEDDED SYSTEMS

(2)

Motivation

This survey addresses software development in the field of embedded systems. Our goal is to determine which demands are being placed on the hardware and software in such systems. We are also interested in identifying the major issues associated with software development while

understanding to what extent tools are utilized to solve these problems.

We define embedded systems as computer systems that are integrated in other products as opposed to operating in a stand-alone environment. They can be found in mobile end-user devices,

automotive systems, production/manufacturing lines and power networks among other areas.

(3)

Key Facts

Audience: Embedded system software developers (industries: automotive, automation,

telecommunications, avionics)

Focus: New challenges in the field of embedded systems

Interviews

Timeframe: November 2012 – January 2013 Participants: 7

Online Questionnaire

Timeframe: February 26 – April 30, 2013 Participants: 51

(4)

Interviews

To prepare for the online questionnaire, we

conducted 7 interviews with software experts who work in various industries: automotive,

automation, telecommunications.

All participants stated that tool support and tool interoperability require improvement. In

particular, developers want better debugging tools for identifying and rectifying program flaws and errors.

(5)
(6)

What industry are you active in?

Majority of the survey participants work in the

automation and

automotive industries Other industries include

medical engineering,

home automation etc.

35% 27% 20% 10% 8% Automation Other industry Automotive Telecommunications Avionics

(7)

In what field of application are you primarily active?

Majority of the

participants are involved in system software,

system architectures or

control systems

development.

Multiple choices are possible

0 5 10 15 20 25 30 35

System architecture System software (firmware, operating systems,…

Software with hard real-time requirements Software for drive control Software for signal processing Software with soft real-time requirements Software for control Software for protocol processing Software for image processing and sensor technology Software for network security Software for network management Human-machine interaction Development tools

Participants

(8)

What does your industry or field of application place

high value on when developing software ?

Strong emphasis is placed on performance,

deterministic behavior, and real-time capability.

(Data-) Security plays a lesser role.

Results are averaged (0) = no value (5) = high value 0 1 2 3 4 5

(9)

If your software has response-time constraints, what is

the target range?

Multiple choices are possible Timing constraints

between 10µs and 10ms

are the most common.

2/3 of all answers 0 10 20 30 40 50 60 % o f p a rti ci p a n ts

(10)
(11)

What are the key drivers behind the deployment of

multicore processors in your fields of application?

Multicore processors are already being frequently deployed.

They are primarily used to support CPU-intensive algorithms.

Costs and throughput

are also reasons for deployment.

Multiple choices are possible 0 10 20 30 40 50 60 Cost Energy

efficiency Throughput CPU-intensivealgorithms Redundancy No multicore

% o f p a rti ci p a n ts

(12)

How will multicore systems be utilized in your fields of

application in five years?

Outlook:

• Multicore processors

will enjoy broad utilization.

• The number of

CPU-cores will continue to increase.

• Multicore processors

will tend to be used with heterogeneous architectures

(integration with FPGAs or DSPs).

Multiple choices are possible 0 10 20 30 40 50 60 70

No multicore Not for safety-critical applications

Will be

deployed More cores HomogeneousMC-processorsHeterogeneousMC-processors

% o f p a rti ci p a n ts

(13)
(14)

Which tasks are the most time-consuming in your project

environment?

Debugging and testing

are considered the most time-consuming tasks, followed closely by software specification

and implementation

Results are averaged (0) = not done (5) = very costly 0 1 2 3 4 5

(15)

What are the major challenges you face in developing

software for embedded systems?

Major challenges: • Debugging time-critical software Capability to reproduce errors Insufficient requirements specifications In contrast to the

qualified interviews, tool support and exchange formats are not key issues.

Multiple choices are possible 0 10 20 30 40 50 60 % o f p a rti ci p a n ts

(16)
(17)

Which of the following tasks require tools?

The most

time-consuming tasks have the greatest need for tools .

Despite higher demands on processor

performance, tools for

optimization are rarely needed.

Multiple choices are possible 0 1 2 3 4 5 0 10 20 30 40 50 60 70 80 90 100 % o f p a rti ci p a n ts

(18)

What types of tools do you use?

Multiple choices are possible

Commercial tools are used especially during the early phases (V-model) of software development. In later phases, developers also use open source software, freeware, and in-house solutions. The frequent use of company-specific testing suites is included in in-house testing tools.

0 10 20 30 40 50 60 70 % o f p a rti ci p a n ts Commercial

Open source / freeware In-house

(19)

If you rely on in-house tools, what was the driver behind

their development?

Major reasons for developing in-house tools are unsuitable tools

and missingfeatures.

High procurement costs

are often mentioned as a reason.

Multiple choices are possible 0 10 20 30 40 50 60 70 Formats not

supported Standard notsupported Tool out ofdate not availableFunctions Procurementcosts too high No suitable tool available Other reasons % o f p a rti ci p a n ts

(20)

What the users say

Tool support for requirements validation - with simulation for instance - needs to be improved. Tool support for designing software architectures also needs improvement to enable the semi-formal notation of functional (state machines, algorithms) and non-functional (quality of service)

requirements. Ideally, the tools should be integrated into the development process.

(21)

What the users say

A programming language that supports parallel programming structures is required . Existing approaches for C, ADA, or OpenCL are inadequate. There should be better support for parallel concepts such as SIMD-operations.

Since many software developers still have a sequential mindset, training and education need to be expanded.

(22)

What the users say

Test environment needs to be expanded. Modern development processes require capabilities such as unit testing on the target hardware. Tools should be interoperable, open source and have consistent user interfaces. Many

tools appear to have been merely thrown together at the last minute and end up hindering productivity instead of facilitating it.

(23)

CONCLUSION

1. The main incentives for the deployment of multicore processors are

throughput and increased algorithm complexity. This leads to problems in the development of parallel software.

2. Debugging and testing are the most time-consuming tasks. The biggest

challenges are reproducing failures and debugging time-critical and parallel software. This is supported by the high demand for debugging and testing tools.

(24)

CONCLUSION

3. Data security currently plays only a secondary role. Research programs like

“Industrie 4.0” and the trend towards cyber physical systems will likely increase the importance of security in the future.

4. The key drivers behind the development of in-house tools are missing

functionality and high procurement costs. This is interesting to note since in-house development is usually more expensive than buying an

(25)

Multicore R&D Activitiesat Fraunhofer ESK

Tools for analyzing multicore software

 http://www.esk.fraunhofer.de/de/projekte/Tracing.html

 http://www.esk.fraunhofer.de/de/projekte/OProfileBM.html

 MUCOS: http://www.esk.fraunhofer.de/de/projekte/MUCOS.html

 WEMUCS: www.multicore-tools.de

Embedded systems testing

 TIP: http://www.esk.fraunhofer.de/de/projekte/TIP.html

Tools for early validation of time-critical functions

(26)
(27)

What does your industry or field of application place

high value on when developing software?

Results are averaged (0) = no value 0 1 2 3 4 5

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

(28)

If your software has response-time constraints, what is

the target range?

Multiple choices are possible 0 10 20 30 40 50 60 70 80 < 1µs 1µs - 10µs 10µs - 100µs 100µs - 1ms 1ms - 10ms 10ms - 100ms 100ms - 1s > 1s No constraints % o f p a rti ci p a n ts

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

(29)

What are the key drivers behind the deployment of

multicore processors in your fields of application?

Multiple choices are possible 0 10 20 30 40 50 60 70 80

Cost Energy efficiency Throughput CPU-intensive

algorithms Redundancy No multicore

% o f p a rti ci p a n ts

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

(30)

How will multicore systems be utilized in your fields of

application in five years?

Multiple choices are possible 0 10 20 30 40 50 60 70 80 90

No multicore Not for

safety-critical applications Will be deployed More cores Homogeneous MC-processors Heterogeneous MC-processors

% o f p a rti ci p a n ts

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

(31)

Which tasks are the most time-consuming in your project

environment?

Results are averaged (0) = not done 0 1 2 3 4 5

Automotive (10 Participants) Automation (18 Participants) Telecommunications (3 Participants) Avionics (4 Participants)

(32)

What are the major challenges you face in developing

software for embedded systems?

Multiple choices are possible 0 20 40 60 80 100 120 % o f p a rti ci p a n ts

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

(33)

Which of the following tasks require tools?

Multiple choices are possible 0 20 40 60 80 100 120 % o f p a rti ci p a n ts

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

(34)

What types of tools do you use?

Multiple choices are possible

0 10 20 30 40 50 60 70 80 % of pa rti ci pa n ts Automotive (10 Participants) Commercial

Open source / freeware In-house 0 10 20 30 40 50 60 70 % of pa rti ci pa n ts Automation (18 Participants) Commercial

Open source / freeware In-house 0 10 20 30 40 50 % of pa rti ci pa n ts Telecommunications (5 Participants) Commercial

Open source / freeware In-house 0 20 40 60 80 100 % of pa rti ci pa n ts Avionics (4 Participants) Commercial

Open source / freeware In-house

(35)

If you rely on in-house tools, what was the driver behind

their development?

Multiple choices are possible 0 10 20 30 40 50 60 70 80 90 Formats not

supported Standard notsupported Tool out of date Functions notavailable costs too highProcurement No suitable toolavailable Other reasons

% o f p a rti ci p a n ts

Automotive (10 Participants) Automation (18 Participants) Telecommunications (5 Participants) Avionics (4 Participants)

References

Related documents

Synchronization patterns Mapping real-time properties Architectural real-time models Scheduling policies Identification of real- time situations: - Transactions - Timing requirements

Real-time and embedded systems; software issues in the embedded system; software development process; requirement analysis: use cases, identification, and analysis of

MOFFETT TOWERS, 1140 ENTERPRISE WAY, SUNNYVALE, CA94089 USA P 650.735.2215 11 HP Fortify Software Security Center Real-Time Analyzer Requirements Hardware Requirements.. HP

SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Introduction to real-time systems - slide 29 LED driver DAC (2) Stepper motor control I 2 C serial interface

Introduction: Definition, Typical Real Time Applications: Digital Control, High Level Controls, Signal Processing etc., Release Times, Deadlines, and Timing Constraints, Hard

Whether function or basic software (e.g. CAN or diagnostics), IAV’s Software House has the right expert to contact for your software

Many innovations in embedded systems will result from software features... A special breed: real-time

Systems are designed to individual customer requirements using all key technologies, video-detection, image processing software, intelligent (smart) cameras,