Improving Embedded Software Test Effectiveness in Automotive Applications



Similar documents
Local Interconnect Network (LIN) Physical Interface

Techniques and Tools for Software Analysis

Initializing the TSEC Controller

Programming Audio Applications in the i.mx21 MC9328MX21

etpu Host Interface by:

Connecting Low-Cost External Electrodes to MED-EKG

Understanding LCD Memory and Bus Bandwidth Requirements ColdFire, LCD, and Crossbar Switch

Handling Freescale Pressure Sensors

Software Marketing, Embedded Real-Time Solutions

How To Build A Project On An Eclipse Powerbook For Anarc (Powerbook) On An Ipa (Powerpoint) On A Microcontroller (Powerboard) On Microcontrollers (Powerstation) On Your Microcontroller 2 (Powerclock

User Interface Design using CGI Programming and Boa Web Server on M5249C3 Board

Windows 7: Using USB TAP on a Classic CodeWarrior Installation (MGT V9.2 DSC V8.3)

Data Movement Between Big-Endian and Little-Endian Devices

Blood Pressure Monitor Using Flexis QE128 Gabriel Sanchez RTAC Americas

PowerQUICC II Pro (MPC83xx) PCI Agent Initialization

Connecting to an SMTP Server Using the Freescale NanoSSL Client

Performance Monitor on PowerQUICC II Pro Processors

IRTC Compensation and 1 Hz Clock Generation

How To Control A Motor Control On An Hvac Platform

Installation of the MMA955xL CodeWarrior Service Pack Author: Fengyi Li Application Engineer

Hardware Configurations for the i.mx Family USB Modules

Cyclic Redundant Checker Calculation on Power Architecture Technology and Comparison of Big-Endian Versus Little-Endian

Software Real Time Clock Implementation on MC9S08LG32

Point-of-Sale (POS) Users Guide Lech José Olmedo Guerrero Jaime Herrerro Gallardo RTAC Americas

Using WinUSB in a Visual Studio Project with Freescale USB device controller

MPC8245/MPC8241 Memory Clock Design Guidelines: Part 1

3-Phase BLDC Motor Control with Hall Sensors Using 56800/E Digital Signal Controllers

PQ-MDS-T1 Module. HW Getting Started Guide. Contents. About This Document. Required Reading. Definitions, Acronyms, and Abbreviations

Freescale Embedded GUI Converter Utility 2.0 Quick User Guide

Detecting a CPM Overload on the PowerQUICC II

Using the Performance Monitor Unit on the e200z760n3 Power Architecture Core

MC13783 Buck and Boost Inductor Sizing

Flexible Active Shutter Control Interface using the MC1323x

Enhanced Serial Interface Mapping

Freescale Semiconductor. Integrated Silicon Pressure Sensor. On-Chip Signal Conditioned, Temperature Compensated and Calibrated MPX4080D.

How to Convert 3-Axis Directions and Swap X-Y Axis of Accelerometer Data within Android Driver by: Gang Chen Field Applications Engineer

Generate Makefiles from Command Line Support in Eclipse-Based CodeWarrior Software

Understanding Pressure and Pressure Measurement

How To Fit A 2Mm Exposed Pad To A Dfn Package

VGA Output using TV-Out Extension Solution i.mx21

Freescale Semiconductor. Integrated Silicon Pressure Sensor. On-Chip Signal Conditioned, Temperature Compensated and Calibrated MPX5500.

Real Time Development of MC Applications using the PC Master Software Visualization Tool. 1. Introduction. 2. Development of Motor Control.

Using Program Memory As Data Memory. 1. Introduction Program Memory and Data. Contents. Memory. Freescale Semiconductor Application Note

White Paper. Freescale s Embedded Hypervisor for QorIQ P4 Series Communications Platform

How To Improve Performance On A P4080 Processor

Using XGATE to Implement LIN Communication on HCS12X Daniel Malik 8/16-Bit Products Division East Kilbride, Scotland

Using eflexpwm Module for ADC Synchronization in MC56F82xx and MC56F84xx Family of Digital Signal Controllers

3-Phase BLDC Motor Control with Hall Sensors Using the MC56F8013

MCF54418 NAND Flash Controller

Using the High Input Voltage Charger for Single Cell Li-Ion Batteries (KIT34671EPEVBE)

Genesi Pegasos II Setup

MLPPP in the Evolving Radio Access Network

USB HID bootloader for the MC9S08JM60

i.mx Applications Processors with Hantro's Multimedia Framework

How To Measure Power Of A Permanent Magnet Synchronous Motor

Implementing Positioning Algorithms Using Accelerometers

NOT RECOMMENDED FOR NEW DESIGN

ColdFire Security SEC and Hardware Encryption Acceleration Overview

Efficient Low-Level Software Development for the i.mx Platform

ITU-T V.42bis Data Dictionary Search on the StarCore SC140/SC1400 Cores

User Guide. Introduction. HCS12PLLCALUG/D Rev. 0, 12/2002. HCS12 PLL Component Calculator

Installing Service Pack Updater Archive for CodeWarrior Tools (Windows and Linux) Quick Start

Quickly Turning Ideas into Microcontroller-Based Applications with CodeWarrior Development Tools and UNIS Processor Expert

MPXAZ6115A MPXHZ6115A SERIES. Freescale Semiconductor Technical Data. MPXAZ6115A Rev 4, 01/2007

Developing an Application for the i.mx Devices on the Linux Platform

Processor Expert Software Microcontrollers Driver Suite Getting Started Guide

Using the HC08 SCI Module

AND9190/D. Vertical Timing Optimization for Interline CCD Image Sensors APPLICATION NOTE

Green Embedded Computing and the MPC8536E PowerQUICC III Processor

Using the Kinetis Security and Flash Protection Features

VLE 16-bit and 32-bit Instruction Length Decode Algorithm

NOT RECOMMENDED FOR NEW DESIGN

Smarter Infrastructure for a Smarter World

SEMICONDUCTOR TECHNICAL DATA

P D Operating Junction Temperature T J 200 C Storage Temperature Range T stg 65 to +150 C

Installing Service Pack Updater Archive for CodeWarrior Tools (Windows and Linux) Quick Start

Emulated EEPROM Implementation in Dual Flash Architecture on MC9S08LG32 With Demo Description

i.mx28 Ethernet Performance on Linux

Configuring the FlexTimer for Position and Speed Measurement with an Encoder

MSC8156 and MSC8157 PCI Express Performance

ULN2803A ULN2804A OCTAL PERIPHERAL DRIVER ARRAYS

CodeWarrior Development Studio Floating Licensing Quick Start

LOW POWER SCHOTTKY. GUARANTEED OPERATING RANGES ORDERING INFORMATION

AND8365/D. 125 kbps with AMIS-4168x APPLICATION NOTE

Solder Joint Temperature and Package Peak Temperature Determining Thermal Limits during Soldering

LOW POWER NARROWBAND FM IF

Comparison of MC9S08QE128 and MCF51QE128 Microcontrollers Scott Pape and Eduardo Montanez Systems Engineering, Freescale Microcontroller Division

Using the High-Input-Voltage Travel Charger for Single Cell Li-Ion Batteries (KIT34674EPEVBE)

A Utility for Programming Single FLASH Array HCS12 MCUs, with Minimum RAM Overhead

AND9015. A Solution for Peak EMI Reduction with Spread Spectrum Clock Generators APPLICATION NOTE. Prepared by: Apps Team, BIDC ON Semiconductor

Multicore Processing: Virtualization and Data Center

RF Power Field Effect Transistors N- Channel Enhancement- Mode Lateral MOSFETs

Ref Parameters Symbol Conditions Min Typ Max Units. Standby μa. 3 Range kpa. 4 Resolution 0.15 kpa. 5 Accuracy -20ºC to 85ºC ±1 kpa

Freescale Semiconductor, I

Freescale Variable Key Security Protocol Transmitter User s Guide by: Ioseph Martínez and Christian Michel Applications Engineering - RTAC Americas

CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start

How to Do EEPROM Emulation Using Double Flash Array on MC9S08LC60 Ronald Gonzalez and Tatiana Orofino RTAC Americas

NOT RECOMMENDED FOR NEW DESIGN

Freescale Semiconductor. Integrated Silicon Pressure Sensor

Adding SDIO Wi-Fi Solution to i.mx Windows CE 5.0/Windows CE 6.0

Transcription:

Improving Embedded Software Test Effectiveness in Automotive Applications Author, D Brook Document Number: CODETESTTECHWP Rev. 0 11/2005

As the automotive industry introduces more and more safety-critical, computer-based systems (e.g., brake-by-wire), there is a growing convergence between the guidelines that the Automotive 1 and Aerospace 2 industries use for developing safe and reliable embedded software. The Automotive industry implements strong software development processes, using software standards and certification in an effort to improve the overall quality and reliability of embedded software. The intelligent interconnection of tools, processes and methods should also be a central focus of developing better software. This discussion focuses on how structural coverage analysis techniques may be used to improve overall test effectiveness, one aspect of the Automotive and Aerospace software development guidelines. Methodologies to improve the testing and testability of software have improved in recent years, but it is not unusual for an embedded application to have as little as 20-30 percent of its code actually tested before first customer shipment. In most projects this is a quality, time and cost issue, but in systems where safety is a major characteristic, the problem can be more acute. Testing is an essential component of the software verification process, and it serves two primary functions: to prove that the software works correctly and to detect programming errors and mistakes in the implementation of the software design. For large embedded systems, the human capacity to comprehend complexity is limited, and defects can never be completely ruled out. The following examples highlight difficulties with software testing: > Defects in the software design are difficult to identify. > Systems interacting with the real world present unique issues as hardware and software are not continuous and testing boundary values is not guaranteed to ensure test completeness. > Traditional functional and black box testing does not guarantee that all executable code or states can be reached. Good embedded software testing is to some extent an art form and requires effective methods and tools to support the deployed testing strategy. Typically, more than 50 percent of development time is spent testing the software, representing a significant cost. For safety-critical software, it is important that the effectiveness and quality of this testing be tracked and measured to ensure test completeness. For safety-critical avionics software, structural coverage analysis data must be submitted to the certification authorities to prove that the software has been tested completely. The objective of structural coverage analysis is to determine which code structures have not been exercised by requirements-based test procedures. There are many coverage analysis techniques, with varying degrees of rigor, from statement coverage through to modified condition/decision coverage. The data that coverage analysis provides helps to identify: > Missing test cases > Missing requirements dead code > Unreachable code By using the coverage data as feedback, test effectiveness can be dramatically improved, eliminating a lot of the guesswork associated with improving testing. The DO-178B guidelines for developing avionics provide a very specific reference to deciding the required level of coverage, and a similar approach is echoed in the Motor Industry Software Reliability Association (MISRA) software development guidelines. DO-178B states that the more safety critical a system is, then the more rigorous the coverage analysis needs to be. Applying this approach to an example in the automotive market, this means that low impact automotive systems, such as an in-car entertainment system, would benefit from a high-level coverage analysis measurement such as statement coverage. At the other end of the scale, a throttle-by-wire system would require the most rigorous coverage analysis, such as modified condition/decision coverage. Choosing the right coverage level helps to ensure the beneficial use of development resources, ensuring that the more safety critical a system is, the more scrutiny it gets. 1 Motor Industry Software Reliability Association Development Guidelines for Vehicle Based Software 2 RTCA DO-178B/EUROCAE ED-12B Software Considerations in Airborne System and Equipment Certification Improving Embedded Software Test Effectiveness in Automotive Applications, Rev. 0 3

For safety-critical applications, system certification and tool qualification are increasingly used as a means to reinforce the most disciplined approach to software validation and the tools used for development and test. In the Avionics industry, software tools are categorized in reference to their ability to introduce and detect errors as follows: > Development tools have an output which can be part of airborne software and can introduce errors. > Verification tools cannot introduce errors but may fail to detect them. The implication of this is that some tools are required to be qualified in order to be used for avionic application development. This means that the tool must be proven to produce deterministic results that are at least as accurate as the manual process that they replace. Freescale's CodeTEST software analysis tool is one such tool and is qualifiable under the US FAA 3 Safety Critical guidelines for code coverage analysis tools. CodeTEST uses a unique software instrumentation and data collection technology that works successfully with cache-based systems while minimizing intrusiveness. It adds statements or tags during the compilation process, l eaving the source code intact. These tags are added at key execution points such as function entries and exits. The unique tag value is then written at run-time to a fixed memory location. A hardware data collection agent listens to this address and captures each tag write as it occurs. This allows efficient and effective execution analysis of software even on cache-based processors, providing the following analyses: Software Execution Trace Provides a detailed history of software execution allowing the root cause of software problems to be found. The information collected can be analysed and interpreted at the source code and RTOS level. Memory Analysis Monitors dynamic memory allocations and de-allocations, to help identify memory leaks and errors, and to provide the basic data needed to design a memory fragmentation solution. Performance Analysis Hardware data collection provides the highest resolution software execution speed measurements. The CodeTEST performance analysis measurements may be used to verify the performance of real-time code, or to focus optimization efforts. This allows evaluation of actual software execution against expectations and information about the impact of real-world characteristics such as external interrupts. Code Coverage CodeTEST provides three levels of coverage analysis: statement, decision and modified condition/decision coverage. The hardware data collection technique allows coverage measurements to be made at the system level with the minimum of intrusion. It is worth restating that the primary objective of tools like CodeTEST is to reduce the cost of taking software to market through accelerated development time and improving the ability of the test process to identify defects. This objective can be achieved more easily if verification tools are part of a well integrated environment where time consuming, repetitive tasks such as test and verification can be automated. As the deployment of embedded software extends to more critical and complex areas of vehicles, such as braking and steering, the need for more sophisticated tools and methods is significantly more important. Tools which can interoperate through the design, development and test phases will have a dramatic positive impact on the cost and reliability of production software. 3 US Federal Aviation Administration 4 Improving Embedded Software Test Effectiveness in Automotive Applications, Rev. 0

How to Reach Us: Home Page: www.freescale.com e-mail: USA/Europe or Locations Not Listed: Technical Information Center, CH370 1300 N. Alma School Road Chandler, Arizona 85224 1-800-521-6274 480-768-2130 Europe, Middle East and Africa: Freescale Halbleiter Deutschland GmbH Technical Information Center Schatzbogen 7 81829 Muenchen, Germany +44 1296 380 456 (English) +46 8 52200080 (English) +49 89 92103 559 (German) +33 1 69 35 48 48 (French) Japan: Japan Ltd. Headquarters ARCO Tower 15F 1-8-1, Shimo-Meguro, Meguro-ku, Tokyo 153-0064, Japan 0120 191014 +81 3 5437 9125 support.japan@freescale.com Asia/Pacific: Hong Kong Ltd. Technical Information Center 2 Dai King Street Tai Po Industrial Estate, Tai Po, N.T., Hong Kong +800 2666 8080 support.asia@freescale.com For Literature Requests Only: Literature Distribution Center P.O. Box 5405 Denver, Colorado 80217 1-800-441-2447 303-675-2140 Fax: 303-675-2150 LDCForFreescaleSemiconductor @hibbertgroup.com Information in this document is provided solely to enable system and software implementers to use products. There are no express or implied copyright license granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. reserves the right to make changes without further notice to any products herein. Freescale Semiconductor makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Typical parameters which may be provided in data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including Typicals must be validated for each customer application by customer s technical experts. does not convey any license under its patent rights nor the rights of others. products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the product could create a situation where personal injury or death may occur. Should Buyer purchase or use products for any such unintended or unauthorized application, Buyer shall indemnify and hold and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that was negligent regarding the design or manufacture of the part. Freescale and the Freescale logo are trademarks of, Inc. All other product or service names are the property of their respective owners., Inc., 2005. Document Number: CODETESTTECHWP Rev. 0 11/2005