Wind River. All Rights Reserved.

Similar documents
Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

Software Quality is Directly Proportional to Simulation Speed

Workshops Hands-on With Virtutech Simics Jakob Engblom

Using a Hypervisor to Manage Multi-OS Systems Cory Bialowas, Product Manager

10 Steps to Virtualization

Why Use Simulation? Simics & dark2 Assignment 1. What is a Simulator? Full-System Simulation

Wind River Simics for Software Development

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Embedded Linux Architecture

Using Virtual Platforms To Improve Software Verification and Validation Efficiency

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Welcome to the Software Overview section of the MIPS Software Training course. In this section I will discuss software and software tools you can use

Simulation Based Analysis and Debug of Heterogeneous Platforms

ML410 VxWorks Workbench BSP and System Image Creation for the BSB Design Using EDK 8.2i SP2. April

WIND RIVER SIMICS TABLE OF CONTENTS WHEN IT MATTERS, IT RUNS ON WIND RIVER FULL SYSTEM SIMULATION

Systems Programming and Computer Architecture ( ) Timothy Roscoe

Debugging uclinux on Coldfire

Using kgdb and the kgdb Internals

Designing with ALTERA SoC Hardware

Simics Feature List. Simics Version 4.2. Revision 3030 Date

2011 IBM Research Strategic Initiative: Workload Optimized Systems

Samuel T. King, George W. Dunlap, and Peter M. Chen University of Michigan. Presented by: Zhiyong (Ricky) Cheng

Chap.6 Limited Direct Execution. Dongkun Shin, SKKU

Introduction to gem5. Nizamudheen Ahmed Texas Instruments

Checking out" the hypervisor

HITB Amsterdam

Chapter 2: Operating-System Structures

Echo Digital Audio Corporation AudioFire 2 AudioFire 4 AudioFire 8 AudioFire 12 Release for Mac OS X

High Performance Microprocessor Emulation for Software Validation Facilities and Operational Simulators. Dr. Mattias Holm

Lecture 7: February 10

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Deterministic Replay and Reverse Debugging for QEMU

Chapter 2. Operating-System Structures

Software Driven Verification at SoC Level. Perspec System Verifier Overview

Charm: Facilitating Dynamic Analysis of Device Drivers of Mobile Systems

Scalable embedded Realtime

RTOS, Linux & Virtualization Wind River Systems, Inc.

ARM TrustZone for ARMv8-M for software engineers

Quobyte The Data Center File System QUOBYTE INC.

Parallel Simulation Accelerates Embedded Software Development, Debug and Test

Streaming mode snapshot mode Faster Troubleshooting Higher Quality Better Performance Control System Tuning Other Benefits

Developing on DragonBoard

Software Based Fault Injection Framework For Storage Systems Vinod Eswaraprasad Smitha Jayaram Wipro Technologies

To observe relevant aspects of reality Fewer assumptions High computational workload

Virtual Platform Software Simulation for Enhanced Multi-core Software Verification

TRACE32 as GDB Back-End

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

EDGE COMPUTING & IOT MAKING IT SECURE AND MANAGEABLE FRANCK ROUX MARKETING MANAGER, NXP JUNE PUBLIC

WHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti

ReVirt: Enabling Intrusion Analysis through Virtual Machine Logging and Replay

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

Optimizing Emulator Utilization by Russ Klein, Program Director, Mentor Graphics

Software Development. Integrated Software Environment

CROSSWARE 7 V8051NT Virtual Workshop for Windows. q Significantly reduces software development timescales

L4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia

Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews

ML410 VxWorks BSP and System Image Creation for the BSB Design Using EDK 8.2i SP1. April

Live Demo: A New Hardware- Based Approach to Secure the Internet of Things

_ V Renesas R8C In-Circuit Emulation. Contents. Technical Notes

Virtualization and HA PI Systems: Three strategies to keep your PI System available, scalable, and portable

Performance Considerations of Network Functions Virtualization using Containers

Enhanced Debugging with Traces

Exercise Session 6 Computer Architecture and Systems Programming

Virtual Hardware ECU How to Significantly Increase Your Testing Throughput!

Lab Install Windows 8

SimXMD Co-Debugging Software and Hardware in FPGA Embedded Systems

Configuring Security with Passwords, Privileges, and Logins

L2 - C language for Embedded MCUs

Multicore Challenges and Choices: Deciding Which Solution Is Right for You

Lecture 5: February 3

SIMICS: A COMMERCIALLY PROVEN FULL-SYSTEM SIMULATION FRAMEWORK

Practical Malware Analysis

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

Lessons learned from Lustre file system operation

Intro to Segmentation Fault Handling in Linux. By Khanh Ngo-Duy

INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS AND HOW TO USE THEM CARSTEN WEINHOLD

Malware

Debugging Applications in Pervasive Computing

Contents. Cortex M On-Chip Emulation. Technical Notes V

Virtualization. Application Application Application. MCSN - N. Tonellotto - Distributed Enabling Platforms OPERATING SYSTEM OPERATING SYSTEM

HKG : OpenAMP Introduction. Wendy Liang

HIVE: Fault Containment for Shared-Memory Multiprocessors J. Chapin, M. Rosenblum, S. Devine, T. Lahiri, D. Teodosiu, A. Gupta

Pregel: A System for Large- Scale Graph Processing. Written by G. Malewicz et al. at SIGMOD 2010 Presented by Chris Bunch Tuesday, October 12, 2010

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine

ML410 VxWorks BSP and System Image Creation for the BSB DDR2 Design Using EDK 8.2i SP1. April

Product Data Sheet: Ignition 8 Industrial Application Platform. A Whole New View

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

RM4 - Cortex-M7 implementation

Commercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory

UART Thou Mad? An Introduction to the UART Hardware Interface. Mickey Shkatov. Toby Kohlenberg

Infrastructure Middleware (Part 1): Hardware Abstraction Layer (HAL)

_ V ST STM8 Family On-Chip Emulation. Contents. Technical Notes

ARM CORTEX-R52. Target Audience: Engineers and technicians who develop SoCs and systems based on the ARM Cortex-R52 architecture.

Operating Systems. read the warning about the size of the project make sure you get the 6 th edition (or later) of the book

The Kernel Abstraction

LAB #8. GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:

GFS: The Google File System. Dr. Yingwu Zhu

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial

Renesas 78K/78K0R/RL78 Family In-Circuit Emulation

Transcription:

1

Using Simulation to Develop and Maintain a System of Connected Devices Didier Poirot Simics Technical Account Manager

THE CHALLENGES OF DEVELOPING CONNECTED ELECTRONIC SYSTEMS 3

Mobile Networks Update - Lessons Learned Mobile Networks can be extremely complex: Huge number of deployed devices: > 1.000.000.000 Device and Infrastructure are heterogeneous Vendor Customization Complexity must be managed to be successful Roles and responsibilities have to be defined Role activities have to be decoupled Development cycles are shorter and shorter Cost of change must be low Introducing a change should have a low impact, No disruption of Service Must be scalable How can I manage change, test, validation, What if? 4 2010 2011 Wind River. All Rights Reserved.

What Is Wind River Simics? Wind River Simics is a full system simulator used by software developers to simulate the hardware of large and complex electronic systems. Any Target System Wind River Simics Simulate any size of target system. Run unmodified target binaries. Simics allows you to break the rules of embedded product development. 6

Complete Virtualization User program All software: arbitrary & unmodified. Same as on a real system. Target operating system & Middleware Simulated target hardware Arbitrary; ARM, x86, x86-64, SparcV8, SparcV9, MIPS32, MIPS64, PPC32, PPC64, H8, SH, C64, Simics Host operating system Linux, Windows Host hardware 32-bit and 64-bit PCs 7

Simulating the Electronic System Run your system software on your desktop The software can t tell the difference Java VM DB User program Runs binaries from real target Android HW/SW interface Complete production software Operating system Drivers Hardware abstraction layer Boot firmware Identical build tools chain Simulated (virtual) hardware CPU CPU RAM ROM Bus Disk PCI Disk Ctrl I 2 C Flash Simics Network User Intf device A/D 8

Simics Can Model Any System or Networked Systems Ethernet, wifi, serial, etc Simics Virtual Platform Simulate multiple networked devices Mixed architectures, mixed software Multi-core, multiprocessor, multi-board Control all boards as a single entity Breakpoint stops all Save and restore system state of all boards 9

COOL SIMICS FEATURES 10

System-Level Features Checkpoint and restore Multicore, Processor, Board Real-World Connections Repeatable fault injection on any system component Scripting con0.wait-for-string "$ con0.record-start con0.input "./ptest.elf 5\n" con0.wait-for-string "." $r = con0.record-stop if ($r == "fail. ) { echo test failed } Mixed endianness, word sizes, heterogeneity 11

Simulation provides cool debugging features Synchronous stop for entire system Determinism and repeatability Reverse execution Unlimited and powerful breakpoints Trace anything Insight into all devices break x 0x0000->0x1F00 break-io uart0 break-exception int13 12

Repeatability and Reverse Debugging Repeat any run trivially No need to rerun and hope for bug to reoccur Stop and go back in time No rerunning program from start Breakpoints and watchpoints backward in time Investigate exactly what happened this time This control and reliable repeatability is very powerful for parallel code. Discover Bug Rerun, bug doesn t show up Rerun, bug doesn t show up Rerun, different bug Discover Bug Reverse execute and find source of bug Rerun, initial bug occurs On hardware, only some runs reproduce an error. On virtual hardware, debugging is much easier. 13

EXAMPLE 14

A Simulated Networked Target System Three target machines running any Android stack, A management machine to push updates, All interconnected in a single network, with external world connectivity, All contained inside a single simulation session IP 10.10.0.20 Android App. IP 10.10.0.50 Android Server Software Manager Server OS PC Server IP 10.10.0.21 IP 10.10.0.22 My Android App. Android ARM926 Android App. Android ARM Cortex WindRiver PFA ARM1176 Ethernet Simics IP 10.10.0.1 Service node Host OS Host PC 15

Run the Simulation Run the simulation again Watch serial/graphic consoles as the machines start to boot On a multicore host, Simics will use multiple processor cores to run the simulation in parallel Note: The speed of this simulation is directly impacted by the horsepower of your laptop 16

Network Fault Injection Causing faults at the 10.10.0.22 machine s network interface Simics Ethernet probe attached to the network interface Fault injection module randomly dropping 20% of packets or corrupt packets randomly See how Software react IP 10.10.0.20 Android App. IP 10.10.0.50 Android Server Software Manager Server OS PC Server IP 10.10.0.21 My Android App. Android ARM926 Fault injection module Probe IP 10.10.0.22 Android App. Android ARM Cortex WindRiver PFA ARM1176 Ethernet Simics IP 10.10.0.1 Service node Host OS Host PC 17

Simics Fault Injection Simics target control Access any part of target Change any part of target state or configuration Scripting for precise targeting and replay of faults No permanent damage to target Purpose Test system-level fault handling Test fault low-level fault detection Model failing hardware Example fault actions: Dropping packets on networks Injecting bad checksums Network partitioning Delaying hardware replies Transient memory corruption Permanent memory corruption Transient register corruption Permanent register corruption Data bus transmission errors Address bus transmission errors Triggering spurious interrupts Permanent subsystem failures (disconnecting from system) Processor crash Temperature sensor reporting overheating Error reporting registers flagged 18

19