Integrating Static Analysis Into Your Embedded Software .

3y ago
48 Views
3 Downloads
433.28 KB
6 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Kamden Hassan
Transcription

Integrating Static Analysis intoYour Embedded SoftwareDevelopment WorkflowFeaturing Polyspace Static Analysis Products and the Wind RiverSoftware Development ToolchainW H I T E PA P E R

Integrating Static Analysis into Your Embedded Software Development WorkflowAs software gets more complex, the requirements for software quality increase. This is especially truefor real time embedded systems such as GNC, flight data recorders, ADAS, and engine control systems which cannot afford failures. The embedded software development process is therefore quiteelaborate and requires an integrated toolchain for automation, efficiency, and quality. The primarycomponents of any such toolchain are the compiler and the integrated development environment.Advanced static analysis tools are increasingly becoming an important and ubiquitous tool in thesoftware developer’s arsenal.One of the key challenges in the adoption of the tools by the software development community hasbeen the lack of integration of static analysis tools into the development environment or the toolchain. In this whitepaper, we will discuss how Polyspace static analysis tools can be integrated intothe Wind River software development toolchain, as well as the benefits of such an integration.Wind River Software Development ToolchainWind River Diab CompilerDiab Compiler is a complete toolkit for embedded application development, including C and C compilers, assemblers, linkers, utilities, and standard libraries for a variety of target CPU architectures such as Renesas RH850, Infineon TriCore, PowerPC, and ARM.Wind River WorkbenchWorkbench is a collection of tools that accelerates time-to-market for advanced developers buildingembedded devices. It offers an end-to-end, open standards-based suite for device software design,development, debug, test, and management. It enables organizations to standardize on a commonenvironment for software development based on Eclipse framework.VxWorksThe VxWorks family of products delivers a real-time operating system with scalability, safety, security, and virtualization capabilities for building intelligent, connected systems.Polyspace Static Analysis ProductsPolyspace products provide a complete static analysis solution to comply with coding standards suchas MISRA and CERT C, detect defects and security vulnerabilities, calculate code metrics, and, mostimportantly, prove the absence of run-time errors in your application.Polyspace Bug FinderPolyspace Bug Finder identifies run-time errors, concurrency issues, security vulnerabilities, andother defects in C and C embedded software. Using static analysis, including semantic analysis,Polyspace Bug Finder analyzes software control, data flow, and interprocedural behavior. By highlighting defects as soon as they are detected, it lets you triage and fix bugs early in the developmentprocess.W H I T E PA P E R 2

Integrating Static Analysis into Your Embedded Software Development WorkflowPolyspace Code ProverPolyspace Code Prover is a sound static analysis tool that proves the absence of overflow, divide-byzero, out-of-bounds array access, and certain other run-time errors in C and C source code. It produces results without requiring program execution, code instrumentation, or test cases. PolyspaceCode Prover uses semantic analysis and abstract interpretation based on formal methods to verifysoftware interprocedural, control, and data flow behavior. You can use it on handwritten code, generated code, or a combination of the two. Each operation is color-coded to indicate whether it is free ofrun-time errors, proven to fail, unreachable, or unproven.By verifying the dynamic properties of embedded applications, abstract interpretation encompassesall possible behaviors of the software and all possible variations of input data, including how softwarecan fail. It gives proof of code correctness, thereby providing strong assurance of code reliability.By using bug finding and code proving tools, engineering teams can reduce costs while acceleratingthe delivery of reliable embedded systems.Solar Impulse Saves 1-2 Person Years Through Static AnalysisSolar Impulse used Polyspace products on their avionics software, which comprises 260Klines of code. They put Polyspace on the server, where it integrated with Eclipse and ran inthe background. In one case, the team needed to find a latent bug in their throttle box,which was generating an incorrect temperature. The error evaded manual code reviews bythree engineers. They pinpointed the error with Polyspace products – without test cases orcompilation. Solar Impulse reported saving 1-2 person years by using the products.Challenges in the Adoption of Static AnalysisA couple of key challenges that hinder the effective use of static analysis tools are: Difficulty in setting up the analysis A focus on static analysis in the late stages of the development workflowBoth these challenges are a consequence of the lack of integration of static analysis tools in the developer’s toolchain. Setting up an analysis often involves translating the compiler-specific features suchas preprocessor options or the manual configuration of the source code and include paths. It can alsobe a burden on the developer to acclimate and use a different interface to set up their code for analysisor to review the analysis results. As a result, developers resist the use of static analysis tools.Static analysis, when used, is often pushed to the later stages of the development cycle and often getshanded down to the quality and test teams. This leads to an ineffective workflow because issues arediscovered too close to the release and, in some cases, require significant time and engineeringresources to resolve issues that would have been highlighted much earlier.W H I T E PA P E R 3

Integrating Static Analysis into Your Embedded Software Development WorkflowA good solution to address this issue is to integrate static analysis tools into the build process. Oneway to accomplish this and automate the process is to configure and launch the analysis by readingthe compilation process. This can be done either through the command line or by integrating the toolinto the developer’s IDE and staying in a single interface.Integrating static analysis into the compilation and build processDelphi Diesel Systems Gets to Root Cause Faster with Polyspace ProductsBecause fuel-injection systems increasingly rely on electronics, the reliability of embeddedsoftware is crucial. Poor reliability can lead to product recalls. Using Polyspace products, theteam at Delphi Diesel Systems automatically identified run-time errors in the diesel fuelinjection system’s embedded software, eliminating time-consuming robustness tests thatfrequently provided inadequate results.Integrating Polyspace Static Analysis Tools into the Development WorkflowPolyspace can be integrated into the Wind River software development toolchain. You can plug it intothe Workbench IDE, where you can configure Polyspace to read the makefile to extract the compilation settings within the IDE and create a Polyspace project. Polyspace supports the Diab Compiler outof the box, making this a seamless step.W H I T E PA P E R 4

Integrating Static Analysis into Your Embedded Software Development WorkflowPolyspace supports the Diab Compiler for architectures such as the PowerPC, ARM, and TriCore.Furthermore, if you are using VxWorks, the support for Diab Compiler permits very fine-grainedhandling of VxWorks projects. Polyspace products support the VxWorks multi-tasking model.Polyspace can automatically detect and configure the multi-tasking options such as the entry pointsand the critical sections. The primitives to start a task (taskSpawn) and to lock/unlock a resource(semTake/semGive from semLib.h) are recognized (with -enable-concurrency-detection option) andtheir semantics are correctly interpreted.Polyspace Bug Finder extends compiler capabilities to identify programming mistakes or semanticissues as you write code. You can use the output of the Polyspace analysis to reduce manual reviewcosts in code review. You can use Polyspace static analysis results for a defect audit and use the software quality metrics as part of the architecture/design analysis of the code, and avoid defects in thelater stages such as through a fix-as-you-go agile approach.Learn to Integrate Polyspace into Your WorkflowDebunking Misconceptions About Static AnalysisComprehensive Static Analysis Using Polyspace ProductsW H I T E PA P E R 5

Integrating Static Analysis into Your Embedded Software Development WorkflowExplore How Other Engineers Use PolyspaceSolar Impulse Uses Polyspace Static Analysis for Solar AirplaneRalph Paul, Solar Impulse4:33Introducing Polyspace Products intothe Software Development ProcessEileen Davidson, Ford Motor CompanyInterested in Learning More?Select your role to explore how Polyspace can help you.Software Development ManagerSoftware Engineeror DeveloperTest or QualityEngineerRequest a Trial Speak to an Expert 2017 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See mathworks.com/trademarks for a list of additional trademarks.Other product or brand names may be trademarks or registered trademarks of their respective holders.W H I T E PA P E R 693106v00 03/17

Polyspace Static Analysis Products Polyspace products provide a complete static analysis solution to comply with coding standards such as MISRA and CERT C, detect defects and security vulnerabilities, calculate code metrics, and, most importantly, prove the absence of run-time errors in your application. Polyspace Bug Finder

Related Documents:

Verizon High Speed Internet for Business . Your New Static IP Connection and Set-Up . This Static IP Set Up Guide will instruct you how to set up your new Static IP Connection and Multiple Static IP addresses (if applicable). Static IP addresses have a dedicated IP address on the Internet while Dynamic IP addresses constantly

Oasys GSA Contents Notation 8 Degrees of freedom 10 Active degrees of freedom 10 Degrees of Freedom with no Local Stiffness 11 Analysis Options 13 Static Analysis 13 Static P-delta Analysis 13 Modal Analysis 14 Modal P-delta Analysis 14 Ritz Analysis 15 Modal Buckling Analysis 16 Model Stability Analysis 17 Non-linear Static Analysis 18

Abstract: Static analysis relies on features extracted without executing code, while dynamic analysis extracts features based on execution (or emulation). In general, static analysis is more efficient, while dynamic analysis can be more informative, particularly in cases where the code is obfuscated. Static analysis of an Android application

3M ª Metal-in Static Shielding Bag SCC 1000, Open Top and Ziptop . Static Shielding Bag SCC 1300 3M . 3M ª Metal-Out Static Shielding Bag SCC 1500, Open Top and Ziptop 3M Metal-Out Cushioned Static Shielding Bag 2120R Metal-in Shield Bags are intended to provide a static safe environment for electronic devices. Metal-in Shield Bags

Static routes are manually configured and define an explicit . Configuring an IPv6 static route is very similar to IPv4 except that the command is now ipv6 route. The following must be configured before entering a static . IPv6 also has a default static route similar to the IPv4 quad zero (0.0.0.0) static default route. Instead, the IPv6 .

Configure IP Default Static Routes Default Static Route (Cont.) IPv4 Default Static Route: The command syntax for an IPv4 default static route is similar to any other IPv4 static route, except that the network address is0.0.0.0and the subnet mask is0.0.0.0. The 0.0.0.0 0.0.0.0 in the route will match any network address.

Module Objective: Troubleshoot static and default route configurations. Topic Title Topic Objective Packet Processing with Static Routes Explain how a router processes packets when a static route is configured. Troubleshoot IPv4 Static and Default Route Configuration Troubleshoot common static and default route configuration issues.

2.87 GPa ASTM D 4255 Shear modulus G 13 G 23 157.48 MPa ASTM D 732 Sheet compressive strength 71.20 MPa Modified ASTM D 695 Sheet compressive modulus 3.50 GPa Modified ASTM D 695 Core compressive strength 8.73 MPa ASTM C 365 Core compressive modulus 268.9 MPa ASTM C 365 Sheet density 3960 kg/m - Core density 156 kg/m3 - 4 U T T U I 2( / sin )cos ( / )(2 / 1) 2 * h l h l t t l t (1) where, ρ .