Embedded Software Engeneering mit dem Raspberry Pi



Ähnliche Dokumente
Raspberry Pi: Grundlagen in Linux und Nutzung im Amateurfunk

Echtzeit mit Linux. Erweiterungen und deren Anwendung. Martin Krohn. 2. Februar 2006

Mikrocontroller Grundlagen. Markus Koch April 2011

Ausbildung & Raspberry Pi. Alexander Elsas Goethe-Universität Frankfurt

Installationsvoraussetzungen

Embedded Linux. Embedded Linux. Daniel Buchheim Seminar "Eingebettete drahtlose Systeme"

Einführung in die Welt der Microcontroller

Embedded Linux, OpenWRT

Embedded Linux gnublin Board Programmieren Sonstiges. Embedded Linux am Beispiel des Gnublin-Boards

Installation LehrerConsole (für Version 6.2)

Systemvoraussetzungen

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

Systemvoraussetzungen

Systemanforderungen Daten und Fakten

Systemanforderungen Daten und Fakten

Systemvoraussetzungen

4D Server v12 64-bit Version BETA VERSION

MySQL und Raspberry Pi. Alexander Elsas Goethe-Universität Frankfurt

Systemvoraussetzungen

Virtuelle Maschinen. von Markus Köbele

Systemanforderungen Verlage & Akzidenzdruck

Systemvoraussetzungen

Anleitung zur Nutzung des SharePort Utility

HANDBUCH LSM GRUNDLAGEN LSM

2.1 Lightning herunterladen Lightning können Sie herunterladen über:

Systembeschreibung CU-EMBEDDED-PC (Version 1.02)

Systemvoraussetzungen und Installation

Embedded Linux. Arthur Baran

testo ZIV Treiber Konfiguration Software Bedienungsanleitung

Systemanforderungen für MSI-Reifen Release 7

Internet Explorer Version 6

Fragen zur GridVis MSSQL-Server

Calogero Fontana Fachseminar WS09/10. Virtualisierung

Systemvoraussetzungen Reifenmanagement RLV

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

BERNINA ArtLink V7.0N Installationsanleitung der Sticksoftware

Inhalt. Gründe für den Umstieg. Ist der PC für Windows 7 / 8 bereit. Kosten. Upgrade oder Neuinstallation? Was ist zu sichern? Wo liegen die Daten

Windows Server 2008 (R2): Anwendungsplattform

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

Systemvoraussetzungen Werkstattplanungssystem WPS

abasoft MailGateway: DICOM via Mail

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

Installationsanleitung. Ab Version

Formular»Fragenkatalog BIM-Server«

Virtueller Computer in Microsoft Hyper-V

1. Welche Systemvoraussetzungen muss mein PC erfüllen, damit ich die Kurse nutzen kann?

Rechner Architektur. Martin Gülck

Systemanforderungen Verlage & Akzidenzdruck

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

Systemvoraussetzungen Informationscenter IFC

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

BERNINA ArtLink 6 Installationsanleitung der Sticksoftware

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

Sichere Festplattenlöschung

Angebote refurbished PC s

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

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

Ein buchner Unternehmen: Starke Software Gmbh Lise-Meitner-Str Schwentinental Tel.:

STARSTICK 2 DVB-T Receiver als USB Stick

UEFI Secure Boot und alternative Betriebssysteme

IP-COP The bad packets stop here

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

BANKETTprofi Telefonschnittstelle

Duonix Service Software Bedienungsanleitung. Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software.

Schnelleinstieg Starter System. Version 3.2

Kommunikation intelligent steuern. UpToNet KiS, KiS-Office und Events&Artists. Systemvoraussetzungen

Systemanforderungen für MuseumPlus und emuseumplus

Von Bits, Bytes und Raid

Installationshandbuch (deutsch)

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

PERI Softwarefinder Leitfaden

32-Bit Microcontroller based, passive and intelligent UHF RFID Gen2 Tag. Zürcher Fachhochschule

step Electronic GmbH

INTERNET-SICHERHEIT SICHERHEITSPAKET INSTALLATION

Benutzerhandbuch für Debian Server mit SAMBA. Rolf Stettler Daniel Tejido Manuel Lässer

USB 10/100 FAST ETHERNET. Benutzerhandbuch

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Staatlich geprüfter EDV-Führerschein

Vom Smart Dust zum Smart Phone: Verfügbare SensingPlattformen. Adrian Friedli

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

Systemvoraussetzungen Stand

Linux Terminal mit Ethernet und Java. Eine dynamische Plattform für Automatisierungsapplikationen?

acom Lavané 7312 Touchsystem Kassensysteme PC-Systeme Kassentechnik Software Softwareentwicklung Zubehör

Checkliste Systemvoraussetzungen. Systemvoraussetzungen für den Datenbank-Server von MKS Goliath

PRODUKTINFORMATION LOCKING SYSTEM MANAGEMENT 3.2 SP1

PC Systeme. Seit über 27 Jahren. Smal Size: Kompakte aber trotzdem viel Platz, Austattung wählbar ab

MARKTANTEILE DER 3 BETRIEBSSYSTEME, PROGNOSE 2015

1. Installation der Hardware

OSADL begrüßt seine neuen Mitglieder. Pressekonferenz am 22. April Hannover Messe, Robotation Academy

OSL Storage Cluster und RSIO unter Linux Storage-Attachment und Hochverfügbarkeit in 5 Minuten

High Performance Datenerfassung Tests am Beispiel WEGA

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Persona-SVS e-sync GUI/Client Installation

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Teil I: Wat isse ne Mikrokontroller?

Windows 10 > Fragen über Fragen

Installation OMNIKEY 3121 USB

Transkript:

Embedded Software Engeneering mit dem Raspberry Pi

Übersicht Rasperry Pi Betriebssystem Hardware ARM Μ-Controller vs. Μ-Prozessor vs. SoC Embedded Software Engineering vs. Software Engineering Fazit

Raspberry Pi

Software Raspbian: Debian Linux-Port Pidora: Fedora-Port Arch: Arch Linux-Port...

Raspbian Basiert auf Debian 7 (Wheezy) Graphische Oberfläche: LXDE Softwarepakete aus Debian verfügbar

Hardware SoC: Broadcom BCM2835 CPU: ARM1176JZF-S (700 MHz) GPU: Broadcom VideoCore IV RAM: 512 MB USB 2.0 (2x) Video: HDMI, FBAS Audio: HDMI, 3,5-mm-Klinkenstecker Netzwerk: LAN9512 (100MBit)

SoC Broadcom VideoCore IV FullHD-fähig Spezifikation nicht offen ;-( Closed-Source-Treiber für Linux verfügbar ARM1176JZF-S ARM7-Familie Taktung Standard: 700Mhz Übertaktung: bis zu 1Ghz und mehr (Kühler notwendig!)

ARM ARM: Advanced RISC Machines RISC-Architektur (Reduced Instruction Set Computer) Relativ wenige Befehle Pro Taktzyklus ein Befehl (typischerweise) Load-Store-Architektur Viele GP-Register 32-Bit (ARMv8: 64-Bit)

ARM - Einsatzbereich Smartphones Tablet-Computer DSL-Router Waschmaschinen, Kühlschränke, Hausautomatisierung Unterhaltungselektronik (TV, Receiver, DVD-Player,...) Autos, Flugzeuge Medizintechnik Industriesteuerungen

Softwareausführung in Eingebetteten Systemen Microcontroller Microprozessoren Meist 8- oder 32-Bit Eher selten SoCs (System-on-a-Chip) Bei komplexen Aufgaben dominierend

8-Bit-Microcontroller Chip umfasst: Prozessor Arbeitsspeicher Datenspeicher (häufig) Peripheriefunktionen (SPI, I²C, CAN,...) Geringe Resourcen 256 Byte bis 512 kb RAM 0 Byte bis 4 kb Datenspeicher 1 kb bis 32 kb Programmspeicher Taktung: 1 20 Mhz

8-Bit-Microcontroller Geignet für simple Aufgaben und einfache Berechnungen Software Meist in C geschrieben Relativ simple Programme Kein Betriebssystem Kostengünstig Werden zum Teil von 32-Bit-Microcontrollen verdrängt

Microprozessoren Chip umfasst: nur Recheneinheit Hohe Taktraten: bis zu 4 Ghz Externe Komponenten notwendig: Arbeitsspeicher Peripheriekomponenten (SPI, I²C, CAN, )... Sehr flexibel einsetzbar kostenintensiv

SoCs Chip umfasst: Prozessor Arbeitsspeicher Peripheriefunktionen (SPI, I²C, CAN, ) Viele weitere Komponenten möglich GPU Ethernet-Netzwerk... Taktraten: bis zu mehreren Ghz Arbeitsspeicher: bis zu meheren Gb Hohe Anzahl verschiedener SoCs erhältlich Kostengünstig

Programmiersprache Heute meist C, seltener C++ Wenn Performance kritisch ist: Assembler Bei unkritischen Anwendungen (Webschnittstelle) auch Skripte

Programmierung eingebetteter Anwendungen µ-controllern: kein Betriebssystem µ-prozessor und SoCs: Betriebssystem vorhanden Programmierung daher ähnlich wie bei PCs Aber Achtung: Andere Anforderungen an die Software

Embedded Software Engineering Unterschiede zum Software Engineering: Wechselwirken mit physikalischen Prozessen Erhöhte Anforderungen an die Zuverlässigkeit Fehlfunktion kann tötlich sein Echtzeitanforderungen

Echtzeitsystem Echtzeitfähig bedeutet: Eine korrektes Ergebnis innerhalb eines vorbestimmten Zeitintervalls bereitzustellen. Echtzeitfähig!= schnell Weitere Differenzierung Hart echtzeitfähig: Zeitintervall wird garantiert eingehalten Weich echtzeitfähig: Zeitintervall wird in der Regel eingehalten

Echtzeitfähigkeit Ist ein normaler PC echtzeitfähig? Ist der Raspberry Pi echtzeitfähig?

Echtzeitfähigkeit Ist ein normaler PC echtzeitfähig? Ist der Raspberry Pi echtzeitfähig? Antwort (auf beide Fragen): kommt drauf an!

Echtzeitfähigkeit von Betriebssystemen Probleme: Multitasking Speicherverwaltung (Swapping) Locks auf Resourcen Lösungen: Echtzeitbetriebssystem (VxWorks, QNX, LynxOS, ) Erweiterung von normalen Betriebssystemen Zusätzliche Hardware

RTAI (Real Time Application Interface) Echtzeitfähiger Microkernel unter Linux

RTAI (Real Time Application Interface) Pro: Harte Echtzeitfähigkeit Einfaches Konzept Contra: Linux-Kernel kann nicht in Echtzeittasks genutzt werden Nicht vollständig auf ARM portiert

Echtzeitfähigkeit von Linux Linux ist (ab 2.6.23.1) weich echtzeitfähig Notwendig: Kernelparameter CONFIG_PREEMPT_RT setzen High-Resolution-Timer aktivieren ACPI und APM deaktivieren (nur x86) Scheduler: SCHED_OTHER SCHED_RR SCHED_FIFO

Echtzeitfähigkeit von Linux Vorgehen: Setzen des Schedulers auf SCHED_FIFO (alternativ SCHED_RR) Setzten der Priorität Locken des Speichers Resevieren von Speicher auf dem Stack Prozess wird nur unterbrochen durch I/O-Anfragen Prozess mit höherer Priorität Aufruf von sched_yield

Echtzeitfähigkeit von Linux int main(int argc, char* argv[]) { struct timespec t; struct sched_param param; int interval = 50000; /* 50us */ param.sched_priority = MY_PRIORITY; if(sched_setscheduler(0, SCHED_FIFO, &param) == -1) exit(-1); if(mlockall(mcl_current MCL_FUTURE) == -1) exit(-2); stack_prefault(); /* Stack reservieren */ clock_gettime(clock_monotonic, &t); while(1) { do_work(); /* Arbeit durchführen */ t.tv_nsec += interval; while (t.tv_nsec >= NSEC_PER_SEC) {t.tv_nsec -= NSEC_PER_SEC; t.tv_sec++;} clock_nanosleep(clock_monotonic, TIMER_ABSTIME, &t, NULL); } }

Echtzeitfähigkeit von Linux Pro: Läuft mit einem Standardkernel (sofern RT-PREEMPT aktiviert ist) Kernel und Treiber prinzipiel nutzbar Contra: Nur weiche Echtzeitfähigkeit High-Resolution-Timer u.u. nicht verfügbar Gefahr von verdecktem I/O-Anfragen (mmap)

Fazit Echtzeitanforderungen mit Linux umsetzbar mit Raspberry Pi umsetzbar Realisierung aber nicht trivial