uclinux für High Performance Embedded Systems



Ähnliche Dokumente
Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Konzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux. Kolloquium von Frank Schwanz

Debugging mit uclinux auf ARM-Prozessoren

Anleitung zur Nutzung des SharePort Utility

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

4D Server v12 64-bit Version BETA VERSION

Installationsanleitung

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

Systemvoraussetzungen Stand

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Atmel AVR für Dummies

MAXDATA b.drive. Externe Festplatte mit integrierter Backup Software

Anleitung zur Nutzung des SharePort Plus

Hardware- und Softwareanforderungen für die Installation von California.pro

Meine SPS kann Linux, und nun?

PC-Software für Verbundwaage

Virtuelle Maschinen. von Markus Köbele

Formular»Fragenkatalog BIM-Server«

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Mikrocontroller Grundlagen. Markus Koch April 2011

Übung zu Grundlagen der Betriebssysteme. 13. Übung

VAX2go ein Projekt der Gruppe Damn small VAX

Systemanforderungen (Mai 2014)

Technische Voraussetzungen

Einführung in die Welt der Microcontroller

5 Speicherverwaltung. bs-5.1 1

Lizenzierung von System Center 2012

Mikroprozessor als universeller digitaler Baustein

Virtuelle Maschinen Konzept von VMWare

Mac OS X G4 Prozessor 450 MHz (G5- oder Intelprozessor empfohlen) 512 MB RAM. zusätzliche Anforderungen Online-Version

Persona-SVS e-sync GUI/Client Installation

Lizenzierung von Windows Server 2012

Stefan Schmidt 28. Mai 2006

Allgemeine Anforderungen zum Einsatz von (gültig ab Version 45.xx.xx)

Technische Voraussetzungen

Implementierung eines M2M Back-end Servers

Hardware Virtualisierungs Support für PikeOS

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

EyeCheck Smart Cameras

Windows 8 Lizenzierung in Szenarien

Installationshandbuch. Software Version 3.0

Windows Server 2008 (R2): Anwendungsplattform

Spectra-Panel IW 0840 V.1

Gliederung. Was ist Cloud Computing Charakteristiken Virtualisierung Cloud Service Modelle Sicherheit Amazon EC2 OnLive Vorteile und Kritik

Systemvoraussetzungen GS-Programme 2012

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

MULTINETWORKING MEHR ALS NUR EIN NETZWERK. Oktober 2010

RFID Lösungen Fragebogen über Ihr RFID Projekt

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Citrix Provisioning Server Marcel Berquez. System Engineer

Raspberry Pi: Grundlagen in Linux und Nutzung im Amateurfunk

Anleitung zum HD-Streaming

C und C++ für Embedded Systems

XEN Virtualisierung und mehr

Pflichtenheft. Projektteam. Rexford Osei - Frey Michael Weichert Thomas Thutewohl. Pflichtenheft Seite 1 von 7

XY-Plotter. Hardware. Software µp. Software PC. von Thomas Wagner

Systemvoraussetzungen winvs office winvs advisor

Linux Embedded. Heimo Schön/August Hörandl 11/2004 Seite 1/17

SharePoint Demonstration

Facharbeit Informatik. Thema:

Allgemeine Hinweise zur Systemumgebung

Grafiktreiber im Linuxkernel - die Außenseiter -

Python macht Embedded Linux angenehmer

Wie profitiert SAP MaxDB von SSD Technologie?

Die Anforderungen an die Praxisausstattung bestehen aus folgender Basisausstattung der Arztpraxis:

Verwaltung der MSATA-SSD bei HP Envy Ultrabook 4 und Ultrabook 6 mit Intel Smart Response Technologie

Systemanforderungen für MuseumPlus und emuseumplus

Workshop: Eigenes Image ohne VMware-Programme erstellen

Installationsanleitung

Paravirtualisierung (2)

Systemanforderungen für MSI-Reifen Release 7

Verfügbarkeit von Applikationen und Failover Szenarien. Winfried Wojtenek.

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Allgemeine Hinweise zur Systemumgebung

AVT Spartan-3E Development Kit AVT DK S3E-500 (V1.0)

eclips Handheld Remote Control Software Updater

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

HAFTUNGSAUSSCHLUSS URHEBERRECHT

User Mode Linux. Sven Wölfel 15. April 2005

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Agenda. Einleitung Produkte vom VMware VMware Player VMware Server VMware ESX VMware Infrastrukture. Virtuelle Netzwerke

High Performance Datenerfassung Tests am Beispiel WEGA

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

PERI Softwarefinder Leitfaden

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen?

Performance und Bandbreitenmanagement Tests Version MuSeGa

Preisvergleich ProfitBricks - Amazon Web Services M3 Instanz

Panda GateDefender Software eseries ERSTE SCHRITTE

USB-Driver: Download-Link:

Fragen und Antworten. Kabel Internet

Virtualisierung in der Automatisierungstechnik

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Einführung in PHP. (mit Aufgaben)

Installationsvoraussetzungen

Transkript:

uclinux für High Performance Embedded Systems TU Chemnitz Juniorprofessur Echtzeitsysteme 4. März 2007 / Chemnitzer Linux-Tage

Gliederung 1 Grundlagen 2 Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung 3

Ziel des Vortrages Grundlagen Embedded bedeutet nicht lahm und klein.

Embedded computers are defined to be those where the computer is used as a component within a system: not as a computing engine in its own right. [...] (Jim Cooling, Software Engineering for Real-Time Systems)

Merkmale komplexe Interaktion mit Umwelt und anderen eingebetteten Systemen werden häufig autonom betrieben hohe Anforderungen an Zuverlässigkeit ersetzen zunehmend mechanische Systeme Hard- und Software werden gemeinsam entworfen (HW/SW-Codesign) Einsatz eines Prozessors von außen häufig nicht erkennbar arbeiten häufig unter Echtzeit-Bedingungen Kosten für Reparatur übersteigen Kosten des Systems.

Microcontroller Units (MCU) = Mikroprozessor mit Peripherie on-chip (Timer, Speicher, Schnittstellen, Wandler,... ) sehr große Vielfalt, organisiert in Familien hohe Codedichte mit und ohne virtuellem Speicher niedrige Verlustleistung, niedriger Preis Einsatz in Eingebetteten Systemen

Klassifizierung per Verarbeitungsbreite 8 Bit 16 Bit 32 Bit Intel MCS-51 Intel MCS-96 Intel XScale Freescale 68HC11 DSP 56800 Freescale MPC 860 Atmel AVR Infineon XC166 DEC StrongARM Zilog Z8 Analog Devices Blackfin Tabelle: Beispiele für Microcontroller-Familien

Digitale Signalprozessoren (DSP) = Microcontroller mit schnelle Multiplizier-Addier-Operation (MAC) sehr hohe Bandbreite RAM CPU spezielle Adressierungsmodi (Ringpuffer, FFT) Zero-Overhead-Looping minimale Interrupt-Latenz umfangreiche on-chip-peripherie (AD/DA-Wandler, Schnittstellen, RAM, DMA-Controller, Timer) keine MMU in C und/oder Assembler

Prozessor AD Blackfin BF-537 DSP-Microcontroller-Hybride Takt maximal 750 MHz 132 kbyte internes RAM extrem niedrige Leistungsaufnahme bis zu zwei Fetch-Operanden pro Takt, zwei MAC-Operationen pro Takt insgesamt 40 Register á 32 Bit PPI, SPI, Ethernet, CAN on-board Preis: 15-19 US$ (1000er Quantitäten) besitzt MMU, diese kann jedoch keinen VM Cache und Sprungvorhersage

Prozessor AD Blackfin BF-537

Blackfin Roadmap Grundlagen Bild: http://www.analog.com/processors/blackfin/overview/blackfin_roadmap.html

Entwicklungsplattform: STAMP-Board

Entwicklungsplattform: STAMP-Board BF537, 500 MHz 64 MB SDRAM, 4 MByte Flash RS-232, 100 MBit Ethernet, 2xCAN JTAG, Peripherie-Konnektoren Low Cost Eval Platform (164 e bei Spoerle)

Ziele Grundlagen Erweiterung des physischen Speichers durch Festplatte Schutz des Betriebssystems und der Nutzeraktivitäten voreinander Gestreute Speicherung (keine kontinuierlichen Speicherbereiche erforderlich) Klassische Abstraktion: Prozeß = Programm in Ausführung, jedoch in eigenem Adreßraum

Funktionsprinzip Grundlagen Seiten virtueller Speicher Prozeß 1 A B C D Prozeß 2 P Q R MMU+OS physischer Hauptspeicher P A B C frei Kacheln Q R frei D......

Umsetzung der virtuellen Adresse mittels Seitentabelle Seitennummer virtuelle Adresse Index 0x0000 0x1000 Hauptspeicher Seitenadressen Prot P 0x8000 0x1000 0x3000 RW RO RWX 1 0 1......... 0x4000 RO 1 Seitentabelle + 0x2000 physische Adresse 0x4000... selektiertes Wort

Grundlagen uclinux = Linux ohne Virtuellen Speicher = Linux für Microcontroller ohne MMU wird ausgesprochen: You-see-Linux

Präliminarien Grundlagen Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung Inbetriebnahme der Platine Initialkommunikation über RS232 Ethernet Stromversorgung lädt Bootloader (U-Boot) und uclinux vom Flash Installation der Entwicklungswerkzeuge Quelle:http://blackfin.uclinux.org/gf/project/toolchain installiert nach /opt/uclinux

Hello, World! Grundlagen Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung 1 Programmentwicklung 2 Übersetzung für und Test im Simulator bfin-uclinux-gdb target sim... 3 Übersetzung für reale Hardware 4 Übetragung zum DSP (ftp, nfs) 5 Test

Punktprodukt; C-Version Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung int dot(short *x, short *y, int len) { int i,dot; dot = 0; for(i=0; i<len; i++) dot += x[i] * y[i]; } return dot;

Punktprodukt; Asm-Version Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung I0 = x; I1 = y; A1 = A0 = 0; R0 = [I0++] R1 = [I1++]; LOOP dotproduct LC0 = len >> 1; LOOP_BEGIN dotproduct; A1 += R0.H * R1.H, A0 += R0.L * R1.L R0 = [I0++] R1 = [I1++]; LOOP_END dotproduct; R0 = (A0 += A1); dot = R0 >> 1;

Punktprodukt; Ergebnisse Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung Blackfin Pentium M Core 2 Duo f c [MHz] 500 2000 2130 C (-O9) Asm C (-O9) C (-O9) Zyklen 405 53 684 384 t e [ns] 810 106 342 108 Tabelle: Zyklenzahlen und Ausführungszeiten (len=100)

uclinux vs. Linux Verlust des Schutzes Grundlagen Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung Alles liegt in ein- und demselben Adreßraum! Konsequenzen: jede Aktivität kann das Gesamtsystem korrumpieren Verletzung der Integrität kaum zu erkennen (kein SIGSEV etc.) Ausnahme: NULL-Pointer-Dereferenz führt zu Kernel-Oops vgl. Kernelprogrammierung Demonstration: mem-viol.c

uclinux vs. Linux Prozeßerzeugung Grundlagen Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung Semantik von fork() nicht realisierbar liefert stets -1 (d. h. funktioniert nicht mehr) Nutzung von vfork() stattdessen (differierende Semantik!) Demonstration: fork1.c Alternativen: clone(), pthreads Demonstration: fork2.c

uclinux vs. Linux Verwaltung des Kernelspeichers Grundlagen Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung Linux: Buddy-Allocator (kmalloc()) schnell viel Verschnitt uclinux: Modifikation (Kmalloc2) identisch bei Anforderungen 4 kbyte sonst Aufrundung auf n 4 kbyte kleine Anforderungen ( 8 kbyte) vom Anfang des Speichers bedient große Anforderungen vom Ende (noch) nicht im 2.6er uclinux

uclinux vs. Linux Verwaltung des Applikationsspeichers Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung kein Paging mehr reale Gefahr der Fragmentierung keine Defragmentierung des Speichers möglich Stackgröße konstant! (zur Übersetzungszeit determiniert) brk() erlaubt nur noch das Verkleinern des Datensegmentes (da fix) malloc() nutzt mmap() mmap() alloziiert Kernelspeicher

Präliminarien Hello, World! Komplexere Applikationen uclinux vs. Linux Kernelprogrammierung Implementierung eines einfachen Treibers Demonstration... sofern Zeit

Wozu das Ganze? Grundlagen Basis für Consumerelektronik mit hohem Rechenzeitbedarf Beispiel: Open-Source-Telefon (http://www.rowetel.com/blog/?p=15) einziger DSP mit (vernünftigem) Open-Source-Support Was machen wir mit dem Blackfin? Portierung ecos Einbau von Schutz (Kernel User Space) ideale Echtzeit-Plattform ADEOS und Xenomai existieren sehr deterministisches Ausführungszeitverhalten Autumn DSP Programming School

Einschätzung gegenwärtig sehr aktives Open-Source-Projekt jedoch klein im Vergleich zu Linux Qualität des Codes und der Pakete sehr hoch vorbildliche Unterstützung durch Community Embedded heißt weder lahm noch klein!