Hilfe Warenkorb Konto Anmelden
 
 
   Schnellsuche   
     zur Expertensuche                      
Embedded-Software entwickeln - Grundlagen der Programmierung eingebetteter Systeme - Eine Einführung für Anwendungsentwickler
  Großes Bild
 
Embedded-Software entwickeln - Grundlagen der Programmierung eingebetteter Systeme - Eine Einführung für Anwendungsentwickler
von: Thomas Eißenlöffel
dpunkt, 2012
ISBN: 9783864911002
306 Seiten, Download: 6218 KB
 
Format: EPUB, PDF
geeignet für: geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen PC, MAC, Laptop

Typ: A (einfacher Zugriff)

 

 
eBook anfordern
Inhaltsverzeichnis

  Vorwort 6  
  Inhaltsverzeichnis 12  
  1 Grundlagen 16  
     1.1 Hardwarearchitekturen 16  
     1.2 Zeitverhalten 21  
     1.3 Betriebssysteme 23  
     1.4 Entwicklungsumgebungen 24  
        1.4.1 Entwicklungsumgebungen für PC- und Serveranwendungen 24  
        1.4.2 Software-Entwicklungsumgebungen für Embedded-Systeme 25  
     1.5 Entwicklungsprozesse 27  
     1.6 Konfigurations- und Variantenmanagement 34  
     1.7 Planung 35  
     1.8 Qualität 36  
        1.8.1 Qualitätskriterien 38  
        1.8.2 Produktqualität prüfen durch Reviews 39  
        1.8.3 Produktqualität prüfen durch Tests 40  
        1.8.4 Prozessqualität prüfen durch Assessments und Audits 44  
     1.9 Sicherheit 45  
        1.9.1 Zugriffssicherheit 46  
        1.9.2 Funktionale Sicherheit 47  
     1.10 Dokumentation 50  
        1.10.1 Dokumentation von Anforderungen, Architektur und Design 51  
        1.10.2 Dokumentation des Quellcodes 54  
  2 Anforderungsanalyse 56  
     2.1 Quellen 57  
     2.2 Funktionale Anforderungen 59  
        2.2.1 Zuordnung der funktionalen Anforderungen zu Softwaremodulen 60  
        2.2.2 Lücken in den Anforderungsdokumenten 61  
     2.3 Nichtfunktionale Anforderungen 63  
        2.3.1 Vorgaben zur Entwicklungsumgebung 63  
        2.3.2 Vorgaben zur Dokumentation 66  
        2.3.3 Vorgaben zur Zielumgebung 67  
        2.3.4 Vorgaben zum Entwicklungsprozess 69  
        2.3.5 Vorgaben zur Funktionalen Sicherheit 70  
     2.4 Nachprüfbarkeit von Anforderungen 71  
     2.5 Zusammenhang zwischen Anforderungsanalyse und weiteren Entwicklungsphasen 71  
        2.5.1 Anforderungen und Software-Anforderungstest 72  
        2.5.2 Softwareanforderungen und Softwarearchitektur 73  
  3 Architektur 76  
     3.1 Beschreibung der Datenflüsse 81  
        3.1.1 Bestimmung der Datenrate 81  
        3.1.2 Umgang mit Datenüberlauf 82  
        3.1.3 Modulstruktur und Pufferkonzepte 82  
        3.1.4 Datenkonsistenz 85  
        3.1.5 Struktur der Eingangsdaten 86  
        3.1.6 Übertragungsprotokolle 86  
     3.2 Bedienen von Datenschnittstellen 87  
        3.2.1 Polling 88  
        3.2.2 Interrupt-Betrieb 91  
        3.2.3 Prozess-Steuerung 93  
     3.3 Aufteilen der Software 94  
     3.4 Schichtenmodelle 97  
     3.5 Berücksichtigung vorhandener Softwaremodule 99  
        3.5.1 Betriebssysteme 101  
        3.5.2 Bibliotheken 104  
        3.5.3 Legacy Code 104  
     3.6 Test- und Überwachungsfunktionen 109  
     3.7 Bedingungen zum Starten und Anhalten von Modulen 109  
     3.8 Verwaltung gemeinsamer Ressourcen 110  
     3.9 Hardwarerelevante Themen 110  
        3.9.1 Einfluss der Hardwarearchitektur auf die Software 111  
        3.9.2 Anforderungen der Software an die Hardwareressourcen 112  
        3.9.3 Software zur Implementierung vom Hardwarefunktionen 114  
  4 Design 116  
     4.1 Anpassung des Designs bei Wartung bestehender Embedded-Software 120  
     4.2 Softwaredesign bei Neuentwicklung von Embedded-Software 123  
        4.2.1 Design der Datenstrukturen des Moduls 124  
        4.2.2 Dynamische Datenstrukturen 127  
        4.2.3 Funktionsaufbruch 133  
     4.3 Anwendungsprogramme 139  
        4.3.1 Rekursion 140  
        4.3.2 Automaten 143  
        4.3.3 Regelalgorithmen 146  
     4.4 Treiber 149  
  5 Implementierung 150  
     5.1 Werkzeuge 154  
        5.1.1 Prozedurale Programmiersprachen 155  
        5.1.2 Objektorientierte Sprachen 156  
        5.1.3 Assembler 159  
        5.1.4 Autocode 162  
        5.1.5 Eigenschaften von Compilern 164  
        5.1.6 Entwicklung von Code für verschiedene Plattformen 168  
     5.2 Anpassung der Implementierung bei Wartung bestehender Embedded-Software 169  
     5.3 Software-Implementierung bei Neuentwicklung von Embedded-Software 170  
        5.3.1 Funktionale Strukturierung der Implementierung 170  
        5.3.2 Implementierung von Datenstrukturen 175  
        5.3.3 Dynamische Datenstrukturen 178  
        5.3.4 Application Programming Interfaces (APIs) 182  
     5.4 Umsetzung spezieller Entwurfsmethoden 182  
        5.4.1 Zustandsautomaten (state machines) 182  
        5.4.2 Digitale Signalverarbeitungsalgorithmen 187  
     5.5 Treiberimplementierung 187  
        5.5.1 Interrupt-Betrieb 187  
        5.5.2 Polling-Betrieb 188  
     5.6 Implementierungstipps 189  
        5.6.1 Codierrichtlinien 191  
        5.6.2 Regeln für die C-Programmierung 196  
        5.6.3 Datentypen 201  
        5.6.4 Variablen 204  
        5.6.5 Konstanten 205  
        5.6.6 Makros 206  
        5.6.7 Initialisierung 209  
        5.6.8 Komplexität 212  
        5.6.9 Festkomma-Arithmetik 218  
        5.6.10 Umgang mit Wertebereichsüberschreitungen 220  
        5.6.11 Optimieren von Schleifen 224  
        5.6.12 Reduzieren des Stack-Verbrauchs) 226  
        5.6.13 Adressierung 230  
        5.6.14 Task-Synchronisation 233  
        5.6.15 Ausnahmebehandlung (Exception Handling) 234  
        5.6.16 Stray Interrupts 235  
     5.7 Codeanalyse 236  
        5.7.1 Verifikation des Quellcodes 236  
        5.7.2 Erhöhung der Codequalität 239  
  6 Test 240  
     6.1 Teststrategie 244  
        6.1.1 Anforderungen an den Test 245  
        6.1.2 Testvoraussetzungen 246  
        6.1.3 Testumgebung 252  
        6.1.4 Testvorbereitung 256  
        6.1.5 Testdurchführung 256  
        6.1.6 Ende des Tests 257  
     6.2 Modultest 259  
        6.2.1 Black-Box-Test und White-Box-Test 259  
        6.2.2 Modultest und Anforderungsverfolgungsmatrix 265  
        6.2.3 Test hardwarenaher Funktionen 266  
        6.2.4 Automatisierte Modultests 268  
     6.3 Softwareintegration und Software- Integrationstest 269  
        6.3.1 Interaktionstest 269  
        6.3.2 Schnittstellen-Kompatibilitätstest 270  
        6.3.3 Ressourcentest 270  
     6.4 Software-Anforderungstest 271  
     6.5 HW-/SW-Integration und HW-/SW-Integrationstest 274  
        6.5.1 Test des Systemstarts 275  
        6.5.2 Schedulertest 276  
        6.5.3 Speichertest 276  
        6.5.4 Hardware-Schnittstellentest 277  
        6.5.5 Zugriff auf gemeinsame Ressourcen testen 278  
     6.6 Komponenten- und Systemtest 278  
        6.6.1 Komponententest 279  
        6.6.2 Systemtest 281  
  7 Ausblick 282  
     7.1 Aufgaben nach Ende eines Software- Entwicklungsprojekts 282  
     7.2 Trends im Embedded-Bereich 283  
  A Abkürzungen 286  
  B Begriffe 290  
  C Links und Literatur 296  
  Index 298  


nach oben


  Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zu eBooks?

  Navigation
Belletristik / Romane
Computer
Geschichte
Kultur
Medizin / Gesundheit
Philosophie / Religion
Politik
Psychologie / Pädagogik
Ratgeber
Recht
Reise / Hobbys
Sexualität / Erotik
Technik / Wissen
Wirtschaft

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek
© 2008-2020 ciando GmbH | Impressum | Kontakt | F.A.Q. | Datenschutz