Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Εισαγωγή μέρος 4 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΟΜΕΑΣ ΙV ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή μέρος 4 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΟΜΕΑΣ ΙV ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ."— Μεταγράφημα παρουσίασης:

1 Εισαγωγή μέρος 4 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΟΜΕΑΣ ΙV ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ

2 WinIDE  Το πρόγραμμα WinIDE (Windows Integrated Development Environment) που παρέχει η Motorola για το μ C M68HC705C8A είναι ένα γραφικό περιβάλλον για την ανάπτυξη, μετάφραση και αποσφαλμάτωση του κώδικα που θα επιμεληθεί ο χρήστης ( προγραμματιστής ).  Για να γράψει ο προγραμματιστής τον κώδικα σε γλώσσα assembly πηγαίνει στο File menu και επιλέγει New File.

3 WinIDE  Στο νέο παράθυρο που ανοίγει γράφεται το πρόγραμμα σε γλώσσα assembly με ορισμένη σύνταξη. Η σύνταξη των προγραμμάτων πρέπει να γίνεται σε στήλες, όπου κάθε στήλη απέχει από την προηγούμενη κατά ένα στηλοθέτη (TAB).

4 Filename.asm - δομή *********************************************** * exercise01.ASM - Sample code to test..... *********************************************** PortA.Data EQU $0000 ;pseudo operators PortA.Direction EQU $0004 ;comments ROM.Start EQU $0160 ;comments ORG ROM.Start BSET 0,PortA.Direction

5 Filename.asm - δομή *********************************************** * Filename.asm (a1exercise12.asm) *Exercise #(Exercise 12) *Team # (Team A1) *Date(20/10/2014) *********************************************** Command1;comments Command2;comments Command3;comments …. Command n;comments

6 Assemble/Compile file ErrorOK

7 Asm-List-S19  Προκειμένου να φορτωθεί το πρόγραμμα στο uC, θα πρέπει ο κώδικας που υλοποιήθηκε από τον προγραμματιστή να μετατραπεί από μνημονικές εντολές σε γλώσσα μηχανής που καταλαβαίνει και είναι σε θέση να εκτελέσει η CPU.  Ο assembler CASM05Z που παρέχει η Motorola για τη σειρά των μ C 68HC05 ολοκληρώνει αυτή τη διαδικασία με την ανάγνωση του μνημονικού κώδικα και τη δημιουργία ενός αρχείου object (.s19) που περιλαμβάνει σε δυαδική μορφή τις εντολές και τα δεδομένα του μεταφρασμένου κώδικα, κατάλληλο να προγραμματίσει τη μνήμη του μικροελεγκτή με τη χρήση ενός programmer.

8 List file EX01PR01.asm Assembled with CASMW 29/7/2014 1:22:48 μμ PAGE 1 1 *********************************************** 2 * exercise01.ASM - Sample code to test..... 3 *********************************************** 4 0000 5 PortA.Data EQU $0000 0000 6 PortA.Direction EQU $0004 0000 7 ROM.Start EQU $0160 0000 8 Mask.Option1 EQU $1FF0 0000 9 Mask.Option2 EQU $1FF1 0000 10 Reset.Vector EQU $1FFE 0160 12 ORG ROM.Start

9 ISC05CW SIMULATOR Το λογισμικό ICS05CW είναι ένας προσομοιωτής μη πραγματικού χρόνου. Η ταχύτητα με την οποία εκτελείται ο κώδικας στον προσομοιωτή είναι πολύ μικρότερη από την ταχύτητα εκτέλεσης του κώδικα από τον μ C, ωστόσο αποτελεί ένα χρήσιμο « εργαλείο » για τον έλεγχο και την αποσφαλμάτωση του προγράμματος που θα υλοποιήσει ο προγραμματιστής. Η πρόσβαση στο Simulator γίνεται από το δεύτερο εικονίδιο (Debugger EXE1) που βρίσκεται δίπλα από το εικονίδιο του Assembler. Στο παράθυρο που ανοίγει κάνουμε αριστερό κλικ στο εικονίδιο SIMULATION only.

10

11 ISC05CW SIMULATOR Code Window: περιλαμβάνει τον κώδικα σε γλώσσα μηχανής. Από το Execute menu από την επιλογή Step μπορεί ο χρήστης να κάνει προσομοίωση του προγράμματος εκτελώντας κάθε μία εντολή κάθε φορά, ξεκινώντας από τη διεύθυνση μνήμης που δείχνει ο Program Counter. Από την επιλογή Multiple Step ξεκινάει μια συνεχής εκτέλεση εντολών ( η επιλογή αυτή δεν εκτελεί εντολές σε πραγματικό χρόνο ). Η επιλογή Reset Processor τοποθετεί στον Program Counter το περιεχόμενο του διανύσματος εκκίνησης που περιέχει τη διεύθυνση της έναρξης του προγράμματος. CPU Window: περιλαμβάνονται οι καταχωρητές της CPU. Για να αλλάξουμε την τιμή ενός καταχωρητή κάνουμε αριστερό κλικ στον αντίστοιχο καταχωρητή. CHIP Window: σ ’ αυτό το παράθυρο παρουσιάζονται τα λογικά επίπεδα των ακροδεκτών του μ C. Τα βέλη που φαίνονται στους ακροδέκτες του μ C δηλώνουν αν αυτοί είναι ακροδέκτες εισόδου ή εξόδου.

12 ISC05CW SIMULATOR CYCLES Window: απεικονίζει το αριθμό των κύκλων μηχανής του μ C που πέρασαν κατά τη διάρκεια εκτέλεσης του κώδικα στον προσομοιωτή. Για να υπολογίσουμε τον πραγματικό χρόνο εκτέλεσης του προγράμματος πολλαπλασιάζουμε τον αριθμό των κύκλων μηχανής με τη διάρκεια του χρόνου που απαιτεί ένας κύκλος μηχανής ( για εσωτερικό ρολόι 2MHz: t=500nsec). Memory Window: χρησιμεύει για τον έλεγχο και τη τροποποίηση της μνήμης του μ C. Για να αλλάξουμε μία τιμή σε μια διεύθυνση μνήμης κάνουμε αριστερό κλικ στο αντίστοιχο byte. Status Window: δέχεται και εκτελεί ένα σετ εντολών που υποστηρίζει ο simulator κατά την προσομοίωση ενός προγράμματος. ( Για παράδειγμα η εντολή porta βγάζει στην θύρα Α που έχει δηλωθεί σαν έξοδος την τιμή που ακολουθεί μετά την εντολή ). Variable Window: στο παράθυρο αυτό προσθέτουμε μεταβλητές ή διευθύνσεις μνήμης για να γίνεται ευκολότερα ο έλεγχος της αλλαγής των τιμών τους κατά την προσομοίωση του προγράμματος.

13 Αρχικοποίηση  Attempt to use invalid or uninitialized memory STATUS WINDOW  >INPUTA %11111111

14 Συμβολισμοί LDA#$00 STA$04 LDA#$FF STA$05 LDA $00 STA$01 Το σύμβολο $ που αναγράφεται μπροστά από τον αριθμό δηλώνει αυτός είναι γραμμένος σε δεκαεξαδικό σύστημα. Δεκαδικό : ! Δεκαεξαδικό : $ Δυαδικό : % Οκταδικό : @ ASCII: ‘L’

15 Συμβολισμοί  Το σύμβολο της δίεσης # πριν από το σύμβολο του αριθμητικού συστήματος, δηλώνει στον assembler αν ακολουθεί αριθμός ή διεύθυνση μνήμης. Π. χ. η εντολή LDA #$00 φορτώνει στον accumulator την δεκαεξαδικη τιμή 00, ενώ η εντολή LDA $00, φορτώνει στον accumulator τα περιεχόμενα διεύθυνσης μνήμης $00 LDA#$00 STA$04 LDA#$FF STA$05 LDA $00 STA$01

16 Μνημονικές εντολές assembly  Ο assembler μεταφράζει το πρόγραμμα που γράφτηκε σε μνημονικές εντολές σε γλώσσα μηχανής. Στη συνέχεια το πρόγραμμα τοποθετείται byte προς byte στη μνήμη του μ C.  Μνημονικές εντολές assembly Γλώσσα μηχανής  LDA#$00 Α 6 00  STA$04 Β 7 04  LDA#$FF Α 6 FF  STA$05 Β 7 05

17 Originate  Όταν φορτώνουμε ένα πρόγραμμα σ ’ έναν μ C, θα πρέπει ο assembler να γνωρίζει σε ποια θέση στη μνήμη PROM θα μεταφέρει το πρόγραμμα, έτσι διαθέτει μία ψευδοεντολή η οποία ονομάζεται ORG (Originate – Τοποθέτηση ).  Κάθε πρόγραμμα έχει τουλάχιστον μία ψευδοεντολή ORG που καθορίζει το σημείο από το οποίο ξεκινάει η εκτέλεση του προγράμματος. Η μνήμη του μ C C8A ξεκινάει από τη διεύθυνση 0160 16. Για να καταλάβει, λοιπόν, ο μ C ότι θέλουμε να γράψουμε το πρόγραμμά μας από τη διεύθυνση 0160 16 και πέρα, θα πρέπει να του δώσουμε πριν από το πρόγραμμα την εντολή ORG $0160

18 Τερματισμός $0160 A6 LDA #$00 $0161 00 $0162 B7 STA $04 $0163 04 $0164 A6 LDA #$FF $0165 FF $0166 B7 STA $05 $0167 05 $0168 B6 LDA $00 $0169 00 $016A B7 STA $01 $016B 01 $016C XX $016D XX $016E XX Το πρόγραμμά μας τελειώνει στη διεύθυνση 016 Β 16, ο μ C όμως, δε σταματά την εκτέλεση του προγράμματος εκεί, αλλά συνεχίζει να εκτελεί το πρόγραμμα που βρίσκεται στις παρακάτω διευθύνσεις, όπου σε αυτές τις διευθύνσεις είναι λογικό να υπάρχουν τιμές που θα ληφθούν λανθασμένα ως εντολές, με απρόβλεπτες συνέπειες.

19 Τερματισμός - JMP  Για τους παραπάνω λόγους χρησιμοποιούμε μια εντολή μεταφοράς ελέγχου η Η εντολή αυτή ονομάζεται JMP (JuMP to address). ORG $0160 $0160 LDA#$00 $0162 STA$04 $0164 LDA#$FF $0166 STA$05 $0168 LDA $00 $016 Α STA$01 $016C JMP$0168

20 Reset Vector  H CPU είναι κοινή για όλους τους μ C της οικογένειας 68HC05, και για το λόγο αυτό στη μνήμη των μ C οι δύο τελευταίες θέσεις μνήμης χρησιμοποιούνται για να υποδηλώσουν τη διεύθυνση της εκκίνησης του προγράμματος. Οι τελευταίες διευθύνσεις στο μ C C8A είναι η 8190(1FFE) και η 8191(1FFF). Σ ’ αυτές τις διευθύνσεις τοποθετείται η διεύθυνση αρχής του προγράμματος με τη μορφή :  01 $1FFE Reset Vector High Byte  60 $1FFF Reset Vector Low Byte


Κατέβασμα ppt "Εισαγωγή μέρος 4 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΟΜΕΑΣ ΙV ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google