1 / 20

Tutorium Tech II

Tutorium Tech II. Daniel Betz Wintersemester 2011/12. Der menschenlesbare Code wird in maschinenlesbaren Code übersetzt Befehle werden durch ihre „ID“ ersetzt Variablennamen werden durch ihre Speicheradressen ersetzt Konstanten werden durch ihre Werte ersetzt Ausgabe: Object -Datei.

Download Presentation

Tutorium Tech II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tutorium Tech II Daniel BetzWintersemester 2011/12

  2. Der menschenlesbare Code wird in maschinenlesbaren Code übersetzt • Befehle werden durch ihre „ID“ ersetzt • Variablennamen werden durch ihre Speicheradressen ersetzt • Konstanten werden durch ihre Werte ersetzt • Ausgabe: Object-Datei Compilieren Daniel Betz • daniel.betz@daniel-betz.com

  3. Zusammenführen mehrerer Objekt-Dateien • Zusätzlich wird ein Loader eingefügt • Startet die eigentliche Ausführung Linken Daniel Betz • daniel.betz@daniel-betz.com

  4. Loader des Betriebssystem lädt das Programm in den Arbeitsspeicher • Die Anordnung im echten Speicher erfolgt zufällig • Der Speicherbereich muss nicht durchgängig sein • Der virtuelle Adressraum des Programms sieht „von innen“ immer gleich aus Starten in Betriebssystem Daniel Betz • daniel.betz@daniel-betz.com

  5. Bei der Übertragung in den Speicher werden die Adressen einmalig ans Zielsystem angepasst • Die Anordnung im Zielsystem ändert sich nicht Starten auf Hardware Daniel Betz • daniel.betz@daniel-betz.com

  6. Simulation • Extrem Langsam • In Circuit Emulator • Echte CPU • vom Programm unabhängige Schaltung • Monitor • Echte CPU • Programm sendet aktiv Informationen Debugging Daniel Betz • daniel.betz@daniel-betz.com

  7. Aufgaben VHDL Daniel Betz • daniel.betz@daniel-betz.com

  8. libraryieee;useieee.std_logic_1164.all; entity4_bit_reg isPort ( takt, load: INstd_logic;serin : INstd_logic;Q (3downto0) : OUT std_logic_vector);end; architecturehugoof4_bit_reg isbeginprocess(takt)signalserout : std_logic; variable temp : std_logic;begintemp <= serin;if (q = "0101") then Q <= Q + 1;elseserout <= temp;end process;endhugo; • 7 Fehler finden • Folgefehler sind egal FehlersucheWS08/09 Daniel Betz • daniel.betz@daniel-betz.com

  9. Die Prozess-Synchronisation in VHDL kann erfolgen über eine … oder über …, aber nicht über beides gleichzeitig VHDL-WissenSS09 Daniel Betz • daniel.betz@daniel-betz.com

  10. signalA, B : std_logic_vector(15downto0);beginprocessbegin A <= X"EF07";waitfor5ns; B <= A;B (7downto4) <= A (3downto0);B (9downto8) <= "ZZ";waitfor5ns;B(15downto12) <= B(11downto8);B(0) <= B(12);wait;endprocess; • Gefragt: Wert von B nach Ausführung VHDL-InterpretationSS09 Daniel Betz • daniel.betz@daniel-betz.com

  11. entitybit8add isPort ( a, b : INstd_logic_vector(7downto0);summe : OUTstd_logic_vector(7downto0);uebertrag : OUT std_logic);end; • Gefragt: Vollständige Testbench für den Addierer • Alle möglichen Eingangskombinationen sollen getestet werden • Überprüfung der Ausgabe nicht nötig VHDL-TestbenchSS09 Daniel Betz • daniel.betz@daniel-betz.com

  12. Gegeben: Prozesse, Signalverläufe A und B • Gefragt: Signalverläufe C, D und E A B Signalverläufe / VHDL "ausführen"SS09 Daniel Betz • daniel.betz@daniel-betz.com

  13. Aufgaben Assembler Daniel Betz • daniel.betz@daniel-betz.com

  14. Der C166 führt folgendes Programm aus:MOVR1,#-1ADDR1,#0xFFFF • Welchen Wert haben die Flags (C, V, N, Z) nach der Ausführung und warum? Flags nach AdditionSS07 Daniel Betz • daniel.betz@daniel-betz.com

  15. Der C166 führt folgendes Programm aus:MOVR1,#-4711ADDR1,#0x4711 • Welchen Wert haben die Flags (C, V, N, Z) nach der Ausführung und warum? Flags nach AdditionWS07/08 Daniel Betz • daniel.betz@daniel-betz.com

  16. Gegeben ist folgender ASM-Code für den C166:Offset EQU2Var32 DW4711, 128Tabelle DB4, 88, 125, 74, 66, 2, 0MOV R1,#Tabelle ;?1MOV R0,Var32 + Offset ;?2MOV RL2,[R1 + #Offset] ;?3MOV RH2,[R1+] ;?4MOV R3,[R1+] • Welche Adressierungsarten werden an den markierten Stellen benutzt? • Angenommen, die Adresse von Var32 sei 0x100. Was steht nach Programmende in R0 bis R3? In Hex! Adressierung und AusführungSS08 Daniel Betz • daniel.betz@daniel-betz.com

  17. Der C166 führt folgendes Programm aus:MOVR1,#0xCFC7ADDR1,#45537 • Welchen Wert haben die Flags (C, V, N, Z) nach der Ausführung und warum? Flags nach AdditionSS08 Daniel Betz • daniel.betz@daniel-betz.com

  18. Eine Variable liegt im vom Compiler erzeugten Datensegment auf Adresse 1000 • Beschreiben Sie (in Worten, keine Rechnung) die Schritte, durch die die Variable ihren endgültigen Platz im Speicher des Embedded System findet SpeicheranordnungSS08 Daniel Betz • daniel.betz@daniel-betz.com

  19. Ein ausführbares Programm kann als .bin oder als .exe gespeichert sein • Erläutern Sie die Unterschiede und die Anwendungsfälle der beiden Formate Wissen ProgrammformateSS07 Daniel Betz • daniel.betz@daniel-betz.com

  20. Danke für die Aufmerksamkeit Bis nächste Woche! Daniel Betz • daniel.betz@daniel-betz.com

More Related