Book description
»Embedded Systems mit RISC-V und ESP32-C3« vermittelt grundlegende Konzepte und Funktionsweisen von Mikrocontrollern und erläutert dabei den Einsatz von RISC-V, eine auf freier Technologie basierende Befehlssatzarchitektur. Die praktischen Übungen des Buchs können Sie auf dem kostengünstigen Mikrocontroller ESP32-C3 ausführen.Teil I des Buchs geht auf den Aufbau eines RISC-V-Mikroprozessors und die selbstständige Programmierung des Mikrocontrollers ein. Auf dieser Grundlage werden Performanz und Möglichkeiten zur Code-Optimierung vermittelt. Der zweite Teil setzt den Fokus auf den Aufbau eines Mikrocontrollers und die Ansteuerung seiner Peripheriemodule sowie auf das Erlernen von elektrotechnischen Grundlagen. Als Beispiel dient die Implementierung eines Pulsoximeters. Im dritten Teil wird das Pulsoximeter herangezogen, um den Einsatz des Echtzeitbetriebssystems FreeRTOS und verschiedener Internetprotokolle zu demonstrieren. Eine praktische Betrachtung von Bluetooth LE rundet diesen Teil ab.Dieses Buch bietet Ihnen viele Beispiele, um mit einem ESP32-C3-Mikrocontroller die Erläuterungen praktisch nachzuvollziehen. Vorkenntnisse in der Programmiersprache C und RISC V-Assembler erleichtern die Umsetzung der Übungen. Teilweise sind weitere Komponenten wie eine Steckplatine und andere kostengünstige Bauteile notwendig. Jeder Teil des Buchs enthält theoretische und praktische Übungen sowie Musterlösungen, anhand derer Sie Ihre eigenen Fortschritte beurteilen können.
Table of contents
- Cover
- Über den Autor
- Titel
- Impressum
- Vorwort
- Inhaltsverzeichnis
-
I Mikrocontrollergrundlagen
- 1 Einleitung
- 1.1 Ziel des Buchs
- 1.2 Struktur des Buches
- 1.3 Zielpublikum
- 1.4 Gebrauchsanweisung
- 1.4.1 Konventionen
- 2 Hallo, Welt!
- 2.1 Wahl der Programmiersprache
- 2.2 Benötigte Komponenten für die Applikationsentwicklung
- 2.2.1 Development Board
- 2.2.2 Software für die Entwicklung
- 2.3 Die erste Applikation
- 3 Der Mikroprozessor
- 3.1 Prozessorarchitektur
- 3.1.1 Eine kleine Aufgabe
- 3.1.2 Die Registerbank
- 3.1.3 Die Arithmetic Logic Unit (ALU)
- 3.1.4 Datenspeicher
- 3.1.5 Befehlsspeicher
- 3.1.6 Steuerwerk
- 3.1.7 Weitere Einheiten
- 3.1.8 Der Prozessor
- 3.1.9 Pipeline
- 3.2 Instruction Set Architecture
- 3.2.1 RISC-V
- 3.2.2 sum_up_n in Assembler
- 3.2.3 sum_up_n-Maschinensprache
- 3.3 Performance
- 3.3.1 Control and Status Registers
- 3.3.2 Funktionsaufruf
- 3.3.3 Optimierung des Codes
- 3.3.4 Änderung des Verfahrens
- 4 Der Mikrocontroller
- 4.1 Aufbau eines Mikrocontrollers
- 4.1.1 Test des Zufallszahlengenerators
- 4.1.2 Das Bussystem
- 4.1.3 ESP32-C3 Memory Map
- 4.2 Speicher
- 4.2.1 Speichertechnologien
- 4.2.2 Speicherzugriffe in Software
- 4.2.3 Cache
- 4.2.4 Linker
- 4.3 Peripheriemodule
- 4.3.1 Peripheriezugriff
- 4.3.2 Durchführung des Zufallszahlentests
- 4.3.3 Informationen der Hersteller
- 4.3.4 Speicherlayout der Peripherie
- 4.3.5 Bits als Schalter
- 4.4 Bitmaskierung
- 4.4.1 Klassische Aussagenlogik
- 4.4.2 Bitweise Operatoren in C
- 4.4.3 Bitmaskierung
- 4.5 Zusammenfassung
-
II Peripheriemodule
- 5 Digitale Ein-/Ausgabe
- 5.1 Peripherie
- 5.2 Projekt Pulsoximeter
- 5.3 Elektrotechnische Grundlagen
- 5.3.1 Strom und Spannung
- 5.3.2 Widerstand und Ohm’sches Gesetz
- 5.3.3 Halbleiter und Diode
- 5.3.4 Schaltungsaufbau »LED an Batterie«
- 5.4 LED schalten
- 5.4.1 Transistor
- 5.4.2 Logische Funktionen mit CMOS
- 5.4.3 GPIO-Modul
- 5.4.4 Schaltungsaufbau ESP32-C3 mit LEDs
- 5.4.5 Pin-Multiplexing
- 5.4.6 Set-/Reset-Register
- 5.4.7 Bitfeld und Union in C
- 5.4.8 Gesamtes Modul kapseln
- 5.4.9 API des Herstellers
- 5.4.10 Oszilloskop als Hilfsmittel
- 5.4.11 Kondensator
- 5.4.12 Leistung, Arbeit, Batterielebensdauer
- 5.5 Taster anschließen
- 5.5.1 GPIO Eingangssignalpfad
- 6 Interrupts und Exceptions
- 6.1 Exceptions und Interrupts
- 6.1.1 RISC-V-Ausnahmebehandlung
- 6.1.2 Aktivierung des Interrupts
- 6.1.3 Exception Handler
- 6.2 Schichtenarchitektur und Callback
- 6.2.1 Schichtenarchitektur
- 6.2.2 Callbacks
- 6.3 Interrupt bei Tastendruck
- 6.4 Sourcecodeverwaltung
- 6.4.1 Module in Unterverzeichnissen
- 6.4.2 Komponentenmodell des ESP-IDF
- 6.4.3 Versionsverwaltung
- 7 Externe Komponenten digital anschließen
- 7.1 Display ansteuern
- 7.2 Konfiguration im ESP-IDF
- 7.3 I2C-Protokoll
- 7.3.1 SMBus
- 7.4 SPI-Schnittstelle
- 7.4.1 Bit-Banging
- 7.4.2 DMA: Direct Memory Access
- 7.4.3 Dateispeicherung auf SD-Karten
- 7.5 WS2812B
- 7.6 Weitere Kommunikationsschnittstellen
- 7.6.1 Serielle Schnittstelle, RS-232
- 7.6.2 I2S
- 7.6.3 CAN
- 7.6.4 Funkschnittstellen
- 8 Analoge Werte verarbeiten
- 8.1 Die Welt ist analog
- 8.1.1 Abtastung (Sampling)
- 8.1.2 Analog-Digital-Wandlung
- 8.1.3 Messen am Spannungsteiler
- 8.2 Werte filtern
- 8.2.1 Filterimplementierung
- 8.3 Den Herzschlag erkennen
- 8.3.1 Diskrete Fourier-Transformation
- 8.4 Die Zeit messen
- 8.4.1 Taktgeber
- 8.5 Das Timer-Modul
- 8.5.1 Timer des ESP32-C3
- 8.5.2 Systemzeit und Kalenderzeit
- 8.5.3 Zeitsynchronisierung
- 8.5.4 Pulsweitenmodulation (PWM)
- 8.5.5 Weitere Komponenten
- 8.6 Zusammenfassung
-
III Embedded System
- 9 Embedded Betriebssystem
- 9.1 Embedded Applikationsmodell
- 9.2 Multitasking
- 9.3 Echtzeitbetriebssystem
- 9.3.1 FreeRTOS
- 9.4 Nebenläufigkeit
- 9.4.1 Semaphor
- 9.4.2 Kritische Region
- 9.4.3 Deadlock
- 9.4.4 Producer/Consumer
- 9.4.5 Message-Queue
- 9.4.6 Mutex und Signalisierung
- 9.4.7 Prioritätenbasiertes Scheduling
- 9.5 Systemkontext
- 9.6 Gerätetreiber
- 9.6.1 POSIX-Standard
- 10 Internet der Dinge
- 10.1 Internet
- 10.1.1 Wi-Fi-Konfiguration
- 10.1.2 Berkeley Sockets
- 10.1.3 UDP
- 10.1.4 TCP
- 10.1.5 Datenformate
- 10.1.6 Header
- 10.2 Cloud-Zugriff
- 10.2.1 REST und CoAP
- 10.2.2 MQTT-Protokoll
- 10.2.3 Webserver
- 10.3 Bluetooth
- 10.3.1 NimBLE Stack
- 10.3.2 Generic Access Profile (GAP)
- 10.3.3 GATT-Profil und ATT-Protokoll
- 10.4 Power-Management
- 10.4.1 Sleep Modes
- 10.4.2 Power-Management-Algorithmus
- 11 Schlusswort
- IV Anhang
- Literaturverzeichnis
- Index
Product information
- Title: Embedded Systems mit RISC-V und ESP32-C3
- Author(s):
- Release date: April 2023
- Publisher(s): dpunkt
- ISBN: 9783864909375
You might also like
book
Wissenschaftliche Arbeiten schreiben mit LaTeX - Leitfaden für Einsteiger, 7. Auflage
Schnell zur fertig gesetzten Arbeit – ohne Vorkenntnisse Lösungsorientierte und verständliche Beschreibungen Von Tabellen und Formeln …
book
Go – Das Praxisbuch
Go ist bei aktuellen Umfragen unter Entwicklern immer unter den Top 5 der Programmiersprachen, die man …
book
Der Weg zum Python-Profi
Dieses Buch richtet sich an Programmierer, die bereits Kenntnisse der Python-Programmierung besitzen, diese aber ausbauen wollen.Der …
book
Künstliche Intelligenz – Wie sie funktioniert und wann sie scheitert
Wir verlassen uns jeden Tag auf künstliche Intelligenz, wenn es um Empfehlungen, Übersetzungen und Katzenohren für …