0% fanden dieses Dokument nützlich (0 Abstimmungen)
74 Ansichten25 Seiten

RMP-AI WS23 01 Einführung

Hochgeladen von

prateek kalra
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
74 Ansichten25 Seiten

RMP-AI WS23 01 Einführung

Hochgeladen von

prateek kalra
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Rechnerstrukturen und Maschinennahe Programmierung

Prof. Dr.-Ing Jochen Rust


DSI Aerospace Technologie GmbH

basierend auf Folien von Prof. Dr.-Ing. Tim Tiedemann und Prof Dr.-Ing. Andreas Meisel
Agenda

• Vorstellung
• Organisatorisches
• Motivation, Grundlagen des „maschinennahen Programmierens“
• Daten
• Grundlagen Rechnerarchitekturen
• Vorbereitung Praktikum

2
0. Vorstellung

3
Vorstellung

Jochen Rust
Prof. Dr.-Ing.

Werdegang

2023 – heute HAW Hamburg Professor Technische Informatik


2023 – heute DSI Aerospace GmbH Deputy Head of Pre-Development

2020 – 2023 DSI Aerospace Technologie GmbH Head of Studies


2014 – 2020 ITEM, Universität Bremen Senior Research Group Leader
2008 – 2014 ITEM, Universität Bremen Research Associate
2006 – 2007 IBM Deutschland Entwicklung GmbH Masterarbeit, Internship
2001 – 2008 Universität Hannover Studium Technische Informatik

22.10.2023 4
Erfahrungen und Interessen
Industrial Radio/SDR

Space Robotics

System-on-Chip Design
© Universität Bremen

© Trenz Electronics
…und Sie?

• Erfahrungen mit „hardwarenahen“ Programmiersprachen?


C/C++
Assembler

• Duales Studium?

• Vorerfahrungen im Bereich Rechnerstrukturen?

• Haben Sie konkrete Erwartungen an die Vorlesung?


Rechnerstrukturen und Maschinennahe Programmierung

1. Organisatorisches und Einführung

7
Organisation Vorlesung
Allgemeines
• Vortragsfolien Präsenz/TEAMs, PDF in TEAMs (vor der VL)
• Vertiefungen Tafel, während der VL
• Übungen Tafel, während der VL
• Programmierbeispiele Tafel, in den VL-Folien (nach der VL)

Besondere Daten (Stand jetzt)


• Weihnachtsferien keine Veranstaltungen

Unterlagen sowie aktuelle Informationen finden sich im TEAMs-Raum


„WiSe23_AI2_RMPP“
Einschreibeschlüssel: fbiqgcs

Tutorium
• Nach Absprache im Kanal Tutorium

8
Übersicht RMP WS23

Rechner-
RMPP Gruppe 1 strukturen
RMPP Gruppe 2
RMPP Gruppe 4* …
/ RMPP Gruppe 3

Assembler

C-
Program-
mierung

*Veranstaltung um 8:15h 9
Organisation Praktikum
Allgemeines
• Teilnahmeanforderung: Anwesenheitspflicht/Prüfungsleistung
• Anmeldung: moodle bis 23.10 (sollte bestenfalls bereits erfolgt sein)
• Modus: 4 Gruppen à 10-16 Teilnehmende, je 2 Personen arbeiten zusammen
• Ort/Zeit: Raum 709 donnerstags: 12:30 Uhr ab dem 26. November
(Gruppe 4 8:15 Uhr)
Inhalt
• Allgemein: 4 Versuche zum Thema maschinennahe Programmierung, u.a. Assembler, IO-Programmierung,
etc.
• Vorbereitung: Versuch thematisch Vorbereiten, anhand der Vorbereitungsaufgaben in den Aufgabenblättern
• Vortestat: ~15 minütiger Test zu Beginn des Praktikums (rechtzeitiges Erscheinen zwingend erforderlich)

PVL
• Anwesenheitspflicht
• 50% der Punkte aller Tests müssen insgesamt erreicht werden
• Versuche müssen erfolgreich abgeschlossen/angenommen werden
10
Zielhardware: Das „TI-Board“

11
Was heißt „maschinennahes Programmieren“?
Hochsprachenebene
• Rechner wird als abstrakte Maschine aufgefasst
• Die konkrete Arbeitsweise ist uninteressant
 Java, C/C++, Python, etc.
Maschinennahe Ebene (Registerniveau)
• Verstehen des Rechners auf Registerniveau
• Typisch: Technische Informatiker, Applikationsingenieure Application Level
 Assembler, C (bare-metal)
High-Level SW Level
Gatter und Schaltwerkniveau

RMP
• Verstehen der Prozessorkomponenten Machine Code Level
• Typisch: Hardwareentwickler
HW-Architecture Level
 Hardware-Beschreibungssprachen, z.B. VHDL, Schaltpläne (Schematics)
Transistorniveau Transistor Level
• Verstehen der integrierten Schaltkreise
Electrical Level
• Typisch: theoretische Elektrotechniker, Physiker
 Layout- und Transistortools: SPICE, Cadence

12
Motivation: Anwendungsgebiete maschinennaher Programmierung
Hardware-Einbindung / Gerätetreiber
• Digitale/Analoge Schnittstellen (Messsignalaufnehmer, Audiointerface)
• Kommunikationsschnittstellen (USB, COM, Netzwerkkarten,...)
• Mediainterfaces (Soundkarten, Joystick, MIDI, Video, ...)Java, C/C++, Python, etc.

13
Embedded Controller
• Prozessor u. IO-Schnittstelle auf einem Chip für wenige Euro
• Haushaltsgeräte: Schaltuhren, Fernbedienungen, Waschmaschinen, ...
• Spielzeuge: Playstations, LEGO-Mindstorm, ....
• Autos, Digitalkameras, Smartphones, Reader, Navigationssysteme, .....
• Maschinensteuerungen
• Mit Netzzugang: „IoT Device“ („Internet of Things“)

© Microchip (MEC1428MECC)
14
Sicherheitsrelevante Programme
• Medizintechnik (z.B. Herzschrittmacher, Herz-Lungen-Maschine)
• Kraftwerkstechnik, Luft- und Raumfahrttechnik (AOCS)
• Bremsregelung, ABS

15
Geschwindigkeitskritische Anwendungen
• Audio- und Videoanwendungen, Musikanwendungen
• Echtzeitsysteme und Regelungen

16
Entwicklung eingebetteter Systeme in Fahrzeugen

17
FRAGE

F.1a Wozu muss ein AI-ler/Java-Programmierer sowas wissen?

Antwort:
• (Zeit-)effiziente Programmierung
• Volle Kontrolle über die zugrunde liegende Hardware
• Programmierung (von Hochsprachen) kann optimal an die Hardware angepasst werden

ABER:
• I.d.R. höherer zeitlicher Entwurfsaufwand

18
Übersicht Vorlesungsinhalte

Grundlegende Grundkonzepte
Rechnerstruktur Assembler- der maschinen- Programmier- Moderne
und programmierung nahen Program- sprache C Rechnerstrukturen
Funktionsweise / mierung
PCs

19
Inhalt und Aufbau der Vorlesung
1. Grundlegende Rechnerstruktur und Funktionsweise von Computern

Inhalte
• Grundlagen digitaler Schaltungen
• einfaches Computermodell
• Speicher, CPU, ALU, Steuereinheit, Busse, IO-Einheiten
• Datencodierung und Befehlscodierung auf Maschinenebene
• Grundbefehlssatz von Computern
• Adressierungsarten für den Datenzugriff
• (neu, gegen Ende: Eigenschaften aktueller PC-Hardware)
© Thomas Nguyen, CC BY-SA 4.0

Vermittelte Fähigkeiten
• Maschinenprogramme und Speicherdumps lesen können
• maschinennahe Operationen lesen und programmieren können

20
2. Assemblerprogrammierung (am Beispiel des Cortex-M4-Prozessors)

Inhalte
• Register
• Basisadressierungsarten
• elementarer Befehlssatz
• Unterprogrammtechniken auf Maschinenebene
• Ein-/Ausgabeoperationen

Vermittelte Fähigkeiten
• Assembler-Programme schreiben und debuggen können
• Assembler-Programme strukturiert aufbauen können
• Unterprogrammtechniken auf Maschinenebene einsetzen können

21
3. Grundkonzepte der maschinennahen Computerprogrammierung

Inhalte
• Notwendige Fähigkeiten maschinennaher Hochsprachen
• Strukturierung, Typen und Abstraktion
• Kennzeichen prozeduraler Programmiersprachen

Vermittelte Fähigkeiten
• Algorithmen strukturiert umsetzen können
• Daten strukturieren können

22
4. Programmiersprache C

Inhalte
• grundlegende Sprachkonstrukte von C
• Zeiger und Zeigerarithmetik
• Parameterübergabe bei C-Funktionen
• Modularisierung von C-Programmen
• Datenstrukturierung in C-Programmen
• Maschinennahe Programmierung mit C

Vermittelte Fähigkeiten
• C-Programme schreiben und debuggen können
• C-Programme strukturieren und modularisieren können
• Zeiger verstehen
• IO-Einheiten programmieren können

23
5. Ausblick: moderne Rechnerstrukturen

Inhalte
• Grundlegende Architekturen aktueller PCs/anwendungsspezifischer Schaltungen
• Busse und Architekturen aktueller PCs/anwendungsspezifischer Schaltungen
• Aktuelle Peripheriekomponenten und Hardwarebeschleuniger modernder Microcontroller

Vermittelte Fähigkeiten
• aktuelle Hardware-Komponenten und ihr Zusammenspiel verstehen
• Leistungsfähigkeit aktueller Hardware-Komponenten einschätzen
• potentielle Fehler und Fehlermeldungen einordnen

24
Literatur und Software

Zum Nachschlagen:
• ARM® and Thumb®-2 Instruction SetQuick Reference Card
http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf
• STM32F3, STM32F4 and STM32L4 Series Cortex®-M4 programming manual
http://www.st.com/content/ccc/resource/technical/document/programming_manual/6c/3a/cb/e7/e
4/ea/44/9b/DM00046982.pdf/files/DM00046982.pdf/jcr:content/translations/en.DM00046982.pdf
• Die Dokumentation zum ITS Board (s. TEAMs)
• Das Handbuch zum Prozessor des TI Boards
http://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/
99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf
• ARM Cortex-M4 Processor: Technical Reference Manual
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439d/DDI0439D_cortex_m4_processor_r0p
1_trm.pdf
• Software: Entwicklungsumgebung µVision von Keil
http://www2.keil.com/mdk5/uvision/

Footer 25

Das könnte Ihnen auch gefallen