Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Παράρτημα Β (Το λογισμικό ICS08GPGTZ)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Περίγραμμα Το λογισμικό ICS08GPGTZ Κειμενογράφος (editor) Συμβολο-μεταφραστής (assembler) Προσομοιωτής (simulator) Ενδοκυκλωματικός προσομοιωτής (in-circuit simulator) Ενδοκυκλωματικός εκσφαλματωτής (in-circuit debugger) Προγραμματιστής (programmer) Ενδοκυκλωματική εκσφαλμάτωση και προγραμματισμός μέσω θύρας USB
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Εκκίνηση του λογισμικού ICS08GPGTZ340 Το λογισμικό ICS08GPGTZ αποτελεί ένα γραφικό περιβάλλον του λειτουργικού συστήματος Windows (WinIDE – windows integrated development environment) κατάλληλο για την συγγραφή, μετάφραση, προσομοίωση και εκσφαλμάτωση κώδικα assembly της οικογένειας μικροελεγκτών HC908GP/GT. Η εκκίνηση του λογισμικού πραγματοποιείται από τη διαδρομή Start Programs ICS08GPGTZ WinIDE. Κειμενογράφος (editor) Η συγγραφή προγραμμάτων assembly πραγματοποιείται με τη χρήση του ενσωματωμένου κειμενογράφου (editor) του λογισμικού WinIDE, η εκκίνηση του οποίου πραγματοποιείται από τη διαδρομή File New File. Η ανάπτυξη του κώδικα πραγματοποιείται στο νέο παράθυρο που ανοίγει με συγκεκριμένη μορφή σύνταξης. Οι ετικέτες του κώδικα τοποθετούνται στην πρώτη στήλη του κειμενογράφου, οι εντολές στη δεύτερη στήλη, τα ορίσματα εντολών στην τρίτη στήλη και τα σχόλια (αν υπάρχουν) στην τέταρτη στήλη και τοποθετώντας μπροστά από κάθε σχόλιο ένα ελληνικό ερωτηματικό (;). Η αλλαγή στήλης στον κειμενογράφο γίνεται με το πλήκτρο Tab, ενώ η αποθήκευση του προγράμματος πραγματοποιείται από τη διαδρομή File Save File as... Το πρόγραμμα αποθηκεύεται σε αρχείο προέκτασηs.asm.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Κειμενογράφος (μορφή σύνταξης)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Κειμενογράφος (περιγραφή εικονιδίων) ΕικονίδιοΌνομα εικονιδίουΠεριγραφή Assemble/Compile File Εκκίνηση του συμβολο- μεταφραστή Simulation (EXE4) Εκκίνηση του προσομοιωτή In-Circuit Simulator (EXE1) Εκκίνηση του ενδοκυκλωματικού προσομοιωτή In-Circuit Debugger (EXE3) Εκκίνηση του εξομοιωτή Programmer (EXE2) Εκκίνηση του προγραμματιστή
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Συμβολο-μεταφραστής (assembler) Η μετάφραση του κώδικα σε γλώσσα μηχανής πραγματοποιείται από το εικονίδιο ‘Assemble/Compile File’. Η διαδικασία που εκτελείται κατά την εκκίνηση του assembler είναι ανάγνωση και η μετατροπή του πηγαίου κώδικα ‘όνομα-αρχείου.asm’ σε ένα αρχείο δυαδικής μορφής με προέκταση.s19. Η επιτυχής μετατροπή του αρχείου ‘όνομα-αρχείου.asm’ στο αρχείο ‘όνομα- αρχείου.s19’ επαληθεύεται με την εμφάνιση του μηνύματος ‘Successful assembly’. Αν υπάρχουν λάθη σύνταξης στον πηγαίο κώδικα, τότε τονίζεται το πρώτο στη σειρά λάθος που εντοπίζει ο assembler.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Συμβολο-μεταφραστής (assembler)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προσομοιωτής (simulator) Το λογισμικό ICS08GPGTZ διαθέτει επίσης ενσωματωμένο προσομοιωτή (simulator) για την προσομοίωση και ανεύρεση λαθών στον κώδικα assembly. Η εκκίνηση του προσομοιωτή πραγμα-τοποιείται από το εικονίδιο ‘Simulation (EXE4)’. Για την προσομοίωση του κώδικα διατίθενται τα πλήκτρα ‘Step’ (προσομοίωση του κώδικα εντολή προς εντολή), ‘Multiple Step’ (γρήγορη προσομοίωση του κώδικα με δυνατότητα προβολής των παραθυρικών εφαρμογών) και ‘Go!’ (εξαιρετικά γρήγορη προσομοίωση του κώδικα χωρίς τη δυνατότητα προβολής των παραθυρικών εφαρμογών).
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προσομοιωτής (simulator)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προσομοιωτής (παράθυρα εφαρμογών) CPU 08: Σε αυτό το παράθυρο διακρίνονται οι καταχωρητές της κεντρικής μονάδας επεξεργασίας. Η μεταβολή τιμών των καταχωρητών πραγματοποιείται με αριστερό κλικ πάνω στον κα-ταχωρητή. Variables Window: Διατίθεται για την εισαγωγή των σταθερών/μεταβλητών που χρησιμοποιούνται στον κώδικα assembly. Κάνοντας διπλό κλικ στο παράθυρο, εμφανίζεται το παράθυρο Add Variable το οποίο επιτρέπει την εισαγωγή σταθερών/μεταβλητών και τη ρύθμιση εμφάνισης αυτών. Cycles: Διατίθεται για την καταμέτρηση των κύκλων μηχανής κατά την εκτέλεση του κώδικα και για τον καθορισμό του εξωτερικού ρολογιού συγχρονισμού του μικροελεγκτή. (Υπάρχει επίσης η δυνατότητα μηδενισμού του αριθμού των κύκλων μηχανής κάνοντας αριστερό κλικ στην τιμή ‘CYLCLES’.) Memory Window 1: Διατίθεται για την επόπτευση της μνήμης του μικροελεγκτή, αλλά και την αλλαγή τιμών στους καταχωρητές μνήμης, κάνοντας διπλό αριστερό κλικ στον αντίστοιχο καταχωρητή.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προσομοιωτής (παράθυρα εφαρμογών) HC908GP32: Ανιχνεύει την κατάσταση διασύνδεσης υλικού κατά την ενδοκυκλωματική προσομοίωσης/εξομοίωση του κώδικα. Status Window: Διατίθεται για την εισαγωγή εντολών προσομοίωσης. Code Window: Διατίθεται για την επιλογή της εκτέλεσης μιας εντολής του κώδικα και για την εισαγωγή σημείων διακοπής (break points) στη διαδικασία εκτέλεσης εντολών. Το βέλος στο παράθυρο υποδεικνύει την εντολή που πρόκειται να εκτελεστεί. Η επιλογή εκτέλεσης διαφορετικής εντολής πραγματοποιείται με αριστερό κλικ πάνω στην επιθυμητή εντολή και στη συνέ- χεια, δεξί κλικ και επιλογή του ‘Set PC at Cursor’ στο νέο παράθυρο που εμφανίζεται. Η εισαγωγή ενός σημείου διακοπής σε μία εντολή πραγματοποιείται με αριστερό κλικ πάνω στην εντολή και στη συνέχεια, δεξί κλικ και επιλογή του ‘Toggle Break Point at Cursor’ στο νέο παράθυρο που εμφανίζεται. Η αφαίρεση του σημείου διακοπής από μία εντολή πραγματοποιείται με την ίδια διαδικασία.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προσομοιωτής (εισαγωγή/αφαίρεση break point)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματικός προσομοιωτής (in-circuit simulator) Διαδικασία εκκίνησης: 1.Συγγραφή και συμβολο-μετάφραση του κώδικα σε γλώσσα μηχανής. 2.Διασύνδεση του αναπτυξιακού εφαρμογών στη σειριακή θύρα COM1 του Η/Υ. 3.Τοποθέτηση των ακολούθων διακοπτών του αναπτυξιακού εφαρμογών στα δεξιά: SW-PTC0, SW-PTC1, SW-PTC3, SW-IRQ, SW-PTA0, SW-PTA7. 4.Τοποθέτηση του διακόπτη SW-MCU (παροχή τροφοδοσίας) στα αριστερά. 5.Εκτέλεση της εφαρμογής In-Circuit Simulator (EXE1). 6.Επιλογή των ακόλουθων ρυθμίσεων στο παράθυρο του ενδοκυκλωματικού προσομοιωτή και στη συνέχεια αριστερό κλικ στην εντολή ‘Contact target with these settings…’: Target Hardware Type: Class 3 – Direct serial to target w/MON08 circuit built in Serial Port: 1 Baud: Baud
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματικός προσομοιωτής (in-circuit simulator) Διαδικασία εκκίνησης:
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματικός προσομοιωτής (in-circuit simulator) Στην περίπτωση που εμφανιστεί σφάλμα διασύνδεσης θα πρέπει να τοποθετηθεί ο διακόπτης SW-MCU στα δεξιά (διακοπή παροχής τροφοδοσίας), στη συνέχεια να επανατοποθετηθεί στα αριστερά (παροχή τροφοδοσίας) και κατόπιν να πραγματοποιηθεί αριστερό κλικ στην εντολή ‘OK’. Η εκκίνηση του ενδοκυκλωματικού προσομοιωτή ενεργοποιήθηκε και θα πρέπει να επανατοποθετηθούν οι διακόπτες SW-PTC0, SW-PTC1, SW-PTC3, SW-IRQ, SW-PTA7 στα αριστερά. (Παρατήρηση: ο ενδοκυκλωματικός προσομοιωτής δεσμεύει τη χρήση του διακόπτη SW-PTA0.)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματικός εκσφαλματωτής (in-circuit debugger) Διαδικασία εκκίνησης: 1.Συγγραφή και συμβολο-μετάφραση του κώδικα σε γλώσσα μηχανής. (Παρατήρηση: για τη εκκίνηση του ενδοκυκλωματικού εκσφαλματωτή θα πρέπει να προηγηθεί προγραμματισμός του μικροελεγκτή.) 2.Διασύνδεση του αναπτυξιακού εφαρμογών στη σειριακή θύρα COM1 του Η/Υ. 3.Τοποθέτηση των ακολούθων διακοπτών του αναπτυξιακού εφαρμογών στα δεξιά: SW-PTC0, SW-PTC1, SW-PTC3, SW-IRQ, SW-PTA0, SW-PTA7. 4.Τοποθέτηση του διακόπτη SW-MCU (παροχή τροφοδοσίας) στα αριστερά. 5.Εκτέλεση της εφαρμογής In-Circuit Debugger (EXE3). 6.Επιλογή των ακόλουθων ρυθμίσεων στο παράθυρο του ενδοκυκλωματικού προσομοιωτή και στη συνέχεια αριστερό κλικ στην εντολή ‘Contact target with these settings…’: Target Hardware Type: Class 3 – Direct serial to target w/MON08 circuit built in Serial Port: 1 Baud: Baud
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματικός εκσφαλματωτής (in-circuit debugger) Διαδικασία εκκίνησης: Στην περίπτωση που εμφανιστεί σφάλμα διασύνδεσης θα πρέπει να τοποθετηθεί ο διακόπτης SW-MCU στα δεξιά (διακοπή παροχής τροφοδοσίας), στη συνέχεια να επανατοποθετηθεί στα αριστερά (παροχή τροφοδοσίας) και κατόπιν να πραγματοποιηθεί αριστερό κλικ στην εντολή ‘OK’. Η εκκίνηση του ενδοκυκλωματικού εκσφαλματωτή ενεργοποιήθηκε και θα πρέπει να επανατοποθετηθούν οι διακόπτες SW-PTC0, SW-PTC1, SW-PTC3, SW-PTA7 στα αριστερά. (Παρατήρηση: ο ενδοκυκλωματικός εκσφαλματωτής δεσμεύει τη χρήση του διακόπτη SW-PTA0 & SW-IRQ.)
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προγραμματιστής (programmer) Διαδικασία εκκίνησης: 1.Συγγραφή και συμβολο-μετάφραση του κώδικα σε γλώσσα μηχανής. 2.Διασύνδεση του αναπτυξιακού εφαρμογών στη σειριακή θύρα COM1 του Η/Υ. 3.Τοποθέτηση των ακολούθων διακοπτών του αναπτυξιακού εφαρμογών στα δεξιά: SW-PTC0, SW-PTC1, SW-PTC3, SW-IRQ, SW-PTA0, SW-PTA7. 4.Τοποθέτηση του διακόπτη SW-MCU (παροχή τροφοδοσίας) στα αριστερά. 5.Εκτέλεση της εφαρμογής Programmer (EXE2). 6.Επιλογή των ακόλουθων ρυθμίσεων στο παράθυρο του ενδοκυκλωματικού προσομοιωτή και στη συνέχεια αριστερό κλικ στην εντολή ‘Contact target with these settings…’: Target Hardware Type: Class 3 – Direct serial to target w/MON08 circuit built in Serial Port: 1 Baud: Baud
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προγραμματιστής (programmer) Διαδικασία εκκίνησης: Στην περίπτωση που εμφανιστεί σφάλμα διασύνδεσης θα πρέπει να τοποθετηθεί ο διακόπτης SW-MCU στα δεξιά (διακοπή παροχής τροφοδοσίας), στη συνέχεια να επανατοποθετηθεί στα αριστερά (παροχή τροφοδοσίας) και κατόπιν να πραγματοποιηθεί αριστερό κλικ στην εντολή ‘OK’.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προγραμματιστής (programmer) Διαδικασία εκκίνησης: Στο νέο παράθυρο που εμφανίζεται θα πρέπει να επιλεγεί ο αλγόριθμος ‘908_gp32_highspeed.08p’ και στη συνέχεια να επιλεγεί η εντολή Open.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Προγραμματιστής (programmer) Διαδικασία εκκίνησης: H εκκίνηση του προγραμματιστή ενεργοποιήθηκε και στο νέο παράθυρο που ανοίγει θα πρέπει εκτελεστούν με τη σειρά οι ακόλουθες εντολές: EM Erase module: σβήνει οποιαδήποτε δεδομένα από τη μνήμη του μικροελεγκτή. SS Specify S record: επιλογή του δυαδικού αρχείου ‘.S19’ που θα καταχωρηθεί στη μνήμη του μικροελεγκτή. PM Program module: καταχώρηση του αρχείου ‘.S19’ στη μνήμη προγράμματος του μικροελεγκτή. QU Quit: έξοδος από την εφαρμογή. Ο προγραμματισμός του μικροελεγκτή ολοκληρώθηκε και θα πρέπει να επανατοποθετηθούν SW-PTC0, SW-PTC1, SW-PTC3, SW-IRQ, SW-PTA0, SW-PTA7 στα αριστερά. Για την εκτέλεση του κώδικα από το μικροελεγκτή θα πρέπει να τοποθετηθεί ο διακόπτης SW-MCU στα δεξιά (διακοπή παροχής τροφοδοσίας) και στη συνέχεια να επανατοποθετηθεί στα αριστερά (παροχή τροφοδοσίας).
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματική εκσφαλμάτωση και προγραμματισμός μέσω θύρας USB Δεδομένου ότι στις μέρες μας οι ηλεκτρονικοί υπολογιστές (Η/Υ) δε διατίθενται πλέον στην αγορά με θύρες RS232, υπάρχει η δυνατότητα διασύνδεσης του αναπτυξιακού εφαρμογών σε μία θύρα USB μέσω ενός προσαρμογέα USB σε RS232. Ένας πιθανός προσαρμογέας μπορεί να είναι αυτός της εταιρίας Tronisoft Limited, ο οποίος βασίζεται στην τεχνολογία ολοκληρωμένου κυκλώματος (chip) FTDI και παρέχει τη δυνατότητα επέκτασης μια θύρας USB σε δύο ανεξάρτητες RS232 θύρες.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματική εκσφαλμάτωση και προγραμματισμός μέσω θύρας USB Προτού συνδεθεί το αναπτυξιακό εφαρμογών στη θύρα USB του Η/Υ, θα πρέπει να προηγηθεί εγκατάσταση του οδηγού του προσαρμογέα, ακολουθώντας τις υποδείξεις που βρίσκονται σε αρχείο του συνοδευτικού CD- ROM. Μετά την εγκατάσταση δημιουργούνται δύο θύρες που φέρουν το όνομα ‘USB Serial Port (COMx)’, όπου x ένας αριθμός. Οι θύρες αυτές εντοπίζονται στη διαδρομή Start Programs Control Panel και επιλέγοντας στη συνέχεια System Hardware Device Manager Port (COM & LTP).
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματική εκσφαλμάτωση και προγραμματισμός μέσω θύρας USB Αν οι θύρες έχουν εγκατασταθεί με αριθμό διψήφιο, π.χ. ‘USB Serial Port (COM13), τότε θα πρέπει να αλλαχθούν σε αριθμό μονοψήφιο από 1 έως 8, καθότι στο λογισμικό ICS08GPGTZ υπάρχει δυνατότητα επιλογής COM1 έως COM8. Η αλλαγή αυτή πραγματοποιείται κάνοντας δεξί κλικ στο όνομα της θύρας και επιλέγοντας Properties, και κατόπιν Port Settings και Advanced. Στο νέο παράθυρο που ανοίγει επιλέγεται ο νέος αριθμός της θύρας, ο οποίος βέβαια δεν θα πρέπει να χρησιμοποιείται από άλλο πρόγραμμα, και κατόπιν επιλέγεται η εντολή OK.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματική εκσφαλμάτωση και προγραμματισμός μέσω θύρας USB Έπειτα από αυτές τις ρυθμίσεις ο προσαρμογέας είναι έτοιμος για χρήση. Θα πρέπει όμως να γίνουν και κάποιες ρυθμίσεις στο λογισμικό ICS08GPGTZ για να επιτευχθεί η επικοινωνία του αναπτυξιακού εφαρμογών με τη θύρα USB. Δυστυχώς από τη θύρα USB δεν είναι δυνατή η χρήση ενδοκυκλωματικής προσομοίωσης (in-circuit simulator), είναι όμως δυνατή η χρήση ενδοκυκλωματικής εκσφαλμάτωσης (in-circuit debugging) και προγραμματισμού (programming) της μνήμης FLASH του μικροελεγκτή. Ισχύει η διαδικασία που επεξηγήθηκε στις προηγούμενες ενότητες με τη διαφορά ότι κατά τη διαδικασία προγραμματισμού (programming), θα πρέπει να επιλεχθεί διαφορετικός αλγόριθμος και συγκεκριμένα ο ‘908_gp32.08p’. Πριν από την επιλογή αυτή, ο αλγόριθμος θα πρέπει να ανοιχτεί από έναν κειμενογράφο και να απενεργοποιηθούν οι εντολές ‘BLOCK_WRITE’ και ‘MON08_AUTOPROG’, τοποθετώντας ελληνικό ερωτηματικό μπροστά ακριβώς από την εντολή (όπως φαίνεται δηλαδή στις γραμμές εντολών 9 και 12.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Το λογισμικό ICS08GPGTZ Ενδοκυκλωματική εκσφαλμάτωση και προγραμματισμός μέσω θύρας USB Απενεργοποίηση των εντολών ‘BLOCK_WRITE’ & ‘MON08_AUTOPROG’ του αλγόριθμου προγραμματισμού του μικροελεγκτή ‘908_gp32.08p’, τοποθετώντας ελληνικό ερωτηματικό μπροστά ακριβώς από τις γραμμές εντολών 9 και 12.
Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32 Ευχαριστώ για την προσοχή σας