BRDS ( , WS 2017) Ulrich Schmid

Similar documents
Real Time and Embedded Systems. by Dr. Lesley Shannon Course Website:

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

Embedded Linux Architecture

Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview Use Cases Architecture Features Copyright Jaluna SA. All rights reserved

REAL TIME OPERATING SYSTEM PROGRAMMING-I: VxWorks

CSE 237A Middleware and Operating Systems. Tajana Simunic Rosing Department of Computer Science and Engineering University of California, San Diego.

Real-Time & Embedded Operating Systems

RTOS Real T i Time me Operating System System Concepts Part 2

The Xenomai Project. The Open Group Conference Paris, April Open Source Engineering

LINUX INTERNALS & NETWORKING Weekend Workshop

Release Notes for QNX Neutrino BSP for Renesas SH7785 SDK 1.0.0#

OVERVIEW. Last Week: But if frequency of high priority task increases temporarily, system may encounter overload: Today: Slide 1. Slide 3.

Release Notes for QNX Neutrino BSP for Renesas SH7780 EDOSK 1.0.0#

6/20/2018. Lecture 2: Platforms & RTOS. Outline. Lab Setup (20 min) Labs work. Lecture: Platform + RTOS

Comparison of scheduling in RTLinux and QNX. Andreas Lindqvist, Tommy Persson,

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Case Study: Using System Tracing to Improve Packet Forwarding Performance

Hardware OS & OS- Application interface

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

The OS Wars. Success

Govt. of Karnataka, Department of Technical Education Diploma in Computer Science Sixth Semester. Contact Hrs / week: 4 Total hrs: 64

Operating Systems Overview. Chapter 2

REAL-TIME OPERATING SYSTEMS SHORT OVERVIEW

Real-Time Systems Hermann Härtig Real-Time Operating Systems Brief Overview

Rab Nawaz Khan Jadoon

* There are more than 100 hundred commercial RTOS with memory footprints from few hundred kilobytes to large multiprocessor systems

Embedded Operating Systems. Unit I and Unit II

Software Development & Education Center

Migrating Linux Device Drivers to a Microkernel POSIX RTOS: A Case Study. David Donohoe Senior Software Developer QNX Software Systems

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

ECE 471 Embedded Systems Lecture 16

Chapter 19: Real-Time Systems. Operating System Concepts 8 th Edition,

Two Real-Time Operating Systems and Their Scheduling Algorithms: QNX vs. RTLinux

Operating System. Operating System Overview. Layers of Computer System. Operating System Objectives. Services Provided by the Operating System

Operating System Overview. Operating System

İzmir Institute of Technology Embedded Systems Lab. Real-Time Systems. Asst. Prof. Dr. Tolga Ayav Department of Computer Engineering

Today s Topics. u Thread implementation. l Non-preemptive versus preemptive threads. l Kernel vs. user threads

SE300 SWE Practices. Lecture 10 Introduction to Event- Driven Architectures. Tuesday, March 17, Sam Siewert

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System

Real-Time Systems. Real-Time Operating Systems

Course Description: This course includes the basic concepts of operating system

Embedded Systems: OS. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Communication Patterns in Safety Critical Systems for ADAS & Autonomous Vehicles Thorsten Wilmer Tech AD Berlin, 5. March 2018

ECE 471 Embedded Systems Lecture 16

2 nd Half. Memory management Disk management Network and Security Virtual machine

EMBEDDED LINUX ON ARM9 Weekend Workshop

WinCE for LPC3250. BUMMS China Nov PDF created with pdffactory Pro trial version

QNX NEUTRINO 6.2, VXWORKS AE 1.1, WINDOWS CE.NET AND ELDS 1.1 COMPARED

Linux Operating System

Embedded System Curriculum

Today s Topics. u Thread implementation. l Non-preemptive versus preemptive threads. l Kernel vs. user threads

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

Embedded Systems: OS

10 th AUTOSAR Open Conference

Memory Management. Mobile Hardware Resources. Address Space and Process. Memory Management Overview. Memory Management Concepts

Predictable Interrupt Management and Scheduling in the Composite Component-based System

Hypervisor Market Overview. Franz Walkembach. for GENIVI AMM, April 19 th, 2018 (Munich) SYSGO AG Public

Advanced Operating Systems and Virtualization. Alessandro Pellegrini A.Y. 2017/2018

Reminder. Final exam. Tentative time: December 6th, 4:30pm-5:45pm Location: G26. ECE 1160/2160 Embedded System Design 1

Real-Time and Security Requirements in IoT Operating Systems

Architectural Support for Operating Systems

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Operating System Kernels

(b) External fragmentation can happen in a virtual memory paging system.

10 Steps to Virtualization

EECS 571 Principles of Real-Time Embedded Systems. Lecture Note #10: More on Scheduling and Introduction of Real-Time OS

Unit OS2: Operating System Principles. Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze

Part B Questions. Unit I

Operating Systems Overview

Memory Management. Disclaimer: some slides are adopted from book authors slides with permission 1

HPS SoC Boot Guide - Cyclone V SoC Development Kit

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

The Early System Start-Up Process. Group Presentation by: Tianyuan Liu, Caiwei He, Krishna Parasuram Srinivasan, Wenbin Xu

QNX Software Development Platform 6.6. Quickstart Guide

Universal Windows Driver Development with WDF UMDF 2.0 and KMDF for IoT, Desktop and Server

... Lecture 10. Concepts of Mobile Operating Systems. Mobile Business I (WS 2017/18) Prof. Dr. Kai Rannenberg

Operating Systems, Fall

Chapter 8: Memory Management. Operating System Concepts with Java 8 th Edition

Exam Questions. Give an example network topology where GPSR cannot find a way from a source to a sink. Explain your answer.

CS/ECE 6780/5780. Al Davis

Page 1. Lab 5 Logistics. Implicit Threads. Explicit Thread Semantics. Problem not enough interrupt pins CS/ECE 6780/5780. Al Davis

EMBEDDED OPERATING SYSTEMS

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

Accelerating Delivery of Quality Systems with Eclipse-based Tools. Sebastien Marineau-Mes QNX Software Systems

PocketStoreII v Quick Installation Guide. April 2007, Version 2.4

Threads. Thread Concept Multithreading Models User & Kernel Threads Pthreads Threads in Solaris, Linux, Windows. 2/13/11 CSE325 - Threads 1

Real-Time Programming

Evaluation of uclinux and PREEMPT_RT for Machine Control System

Exam Guide COMPSCI 386

Outline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems

Release Notes of the QNX BSP for Centrality Atlas II EVB Trunk#

Main Memory. Electrical and Computer Engineering Stephen Kim ECE/IUPUI RTOS & APPS 1

ECE 471 Embedded Systems Lecture 12

Embedded Systems. 6. Real-Time Operating Systems

Operating System Structure

Problem Set: Processes

RELEASE NOTES. for QNX SP1 BSP for the Karo TX6DL (Freescale i.mx6 Dual Lite)

Transcription:

BRDS (182.704, WS 2017) Ulrich Schmid s@ecs.tuwien.ac.at http://ti.tuwien.ac.at/ecs/teaching/courses/brds

File System Protocol Stack Audio Driver Graphics Driver Microkernel Application Message Bus Microkernel the only trusted component Applications and drivers: Processes that plug into a message bus Reside in memory-protected address space Cannot corrupt other software components Can be started, stopped, and upgraded dynamically Critical for survivability U. Schmid BRDS: Intro QNX Neutrino 2

Monolitic vs. Microkernel Architecture Realtime Executive (VxWorks, proprietary) > No MMU and no protection > Applications, drivers, etc. are all in kernel space Application Application Kernel space System-wide corruption Device Drivers TCP/IP Stack File System U. Schmid BRDS: Intro QNX Neutrino 3

Monolitic vs. Microkernel Architecture Realtime Executive (VxWorks, proprietary) > No MMU and no protection > Applications, drivers, etc. are all in kernel space Monolithic Kernel (Linux, etc.) > MMU with partial protection > Applications are protected Application Application Kernel space System-wide corruption Device Drivers TCP/IP Stack File System Application User Space (re-startable) Kernel space Contained Application Device Drivers System-wide TCP/IP Stack corruption File System U. Schmid BRDS: Intro QNX Neutrino 4

Monolitic vs. Microkernel Architecture Realtime Executive (VxWorks, proprietary) > No MMU and no protection > Applications, drivers, etc. are all in kernel space Monolithic Kernel (Linux, etc.) > MMU with partial protection > Applications are protected Application Application Kernel space System-wide corruption Device Drivers TCP/IP Stack File System Contained Application Application (re-startable) Device Drivers System-wide TCP/IP Stack corruption File System User Space Kernel space True Microkernel (QNX Neutrino RTOS) > MMU with full protection > Applications, drivers, and protocols are all protected Kernel Application Contained File System (re-startable) Contained User Space Device Drivers TCP/IP Stack (re-startable) U. Schmid BRDS: Intro QNX Neutrino 5

U. Schmid BRDS: Intro QNX Neutrino 6

Microkernel provides elementary functions only Most QNX services for application processes are NOT provided by the microkernel Rather: Via QNX system processes U. Schmid BRDS: Intro QNX Neutrino 7

U. Schmid BRDS: Intro QNX Neutrino 8

Processes have MMU-protected dedicated address space A process may comprise multiple threads that share its address space U. Schmid BRDS: Intro QNX Neutrino 9

Flexible preemptive, prioritydriven thread scheduling, with same-priority threads handled according to either round-robin FIFO (= manual round robin) sporadic (aperiodic server) U. Schmid BRDS: Intro QNX Neutrino 10

Flexible preemptive, prioritydriven thread scheduling, with same-priority threads handled according to round-robin FIFO (manual round robin) sporadic (aperiodic server) Powerful inter-process/thread communication (IPC) U. Schmid BRDS: Intro QNX Neutrino 11

U. Schmid BRDS: Intro QNX Neutrino 12

Very fast interrupt handling: Short periods where interrupts are disabled: Defer heavy computations to processes U. Schmid BRDS: Intro QNX Neutrino 13

Initial Program Loader (IPL): Elementary HW setup Startup: QNX boot Boot script: Application boot U. Schmid BRDS: Intro QNX Neutrino 14

U. Schmid BRDS: Intro QNX Neutrino 15

Basic IPC mechanism: Processes send / receive messages via channels Channel Higher-level (POSIX) services build atop U. Schmid BRDS: Intro QNX Neutrino 16

Flexible MP mechanisms: Fragmented messages via inputoutput vectors (IOV) Various MP semantics, for example, synchronous send: U. Schmid BRDS: Intro QNX Neutrino 17

Devices identified via pathnames Name resolution etc. handled by Process Manager and devicespecific Resource Managers U. Schmid BRDS: Intro QNX Neutrino 18

Devices identified via pathnames Name resolution etc. handled by Process Manager and devicespecific Resource Managers Example: Network printer usage U. Schmid BRDS: Intro QNX Neutrino 19

Devices identified via pathnames Name resolution etc. handled by Process Manager and devicespecific Resource Managers Relies on Global Name Service U. Schmid BRDS: Intro QNX Neutrino 20

U. Schmid BRDS: Intro QNX Neutrino 21

Embedded systems need to be monitored, debugged and controlled remotely Much of the complexity and difficulty with embedded development is limited insight into the operation of the target system U. Schmid BRDS: Intro QNX Neutrino 22

U. Schmid BRDS: Intro QNX Neutrino 23

U. Schmid BRDS: Intro QNX Neutrino 24

Process and Thread Information Source View with current executing code U. Schmid BRDS: Intro QNX Neutrino 25

Execution control Variables and data structures Registers U. Schmid BRDS: Intro QNX Neutrino 26

Embedded systems require operating system and applications to be bundled into a boot image Tools are needed to simplify the work of creating a boot image QNX Momentics provides the System Builder which provides tools in Eclipse to: Create boot image from OS, binaries, libraries and DLLs Startup script editing Built-in TFTP server Serial terminal U. Schmid BRDS: Intro QNX Neutrino 27

U. Schmid BRDS: Intro QNX Neutrino 28

Image Navigator Binary and File System Builder U. Schmid Built-in TFTP Server Binary Inspector BRDS: Intro QNX Neutrino Serial Terminal 29

Binaries, Libraries, DLLs, etc. Boot File System Structure U. Schmid BRDS: Intro QNX Neutrino 30

U. Schmid BRDS: Intro QNX Neutrino 31

We use QNX 6.5.0 with Service Pack SP1 (NOTE: Most recent QNX version is 6.6.0!) You hence need to download and install: QNX Software Development Platform 6.5.0 QNX Software Development Platform 6.5.0 Service Pack 1 QNX Software Development Platform 6.5.0 Byte Pair Encoding Patch QNX Software Development Platform 6.5.0 SP1 applypatch Patch QNX Software Development Platform 6.5.0 SP1 ARMv7 Kernel & Libc Patch QNX Software Development Platform 6.5.0 SP1 TCP Timer Patch QNX Software Development Platform 6.5.0 SP1 TCP Timer Patch Debug Files Rely on installation notes for every component U. Schmid BRDS: Intro QNX Neutrino 33

We use QNX 6.5.0 with Service Pack SP1 (NOTE: Most recent QNX version is 6.6.0!) You hence need to download and install: QNX BSP for Pandaboard (Release A4) [not for Pandaboard ES!]: TI-OMAP4430-Panda MLO/x-load bootloader U-boot bootloader Pandaboard WiFi Driver Follow TI OMAP4430 Pandaboard QNX6.5.0 BSP Release Notes and Install Notes U. Schmid BRDS: Intro QNX Neutrino 34

The BSP installation notes describe how to properly format the SD card for booting MLO/u-boot requires a single active FAT32 partition (of type 0x0c) If you use Windows (diskpart shell utility), the default partition offset is 1024 kb The MLO bootloader expects an offset of 4096 kb (not mentioned in the BSP installation notes!). Force it by create partition primary offset=4096 U. Schmid BRDS: Intro QNX Neutrino 35

U. Schmid BRDS: Intro QNX Neutrino 36