THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Συστήματα Μικροϋπολογιστών => Topic started by: Scopeng on January 07, 2006, 22:17:34 pm



Title: μ1 ... SOS?!
Post by: Scopeng on January 07, 2006, 22:17:34 pm
Μήπως μπορεί κάποιος να μας διαφωτίσει για το τι πρέπει να διαβάσουμε, προκειμένου να ξεμπερδέψουμε με αυτό το  8) "πανέμορφο" 8) μάθημα;;;


Title: Re: μ1 ... SOS?!
Post by: Καμένος on January 07, 2006, 22:40:38 pm
Βασικά άνοιξε το Studio4 και υλοποίησε ότι κατεβάσει το μυαλό σου.. Μόνο έτσι θα μάθεις..


Title: Απ: μ1 ... SOS?!
Post by: JAs0n-X on January 08, 2006, 01:23:13 am
Βασιικα εχω την εντυπωση οτι παλια ηταν απο τα δυσκολα μαθηματα. Φετος με τον AVR μου φαινονται βατα τα πραγματα.

Τωρα για τις εξετασεις νομιζω το βιβλιο δεν βοηθαει και πολυ.
Οι σημειωσεις ειναι καλες και αυτα που εκανε στην ταξη. (πραξεις με 16μπιτους κλπ τα βλεπω ψιλοΣΟΣ).
Τα εχει ανεβασει και στο εΤΗΜΜΥ.

ΥΓ.μια χαρα ειναι το μαθημα...μηπως τα ΨΕΣ ή τα ΚΑΕ σ αρεσουν περισσοτερο? :P


Title: Απ: μ1 ... SOS?!
Post by: Scopeng on January 08, 2006, 01:59:59 am
Βασιικα εχω την εντυπωση οτι παλια ηταν απο τα δυσκολα μαθηματα. Φετος με τον AVR μου φαινονται βατα τα πραγματα.

Τωρα για τις εξετασεις νομιζω το βιβλιο δεν βοηθαει και πολυ.
Οι σημειωσεις ειναι καλες και αυτα που εκανε στην ταξη. (πραξεις με 16μπιτους κλπ τα βλεπω ψιλοΣΟΣ).
Τα εχει ανεβασει και στο εΤΗΜΜΥ.

ΥΓ.μια χαρα ειναι το μαθημα...μηπως τα ΨΕΣ ή τα ΚΑΕ σ αρεσουν περισσοτερο? :P

Σε ευχαριστώ για την ενημέρωση!

ΥΓ: Σίγουρα τα ΚΑΕ και τα ΨΕΣ είναι πιο ευχάριστα ... Εκεί τουλάχιστον διάβαζα και καταλάβαινα, γιʼ αυτό και τα πέρασα με την πρώτη  ... με τα μίκρο δεν γίνεται το ίδιο! ;)


Title: Re: μ1 ... SOS?!
Post by: nad on January 10, 2006, 01:00:15 am
Τωρα για τις εξετασεις νομιζω το βιβλιο δεν βοηθαει και πολυ.
Οι σημειωσεις ειναι καλες και αυτα που εκανε στην ταξη. (πραξεις με 16μπιτους κλπ τα βλεπω ψιλοΣΟΣ).

  Επειδή εγώ πιστεύω αυτά που μου λένε και δυστυχώς δεν πήγαινα στο μάθημα (στερνή μου γνώση να σ'είχα πρώτα...) ζητώ απεγνωσμένα βοήθεια!!!!!!!!!
  Ποιο καλό παιδί έχει σημειώσεις από το μάθημα και ποιο είναι αρκετά φιλεύσπλαχνο ώστε να μοιραστεί τις σημειώσεις του μαζί μου;;;;
  Όποιος προθυμοποιηθεί ας μου στείλει 1 pm κι εγώ για χάρη του θα εξασκήσω το μεγαλύτερό μου ταλέντο...τη μαγειρική...
 


Title: Re: μ1 ... SOS?!
Post by: Fuzzee on January 10, 2006, 15:38:32 pm
Σημειώσεις εχω εγώ αλλα δεν πιστέυω ότι τις χρειάζεστε!!! Όλα τα παραδείγματα που εκανε στο μάθημα τα έχει ανεβάσει στον alexander οπότε μπορείτε να τα κατεβάσετε από εκεί!!!
Τα υπόλοιπα είναι πάνω στην αρχιτεκτονική του AVR τα οποία καλύπτει τα βασικά τουλάχιστον το βιβλίο!!!
Το θέμα είναι τι ζητάει στις εξετάσεις μόνο να προγραμματίσεις ???????
ή βάζει και τίποτα θεωρία ????????????


Title: Απ: μ1 ... SOS?!
Post by: BOBoMASTORAS on January 10, 2006, 22:13:45 pm
Μάλλον θα έχει και κάποια θεωρία. Δε μπορεί τις μισές παραδώσεις στην αρχιτεκτονική του AVR την αφιέρωσε.


Title: Re: μ1 ... SOS?!
Post by: chggr005 on January 11, 2006, 12:58:13 pm
Ναι, θα μας βάλει ένα κομμάτι θεωρία στην αρχή κανένα μισάωρο και μετα με ανοιχτά βιβλία θα γράψουμε κώδικα (ΧΕΧΕΧΕ)


Title: Re: μ1 ... SOS?!
Post by: vagia on January 22, 2006, 16:50:16 pm
Προσπαθώ να καταλάβω τι ακριβώς συμβαίνει με το .DB και δεν έχω πάρει ακόμα γραμμή….Βρε παιδιά αν μπορεί κάποιος ας βοηθήσει. πχ.  στην άσκηση με τα LEDS βάζει τον table  με τους αριθμούς 0 – 9(αυτά δεν καταχωρούνται στην PM;)στη συνέχεια καταχωρεί στο περιεχόμενο του zl  το low(table) και στο zh το high(table).Ποια ακριβώς είναι τα low και high;;; και μετά γιατί παίρνει την επόμενη διεύθυνση όπου και προσθέτει τον bcd-digit;;;; Ζητάω απεγνωσμένα   τη βοήθεια κάποιου………please…  :-\


Title: Απ: μ1 ... SOS?!
Post by: JAs0n-X on January 22, 2006, 20:33:04 pm
Η ψευδοεντολη define byte (.db) γραφει τις σταθερες που ακολουθουν στην ΡΜ !
Τις γραφει διαδοχικα και καταλαμβανουν 1 byte η καθε μια! Δηλαδη αν κανω... .db 3,4, $10 κλπ θα εγγραφει στην PM

|  4  |  3  |
|  0  | $10|   


Δηλαδη δεν καταλαμβανεται ολη η γραμμη (16 bytes αλλα 8 )

Αν γραψω ομως¨
.db 3
.db 4
.db $10

θα καταλαμβανεται ενα word για καθε σταθερα!

Στην ασκηση με τα λεντς αποθηκευει για καθε νουμερο (πχ το 0) τα bits των led του 7segment led που πρεπει να αναβουν για να σχηματιζουν το 0.
πχ για το 0 πρεπει να αναβουν τα a,b,c,d,e,f.
αρα θα αποθηκευσει
-  a b  c  d  e  f   g
0 1 1  1  1  1  1  0

Αυτο βρισκεται στην πρωτη σειρα του πινακα....ο ποιντερ Ζ δειχνει εκει!
Ετσι αν ερθει η τιμη 0 θα εξακολουθει να δειχνει εκει.
Αν ερθει η τιμη πχ 4 αυτη προστιθεται στον Pointer ετσι ωστε αυτος να δειχνει μετα 4 θεσεις πιο κατω εκει οπου βρισκεται δηλαδη ο αριθμος (σταθερα) που "λεει" ποια μπιτς πρεπει να ειναι ενα ωστε να σχηματιστει το 4!

ελπιζω να τα ειπα καλα...εκανα μεγαλη προσπαθεια!


Title: Re: μ1 ... SOS?!
Post by: ioanna208 on January 26, 2006, 13:42:38 pm
έχω μια βασική απορία σε σχέση με αυτόν τον Z!!Σχετίζεται με τα παραπάνω και ίσως να δίνεται και η απάντηση στην απορία μου αλλά επειδή συνεχίζω να μην καταλαβαίνω... Κοιτάω από τα προγράμματα καθορισμού της κατάστασης μεμονωμένων bits το πρώτο (determine the value of a Bit in an array) και δεν καταλαβαίνω καθόλου το σημείο με τις εντολές :
        ldi ZL, LOW(mask_table)
   ldi ZH, HIGH(mask_table)
   lsl ZL
   rol ZH

Υποτίθεται ότι με τις δύο πρώτες φορτώνει στον Ζ την διεύθυνση του πίνακα mask_table στην οποία βρίσκεται το πρώτο του στοιχείο.?? Και στην συνέχεια για ποιο λόγο κάνει τις επόμενες δύο.??
Όταν λέμε lsl ZL σημαίνει ότι κάνουμε αριστερή ολίσθηση στον R31, σωστά? Τι εξυπηρετεί όμως αυτό σε σχέση με το περιεχόμενο στο οποίο δείχνει ο Ζ??Δηλαδή με τις εντολές :
lsl ZL
rol ZH
ο Pointer Z που δείχνει??


Title: Re: μ1 ... SOS?!
Post by: TT_PTOLEMAIDA on January 26, 2006, 17:30:50 pm
Όποιος προθυμοποιηθεί ας μου στείλει 1 pm κι εγώ για χάρη του θα εξασκήσω το μεγαλύτερό μου ταλέντο...τη μαγειρική...
ΧΑΧΑΑΧΑΧΧΑΑΧΑΧΑ ;D ;D ;D ;D

Κρίμα που δεν παρακολουθούσα κιεγώ! Κι εγώ τις ψάχνω..Και έχω μια πείνα... :(


Title: Re: μ1 ... SOS?!
Post by: abc on January 26, 2006, 21:23:12 pm
Όταν λέμε lsl ZL σημαίνει ότι κάνουμε αριστερή ολίσθηση στον R31, σωστά?

Εδώ είναι το λάθος σου.
ZL δεν είναι εντολή! Είναι ορισμός του R30. ZH o R31.
Τα L και H σημαίνουν LOW και HIGH.
Οι Pointers X,Y,Z είναι 16μπιτοι.


Title: Απ: μ1 ... SOS?!
Post by: JAs0n-X on January 27, 2006, 01:13:58 am
O φιλος Τασος αν καταλαβα καλα δεν καταλαβε ακριβως τι ρωτας.
Αν καταλαβα εγω...

Ο ποιντερ Ζ δειχνει στην ΡΜ !
Αυτη ειναι 16bit!
Για να δειχνει ο Ζ words και οχι bytes πρεπει μετα το φορτωμα του να τον πολλαπλασιασεις με το δυο! Ειναι ενα λεπτο σημειο που δεν πολυκαταλαβαινω αλλα σιγουρα ετσι γινεται.
Ε αυτον τον πολλαπλασιασμο τον κανει με τις lsl kai rol!


Title: Re: μ1 ... SOS?!
Post by: nad on January 27, 2006, 03:12:00 am
Ο ποιντερ Ζ δειχνει στην ΡΜ !
Αυτη ειναι 16bit!
Για να δειχνει ο Ζ words και οχι bytes πρεπει μετα το φορτωμα του να τον πολλαπλασιασεις με το δυο! Ειναι ενα λεπτο σημειο που δεν πολυκαταλαβαινω αλλα σιγουρα ετσι γινεται.
Ε αυτον τον πολλαπλασιασμο τον κανει με τις lsl kai rol!
Κι εγώ είχα αυτήν την απορία... Είχα σπάσει το κεφάλι μου να καταλάβω τι κάνει...Εσύ αυτήν την εξήγηση που τη βρήκες; Για να τη δω κι εγώ μπας και την καταλάβω..


Title: Re: μ1 ... SOS?!
Post by: nad on January 27, 2006, 03:16:41 am
[Κρίμα που δεν παρακολουθούσα κιεγώ! Κι εγώ τις ψάχνω..Και έχω μια πείνα... :(
Χι χι χι!!!! Εγώ της βρήκα! Να'ναι καλά ο φίλος Fuzzee  ;)
Αν επιτρέπεται ο δανεισμός της πνευματικής του ιδιοκτησίας μπορώ να στις δώσω.
Μούφα ήταν η υπόχεση για φαγητό. Ίσα ίσα για να σας δελεάσω... Τώρα που πέτυχα το σκοπό μου έγινα καπνός!!!
Πάντως αν τα περάσω τα μίκρο υπόσχομαι πραγματικά να σας μαγειρέψω ό,τι θέλετε!!!!!!!!!!!


Title: Re: μ1 ... SOS?!
Post by: ioanna208 on January 27, 2006, 12:30:37 pm
O φιλος Τασος αν καταλαβα καλα δεν καταλαβε ακριβως τι ρωτας.
Αν καταλαβα εγω...

Ο ποιντερ Ζ δειχνει στην ΡΜ !
Αυτη ειναι 16bit!
Για να δειχνει ο Ζ words και οχι bytes πρεπει μετα το φορτωμα του να τον πολλαπλασιασεις με το δυο! Ειναι ενα λεπτο σημειο που δεν πολυκαταλαβαινω αλλα σιγουρα ετσι γινεται.
Ε αυτον τον πολλαπλασιασμο τον κανει με τις lsl kai rol!

Όντως ο Τάσος δεν είχε καταλάβει σωστά την ερώτησή μου....η δική σου απάντηση με κάλυψε πάντως..Ευχαριστώ!!


Title: Re: μ1 ... SOS?!
Post by: nad on January 29, 2006, 16:10:29 pm
 Να ρωτήσω κάτι που μπορεί να σας φανεί λίγο κουλό; Στο σχήμα 4.4 στη σελίδα 99 του βιβλίου λέει ότι ο καταχωρητής εργασίας καταλαμβάνει τις θέσεις 16-19, δλδ συνολικά 4 θέσεις. Αυτές οι θέσεις φτάνουν; Μήπως δε δουλεύουν και οι 32 καταχωρητές αλλά μόνο οι 16 πρώτοι;


Title: Απ: μ1 ... SOS?!
Post by: marauber on January 29, 2006, 17:05:09 pm
Να ρωτήσω κάτι που μπορεί να σας φανεί λίγο κουλό; Στο σχήμα 4.4 στη σελίδα 99 του βιβλίου λέει ότι ο καταχωρητής εργασίας καταλαμβάνει τις θέσεις 16-19, δλδ συνολικά 4 θέσεις. Αυτές οι θέσεις φτάνουν; Μήπως δε δουλεύουν και οι 32 καταχωρητές αλλά μόνο οι 16 πρώτοι;

Εύλογη η απορία σου. Θα έλεγα ότι πρόκειται μάλλον για τυπογραφικό λάθος ;), αλλά κοίταξα και το avr instruction set από το site της atmel και έχει ακριβώς το ίδιο σχήμα  :o. Πάντως το σίγουρο είναι ότι δουλεύουν και οι 32 καταχωρητές με εντολές άμεσης διευθυνσιοδότησης. Θα επανέλθω για ότι νεότερο :)

edit:Στο instruction set που έχω γράφει κάπου ότι για λόγους απλότητας δε δείχνουν όλα τα σχήματα την ακριβή θέση των διευθυνσιοδοτούμενων bits. Οπότε this might just be the case  8)


Title: Re: μ1 ... SOS?!
Post by: abc on January 30, 2006, 18:32:15 pm
O φιλος Τασος αν καταλαβα καλα δεν καταλαβε ακριβως τι ρωτας.
Αν καταλαβα εγω...

Ο ποιντερ Ζ δειχνει στην ΡΜ !
Αυτη ειναι 16bit!
Για να δειχνει ο Ζ words και οχι bytes πρεπει μετα το φορτωμα του να τον πολλαπλασιασεις με το δυο! Ειναι ενα λεπτο σημειο που δεν πολυκαταλαβαινω αλλα σιγουρα ετσι γινεται.
Ε αυτον τον πολλαπλασιασμο τον κανει με τις lsl kai rol!

Όντως ο Τάσος δεν είχε καταλάβει σωστά την ερώτησή μου....η δική σου απάντηση με κάλυψε πάντως..Ευχαριστώ!!

Πήγα να σας μπρεδέψω αλλά εσείς είστε σαΐνια!
Sorrry για το λάθος.


Title: Re: μ1 ... SOS?!
Post by: TT_PTOLEMAIDA on January 31, 2006, 00:36:36 am
Να ρωτήσω κάτι που μπορεί να σας φανεί λίγο κουλό; Στο σχήμα 4.4 στη σελίδα 99 του βιβλίου λέει ότι ο καταχωρητής εργασίας καταλαμβάνει τις θέσεις 16-19, δλδ συνολικά 4 θέσεις. Αυτές οι θέσεις φτάνουν; Μήπως δε δουλεύουν και οι 32 καταχωρητές αλλά μόνο οι 16 πρώτοι;
Καλή αυτή η απορία σου.
Προφανώς τα 4 αυτά bit δείχνουν τους 16 πρώτους καταχωρητές. Λογικά θα πρέπει μέσα στον κώδικα λειτουργίας της ίδιας εντολής, το bit 20 για παράδειγμα- να γίνεται 1 προκειμένου να δείχνονται και οι υπόλοιποι καταχωρητές.
Το EDIT του marauber λύνει κάπως το πρόβλημα...


Title: Απ: μ1 ... SOS?!
Post by: BOBoMASTORAS on January 31, 2006, 01:31:19 am
συνήθως δείχνουν τους 16-31 επεδή υπάρχουν εντολές που συντάσσονται μονο με αυτούς. όπως είπε και ο mega αν είναι να επιλεγεί η άλλη 16δα υπάρχει ένα bit μέσα στο op της εντολής.
Αλλά αυτό δε συμβαίνει σε όλες τις εντολές.


Title: Απ: μ1 ... SOS?!
Post by: marauber on January 31, 2006, 03:18:49 am
Κάτι σχετικά με τον Stack pointer: Γιατί στην αρχικοποίηση του πρέπει ντε και καλά να τον βάλω να δείχνει την τελευταία θέση της SRAM (RAMEND); Δηλαδή άμα τον βάλω να δείχνει στη θέση π.χ. $0100 (με την προϋπόθεση να μην έχω αποθηκεύσει τίποτα εκεί) δε θα γίνει σωστά η κλήση της υπορουτίνας;

Επίσης επειδή ο BOB το ανέφερε κάπου (και τώρα που διάβασα το βιβλίο περισσότερο κατανόησα τι ήθελε να πει :)): Μπορούμε σίγουρα να αποκτήσουμε πρόσβαση (δηλαδή εγγραφή-ανάγνωση) στη μνήμη προγράμματος; Και αν ναι πως;

Τέλος κάτι σχετικά με τον τρόπο εξέτασης: Μετά το μισάωρο της θεωρίας που είναι όλα κλειστά, για να λύσω τις ασκήσεις θα έχω ανοικτό μόνο το βιβλίο ή και ότι άλλο θέλω;

Τυχόν άμεση απάντηση θα εκτιμηθεί δεόντως :)
(Τώρα θα μου πει κάποιος: Τέτοια ώρα που τα γράφεις θες και άμεση απάντηση; )


Title: Απ: μ1 ... SOS?!
Post by: BOBoMASTORAS on January 31, 2006, 03:32:17 am
Κάτι σχετικά με τον Stack pointer: Γιατί στην αρχικοποίηση του πρέπει ντε και καλά να τον βάλω να δείχνει την τελευταία θέση της SRAM (RAMEND); Δηλαδή άμα τον βάλω να δείχνει στη θέση π.χ. $0100 (με την προϋπόθεση να μην έχω αποθηκεύσει τίποτα εκεί) δε θα γίνει σωστά η κλήση της υπορουτίνας;

Θα γίνει σωστά, κατά πάσα περίπτωση. Απλά ο stack pointer κάθε φορά που προσθέτεις κάποιο δεδομένο μειώνεται. Οπότε αν κάνεις πολλές τιμές pop πάρχει περίπτωση να "μπει" στο κομμάτι που έχεις αποθηκεύσει δεδομένα, οπότε και θα τα χάσεις. Δηλαδή έστω ότι στην $099 έχεις αποθηκεύσει κάτι, με το που θα κάνεις pop το χάνεις( αυτό ονομάζεται stack overflow και εμφανίζεται ακόμα και στα pc)


Επίσης επειδή ο BOB το ανέφερε κάπου (και τώρα που διάβασα το βιβλίο περισσότερο κατανόησα τι ήθελε να πει :)): Μπορούμε σίγουρα να αποκτήσουμε πρόσβαση (δηλαδή εγγραφή-ανάγνωση) στη μνήμη προγράμματος; Και αν ναι πως;

επειδή τώρα είναι λιγο αργά και δε μπορώ να το ψάχνω, νομίζω γίνεται μόνο με τον z pointer
οι εντολές είναι LPM και SPM αν και δεν φαίνεται να έχουν και πολύ χρησιμότητα.


Title: Απ: μ1 ... SOS?!
Post by: marauber on January 31, 2006, 03:56:00 am
Well done Bob!! Ξεπέρασες τις προσδοκίες μου σχετικά με την αμεσότητα της απάντησης!

 ^off-topic^ Aυτό το stack overflow που λες σχετίζεται με το buffer overflow και αυτό που γίνεται για να αποκτήσεις πρόσβαση σε "προστατευμένα" δεδομένα μέσω "τρυπών" που έχουν τα διάφορα προγράμματα και πολύ συχνά τα Windows;

Επίσης όποιος ξέρει...
Τέλος κάτι σχετικά με τον τρόπο εξέτασης: Μετά το μισάωρο της θεωρίας που είναι όλα κλειστά, για να λύσω τις ασκήσεις θα έχω ανοικτό μόνο το βιβλίο ή και ότι άλλο θέλω;


Title: Re: μ1 ... SOS?!
Post by: TT_PTOLEMAIDA on January 31, 2006, 10:18:32 am
Κάτι σχετικά με τον Stack pointer: Γιατί στην αρχικοποίηση του πρέπει ντε και καλά να τον βάλω να δείχνει την τελευταία θέση της SRAM (RAMEND); Δηλαδή άμα τον βάλω να δείχνει στη θέση π.χ. $0100 (με την προϋπόθεση να μην έχω αποθηκεύσει τίποτα εκεί) δε θα γίνει σωστά η κλήση της υπορουτίνας;

Quote
Θα γίνει σωστά, κατά πάσα περίπτωση. Απλά ο stack pointer κάθε φορά που προσθέτεις κάποιο δεδομένο μειώνεται. Οπότε αν κάνεις πολλές τιμές pop πάρχει περίπτωση να "μπει" στο κομμάτι που έχεις αποθηκεύσει δεδομένα, οπότε και θα τα χάσεις. Δηλαδή έστω ότι στην $099 έχεις αποθηκεύσει κάτι, με το που θα κάνεις pop το χάνεις( αυτό ονομάζεται stack overflow και εμφανίζεται ακόμα και στα pc)
Ακριβώς. Και επειδή θες να εκμεταλλευτείς ολόκληρη την SRAM ξεκινάς από το τέλος της(το κελί της μεγαλύτερης διεύθυνσης). Δεν θα κάτσεις να υπολογίσεις (ή δεν χρειάζεται να ξέρεις απέξω) ποια είναι αυτή η μεγαλύτερη διεύθυνση, γιαυτό βάζεις την "μακροεντολή" RAMEND η οποία πληροφορεί τον stack pointer ότι πρόκειται για αυτήν.
Επίσης επειδή ο BOB το ανέφερε κάπου (και τώρα που διάβασα το βιβλίο περισσότερο κατανόησα τι ήθελε να πει :)): Μπορούμε σίγουρα να αποκτήσουμε πρόσβαση (δηλαδή εγγραφή-ανάγνωση) στη μνήμη προγράμματος; Και αν ναι πως;

επειδή τώρα είναι λιγο αργά και δε μπορώ να το ψάχνω, νομίζω γίνεται μόνο με τον z pointer
οι εντολές είναι LPM και SPM αν και δεν φαίνεται να έχουν και πολύ χρησιμότητα.
Αυτό ακριβώς ήταν το θέμα της εξέτασης του εργαστηρίου! 8)


Title: Απ: μ1 ... SOS?!
Post by: BOBoMASTORAS on January 31, 2006, 14:20:49 pm
[off topic]


^off-topic^ Aυτό το stack overflow που λες σχετίζεται με το buffer overflow και αυτό που γίνεται για να αποκτήσεις πρόσβαση σε "προστατευμένα" δεδομένα μέσω "τρυπών" που έχουν τα διάφορα προγράμματα και πολύ συχνά τα Windows;

Δε ξέρω αν είναι το ίδιο αλλά αυτό που χρησιμοποιούν "ψαγμένοι" είναι το εξής:

(Μιλάμε για PC πάντα!!!!!!!!!!!!!!!!)
Στα PC δεν έχεις αρχιτεκτονική harvard οπότε η μνήμη δεδομένων και εντολών είναι κοινή. Απλά συνήθως χρησιμοποιείς τις πρώτεσ διευθύνσεις για τα δεδομένα σου και τις υπόλοιπες για κώδικα. Η στοίβα ξεκινά από την τελευταία διεύθυνση πάλι. Εδώ όμως αν έχεις stack overflow πλέον οι τιμές που κάνεις pop θα πάνε αργότερα στην cu και θα αναλυθούν σαν κανονικές εντολές. Οπότε πολλά κακόβουλα προγράμματα κάνουν το εξής: έχουν ένα απλό loop το οποίο γεμίζει την στοίβα σε σχεδόν πλήρως και στη συνέχεια κάνουν pop κανονικές εντολές. Οι εντολές αυτές αποτελούν και τον κώδικα του ιού. Έτσι οι κανονικές εντολές του προγράμματος επικαλύπτονται από τις δικές σου πλέον, και κάνεις ότι θέλεις. Μάλιστα στους επεξεργαστές δεν υπάρχει έλεγχος για stack overflow μέσω hardware και έτσι είναι πολύ δύσκολο να ανιχνεύσεις αυτή την κατάσταση.Τώρα αφού έχεις της εντολές γιατί δεν τις τρέχεις κατευθείαν? Δε το ξέρω ακριβώς αλλά μάλλον το θέμα δεν είναι να τις τρέξεις από ένα δικό σου πρόγραμμα αλλά από ένα άλλο ώστε να αλλοιώσεις το κώδικα και να παρακάμψεις κάποια διαδικασία. Γι αυτό η χρήση στοίβας σε επίπεδο εμπορικού προγραμματισμού γίνεται πολύ φειδωλά και δεν θεωρείται "καλή" προγραμματιστική τεχνική να αποθηκεύεις πολλές τιμές εκεί.

[/off topic]


Title: Απ: μ1 ... SOS?!
Post by: marauber on February 01, 2006, 21:16:41 pm
Θα κάνω μια προσπάθεια να διαφωτίσω ορισμένα σκοτεινά σημεία του μαθήματος που τα κατάλαβα την τελευταία στιγμή,  έχοντας κυρίως ως στόχο να διευκολύνω αυτούς που θα δώσουν το μάθημα από δω και πέρα. Και εννοείται ότι τα γράφω τώρα γιατί τα έχω φρέσκα ;). Μέχρι το Σεπτέμβρη...

Καταρχάς όταν θέλουμε να αναγνώσουμε δεδομένα από τη μνήμη προγράμματος(16-bit), μπορούμε να χρησιμοποιήσουμε μόνο την εντολή LPM μέσω του pointer Ζ. Αφού φορτώσουμε στο Z τη διεύθυνση της μνήμης προγράμματος που ξεκινούν τα δεδομένα που μας ενδιαφέρουν, στη συνέχεια τον πολλαπλασιάζουμε επί 2. Γιατί;;; Θα ρωτήσετε όλοι εύλογα. Η εξήγηση βρίσκεται στην εντολή LPM, η οποία θεωρεί ως διεύθυνση της μνήμης προγράμματος τα 15 πλέον σημαντικά bit του pointer Z (τα bit 1-15 δηλαδή) (Τα οποία πριν τον πολλαπλασιασμό-ολίσθηση προς τα αριστερά του Ζ βρίσκονταν στα bit 0-14). Αυτά τα 15 bit επαρκούν για τον προσδιορισμό της θέσης μνήμης. Όσον αφορά το bit 0 του Ζ, αν αυτό είναι 0 τότε η LPM φορτώνει στον καταχωρητή που έχουμε προσδιορίσει το low byte αυτής της διεύθυνσης (bits 0-7) ενώ αν είναι 1 τότε φορτώνει το high byte (bits 8-15). Δηλαδή πρακτικά, από τη στιγμή που διπλασιάσουμε τον Ζ, μπορούμε να αναφερόμαστε σε διαδοχικά bytes αυξάνοντας τον Ζ κατά ένα κάθε φορά.

Επίσης δεν υπάρχει η εντολή SPM σε όλα τα μοντέλα AVR παρά μόνο στα μεγαλύτερα. Στους AVR με την έλλειψη, ο μόνος τρόπος για να αποθηκεύσουμε δεδομένα στη μνήμη προγράμματος είναι με χρήση των ψευδοεντολών .DB και .DW κατά τη συγγραφή του προγράμματος.

Τέλος ένα σχόλιο για το βιβλίο. Γνώμη μου είναι ότι αν θέλετε να κατανοήσετε τον AVR να αφήσετε το βιβλίο και να πιάσετε τα datasheets από την ίδια την Atmel που βρίσκονται στο συνοδευτικό cd του βιβλίου. Το βιβλίο είναι στις περισσότερες περιπτώσεις ένα πολύ καλό παράδειγμα για το πως μπορείς να γράφεις πολλά χωρίς να λες τίποτα! Παραλείπει πολύ σημαντικά πράγματα (όπως τον τρόπο αρχικοποίησης του stack pointer και τη διευκρίνηση για την εντολή LPM) ενώ πολλά από τα προγράμματα-παραδείγματα που έχει έχουν περιττές εντολές και ενέργειες. Διαβάστε το -θα χρειαστεί για τη θεωρία άλλωστε- αλλά για εμβάθυνση ανατρέξτε αλλού.

Ελπίζω τα προαναφερθέντα να βοηθήσουν στη μελέτη σας :)

edited:Διορθώθηκε η ύπαρξη της SPM μετά από παρατήρηση των BoB και MW


Title: Απ: μ1 ... SOS?!
Post by: BOBoMASTORAS on February 01, 2006, 22:29:32 pm
Επίσης δεν υπάρχει εντολή SPM αντίθετα με ότι αναφέρθηκε πριν (Άσε BOB με έβαλες να ψάχνω νυχτιάτικα  ;D). Ο μόνος τρόπος για να αποθηκεύσουμε δεδομένα στη μνήμη προγράμματος είναι με χρήση των ψευδοεντολών .DB και .DW κατά τη συγγραφή του προγράμματος.

αχ marauber μου φαίνεται δεν έψαξες καλά. Εντολή SPM υπάρχει. Απλά το θέμα είναι ότι σε κάποια φάση που την έψαχνα και γω δεν την είχα βρει. Αυτή τη στιγμή δε προκειται να κάτσω να το ψάξω το γιατί (μπορεί να μην υπάρχει σε όλους τους AVR) αλλά έχω μπροστά μου το datasheet του mega128 και την έχει............ :P :P :P


Title: Re: μ1 ... SOS?!
Post by: TT_PTOLEMAIDA on February 01, 2006, 22:45:09 pm
Επίσης δεν υπάρχει εντολή SPM αντίθετα με ότι αναφέρθηκε πριν (Άσε BOB με έβαλες να ψάχνω νυχτιάτικα  ;D). Ο μόνος τρόπος για να αποθηκεύσουμε δεδομένα στη μνήμη προγράμματος είναι με χρήση των ψευδοεντολών .DB και .DW κατά τη συγγραφή του προγράμματος.

αχ marauber μου φαίνεται δεν έψαξες καλά. Εντολή SPM υπάρχει. Απλά το θέμα είναι ότι σε κάποια φάση που την έψαχνα και γω δεν την είχα βρει. Αυτή τη στιγμή δε προκειται να κάτσω να το ψάξω το γιατί (μπορεί να μην υπάρχει σε όλους τους AVR) αλλά έχω μπροστά μου το datasheet του mega128 και την έχει............ :P :P :P
Όχι μόνο υπάρχει, αλλά κάνει μια από τις πολύ σημαντικές ενέργειες όπως να γράφει και να σβ'ηνει ολόκληρες σελίδες στην Programm memory... Η εντολή αυτή βρίσκεται μάλιστα στην σελίδα 134 του AVR instruction Set και καταναλώνει για την ανάλυση της 2 ολόκληρες σελίδες καθώς έχει και το μεγαλύτερο παράδειγμα από κάθε άλλη εντολή.
Όμως δεν θυμάμαι να δηδάχθηκε στο παρών εξάμηνο, άρα είναι εκτός και για τον Σεπτέμβρη.
Επιπρόσθετα με αυτά που λες marauber θα έλεγα ότι το παρών instruction set είναι πολύ χρήσιμο, καθώς εξηγεί αναλυτικά για κάθε εντολή ποιες σημαίες επηρεάζει, ποιους καταχωρητές χρησιμοποιεί, τι τελεστέους έχει κ.α. και το σημαντικότερο είναι ότι έχει λυμμένο παράδειγμα για την κάθε εντολή. Όσοι δεν το έχετε κατεβάσει από το site της Atmel ναα το κάνετε. Ά΄λλωστε πολλά από τα παραδείγματα που έκανε ο Πέτρου στο μάθημα είναι copy-paste από εκεί.
Σελίδες στο διαδύκτιο για περισσότερες πληροφορίες:

-Για Μικροελεγτές AVR της Atmel
www.atmel.com/atmel/products/prod23.htm
-Για φυλλάδια τεχνικών προδιαγραφών:
www.atmel.com/atmel/products/prod200.htm
-Για προγράμματα των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod203.htm
-Για βιβλιοθήκες αναφοράς των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod204.htm
-Για εργαλεία υποστήριξης των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod202.htm
-Για εφαρμογές των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod201.htm
-Κέντρο αναφοράς και πληροφοριών σχετικά με τους μικροελεγκτές AVR της Atmel:
www.avr-forum.com/



Title: Απ: μ1 ... SOS?!
Post by: marauber on February 01, 2006, 22:58:10 pm
Έχετε δίκιο, όντως υπάρχει :-[ (αλλά μόνο στα μεγαλύτερα μοντέλα). Απλά όταν έψαξα να τη βρω νόμιζα ότι θα έχουμε τον 8515 και για τις γραπτές εξετάσεις. Έτσι κοίταξα στις εντολές του βιβλίου και στο instruction set του 8515 και δεν τη βρήκα πουθενά! Ευχαριστώ για τη διευκρίνηση, θα φροντίσω να κάνω τις απαραίτητες διορθώσεις στο προηγούμενο post! Για το instruction set συμφωνώ και επαυξάνω!


Title: Re: μ1 ... SOS?!
Post by: eeVoskos on February 09, 2006, 14:34:43 pm
Ουφ! Ξέρει κανείς αν βγήκαν τα αποτελέσματα των Μικρο στη σχολή;;
Έχω απορροφηθεί από το ...διάβασμα και δεν έχω χρόνο να κατέβω να δω τους πίνακες. :-(


Title: Re: μ1 ... SOS?!
Post by: abc on February 10, 2006, 01:28:35 am
Σήμερα κατέβηκα και δεν είχε μΥ.
Κουράγιο.


Title: Re: μ1 ... SOS?!
Post by: Megawatt on September 20, 2006, 16:03:37 pm
Διάβασμα της τελευταίας στιγμής:

Επειδή πολλοί με ρωτάτε(εντάξει μόνο δύο για την ακρίβεια!  :D ) ποιά θέματα είναι ΣΟΣ στην θεωρία των μίκρο, κατά την γνώμη μου και σύμφωνα με τις δικές μου σημειώσεις από τα λεγόμενα του Πέτρου, είναι τα παρακάτω:
(γράφω και την περίληψη για να μην τρέχετε και ψάχνετε  :D )

Address Bus-“AB”: Δίαυλος Διευθύνσεων. Πρόκειται για μια ομάδα σημάτων στο σύστημα ενός μικροεπεξεργαστή, η λογική κατάσταση των οποίων αντιστοιχεί σε μια διεύθυνση της θέσης μνήμης από την οποία επιθυμούμε να διαβάσουμε τα περιεχόμενα δεδομένα ή επιθυμούμε να εγγράψουμε νέα δεδομένα. O αριθμός των bits του AdressBus καθορίζει το μέγεθος(Κbytes) της κύριας μνήμης.

Benchmark programs: Προγράμματα Δοκιμής-Δοκιμασίας Επιδόσεων. Πρόκειται για προγράμματα μέτρησης της επίδοσης των μικροεπεξεργαστών. Είναι γραμμένα για τυπικές εφαρμογές (πχ.επεξεργασία στοιχείων πίνακα, μετατροπή κωδικών, επικοινωνία με περιφερειακές συσκευές, αριθμητικές λειτουργίες, αναζήτηση μιας σειράς χαρακτήρων (string) μέσα σένα κείμενο, υπολογιμό πρώτων αριθμών, αναζήτηση αρχείου με την μέθοδο quick sort, υπολογισμό της συνάρτησης Ackermann κλπ.

bottleneck:   Στένωση φιάλης. Πρόκειται για το βασικό χαρακτηριστικό της αρχιτεκτονικής Von Neumann. Στην αρχιτεκτονική αυτή, σε κάθε χρονική στιγμή μπορεί να εκτελεστεί μια μόνο πράξη χρησιμοποιώντας ένα ζευγάρι δεδομένων. Αυτό σημαίνει σειριακή επεξεργασία της πληροφορίας, η οποία έχει σαν αποτέλεσμα την μείωση της ταχύτητας εκτέλεσης του προγράμματος.  Έτσι για κάθε επεξεργασία της πληροφορίας πρέπει τα δεδομένα να περάσουν μέσα από κάποια στένωση-τον συσσωρευτή.

cache memory: Kρυφή Mνήμ_
1;  Η μικρή και γρήγορη μνήμη. (από τη γαλλική λέξη cacher, που σημαίνει κρύβω, και προφέρεται "κας"). Η βασική ιδέα στην οποία βασίζεται η κρυφή μνήμη είναι απλή: οι λέξεις μνήμης που χρησιμοποιούνται περισσότερο διατηρούνται στην κρυφή μνήμη. Όταν η CPU χρειάζεται μια λέξη, πρώτα κοιτάζει στην κρυφή μνήμη. Μόνο αν η λέξη δεν υπάρχει εκεί απευθύνεται στην κύρια μνήμη. Αν βρίσκεται στην κρυφή μνήμη ένα σημαντικό προσοστό των λέξεων, τότε ο μέσος χρόνος προσπέλασης μπορεί να μειωθεί πολύ. Έχει μια τάξη μεγέθους από 32ΚΒ μέχρι λίγα ΜΒ.

cache lines: γραμμές Kρυφής Mνήμης. Oνομάζονται οι ενότητες σταθερού μεγέθους(blocks) στο εσω¬τερικό της κρυφής μνήμης. Με οδηγό την αρχή της τοπικότητας (locality principle), οι κύριες μνήμες και οι κρυφές μνήμες υποδιαι¬ρούνται σε ενότητες σταθερού μεγέθους. Όταν συμβαίνει μια αποτυχία κρυφής μνήμης, ξαναφορτώνεται ολόκληρη η γραμμή κρυφής μνήμης από την κύρια μνήμη, και όχι μόνο η ζητούμενη λέξη. Αυτός ο τρόπος λειτουργίας είναι πιο αποδοτικός από την προσκόμιση μεμονωμένων λέξεων, επειδή είναι γρηγορότερο να προσκομιστούν k λέξεις μαζί, παρά μία λέξη k φορές. Επίσης, το νο είναι οι καταχωρίσεις της κρυφής μνήμης μεγαλύτερες από μία λέξη σημαίνει ότι είναι λιγότερες, και επομένως υπάρχει μικρότερη επιβάρυνση.

CISC: Ακρωνύμιο των λέξεων "Υπολογιστής Συνθέτου Ρεπερτορίου Εντολών" -"Complex Instruction Set Computer". Αφορά σε μια συγκεκριμένη αρχιτεκτονική υπο¬λογιστών, η οποία βασίζεται σε έναν σχετικά μεγάλο αριθμό εντολών που χαρακτηρίζο¬νται από μια δομή μεταβλητού μήκους, μικρό αριθμό καταχωρητών εργασίας και πολλαπλά είδη διευθυνσιοδότησης. Από τον επεξεργαστή 486 και μετά, οι μικροεπεξεργαστές της Intel έχου
;ν έναν πυρήνα RISC, ο οποίος εκτελεί τις απλούστερες εντολές (που είναι κατά κανόνα οι πιο συνηθισμένες) μέσα σε έναν κύκλο της διαδρομής δεδομένων, ενώ ερμηνεύει τις πιο σύνθετες εντολές με το συνηθισμένο τρόπο των μηχανών CISC. Το τελικό αποτέλεσμα είναι ότι οι πιο συνηθισμένες εντολές είναι γρήγορες και οι λιγότερο συνηθισμένες εντολές είναι αργές. Αν και αυτή η υβριδική μέθοδος δεν είναι τόσο γρήγορη όσο θα ήταν ένας γνήσιος σχεδιασμός RISC, δίνει ανταγωνιστική συνολική απόδοση, ενώ ταυτόχρονα επιτρέ¬πει να εκτελείται το παλιό λογισμικό χωρίς καμία τροποποίηση.

CPU: Ακρωνύμιο των λέξεων "Κεντρική Μονάδα Επεξεργασίας" - "Central Processing Unit". Η CPU αποτελεί την μονάδα εκτέλεσης αριθμητικών και λογικών υπολογισμών καθώς επίσης και την κεντρική μονάδα ελέγχου ενός υπολογιστή. Aποτελείται από μία αριθμητική-λογική μονάδα, μια μονάδα ελέγχου και τους καταχωρητές.   Η δουλειά της είναι να εκτελεί τα προγράμματα που βρίσκονται αποθηκευμένα στην κύρια μνήμη, προσκομίζοντας τις εντολές τους, εξετάζοντας τις, και στη συνέχεια εκτελώντας τις τη μια μετά την άλλη.

cycle stealing: Υπεξαίρεση Κύκλων. Η  κατάσταση κατά την οποία  δίνεται προτεραιότητα στις συσκευές εισόδου/εξόδου έναντι της CPU, επειδή οι δίσκοι και οι άλλες συσκευές με κινητά μέρη δε γίνεται να σταματήσουν, και ο εξαναγκασμός τους σε αναμονή θα είχε αποτέλεσμα να χαθούν δεδομένα. Όταν καμία πράξη εισόδου/εξόδου δε είναι σε εξέλιξη, η CPU μπορεί να έχει δικούς της όλους τους κύκλους ρολογιού για να απευθύνεται στη μνήμη. Όταν όμως δουλεύει και κάποια συσκευή εισόδου/εξόδου, η συσκευή αυτή θα ζητά και θα παίρνει το δίαυλο όποτε τον χρειάζεται. Η διαδικασ
ία αυτή επιβραδύνει τον υπολογιστή.

data path: Διαδρο¬μή Δεδομένων. Aποτελείται από τους καταχωρητές (συνήθως από 1 μέχρι 16), την ALU  και πολλούς διαύλους που συνδέουν τα διάφορα μέρη.

data path cycle: κύκλος διαδρομής δεδομένων. Μια τυπική εντολή καταχωρητή-καταχωρητή προσκομίζει δύο τελεστέους από τους καταχωρητές, τους φέρνει στους καταχωρητές εισόδου της ALU, κάνει κάποια πράξη σε αυτούς, για παράδειγμα, μια πρόσθεση ή μια λογική πράξη ΑΝD, και αποθηκεύει το αποτέλεσμα πάλι σε έναν από τους καταχωρητές. H διαδικασία του περάσματος δύο τελεστέων μέσα από την ALU και της αποθήκευσης του αποτελέσματος είναι γ


Title: Re: μ1 ... SOS?!
Post by: bjork on September 20, 2006, 18:46:20 pm
 ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^  ^notworthy^  ^notworthy^ Megawatt  ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^ ^notworthy^


Title: Re: μ1 ... SOS?!
Post by: Johnny English on September 20, 2006, 23:41:33 pm

bottleneck:   Στένωση φιάλης. Πρόκειται για το βασικό χαρακτηριστικό της αρχιτεκτονικής Von Neumann. Στην αρχιτεκτονική αυτή, σε κάθε χρονική στιγμή μπορεί να εκτελεστεί μια μόνο πράξη χρησιμοποιώντας ένα ζευγάρι δεδομένων. Αυτό σημαίνει σειριακή επεξεργασία της πληροφορίας, η οποία έχει σαν αποτέλεσμα την μείωση της ταχύτητας εκτέλεσης του προγράμματος.  Έτσι για κάθε επεξεργασία της πληροφορίας πρέπει τα δεδομένα να περάσουν μέσα από κάποια στένωση-τον συσσωρευτή.


Γενικά το bottleneck, δεν αναφέρεται στην χαμηλότερη ταχύτητα του διάυλου επικοινωνίας CPU - Μνήμης σε σχέση με την ταχύτητα της CPU και το μέγεθος της μνήμης; Δηλαδή ενώ η CPU είναι πιο γρήγορη, περιμένει να μεταφερθούν τα δεδομένα από ένα δίαυλο στον οποίο κινούνται με αργότερο ρυθμό... Άρα γενικά δεν αφορά μόνο την αρχιτεκτονική von Neumann απλά είναι πιο έντονο εκεί σε σχέση με την αρχιτεκτονική harvard, που έχει χωριστές μνήμες και άρα χωριστούς διάυλους.

Σωστά;;;


Title: deleted
Post by: BOBoMASTORAS on September 21, 2006, 00:01:49 am
deleted


Title: Re: μ1 ... SOS?!
Post by: Johnny English on September 21, 2006, 00:29:27 am
Από τα θέματα του Φλεβάρη 2006... στη θεωρία στο β).... τί εννοεί ο ποιητής παράδειγμα εφαρμογής; Μπορεί κάποιος να με παραπέμψει σε κάποια σελίδα του βιβλίου; Το πρώτο σκέλος φαντάζομαι ότι ζητάει επιγραμματικά αυτά που περιγράφονται στις σελίδες 26-29.. ε?

Επίσης το για το δ) δε βρίσκω σαφή απάντηση στο βιβλίο αν μπορεί κάποιος να βοηθήσει... ίσως απλά ζαλίζομαι από τον μεγάλο όγκο δεδομένων που λαμβάνω...


Title: Re: μ1 ... SOS?!
Post by: bjork on September 21, 2006, 00:35:37 am
Επίσης και για το ε)
...δεν καταλαβαίνω το πνεύμα της ερώτησης. "Πότε"?? :(


Title: Re: μ1 ... SOS?!
Post by: lars on August 21, 2007, 03:36:30 am
Καλό μας χειμώνα καταρχάς.
Μια ερώτηση σε όσους έχουν δώσει το μάθημα ή/και το έχουν παρακολουθήσει:
Στο eΤΗΜΜΥ βρήκα ένα σωρό από pdf και ppt των 90 διαφανειών..
Χρειάζονται όλα αυτά για το μάθημα ή να αρχίσω πρώτα με το βιβλίο και μετά ό,τι προλαβαίνω? Αν και παλιότερος, τώρα αποφάσισα να το δώσω και δεν το έχω παρακολουθήσει..


Title: Re: μ1 ... SOS?!
Post by: KorkoLyk on August 21, 2007, 08:32:14 am
Καλό μας χειμώνα καταρχάς.

Καλό και κρύο! Κάτω η ζέστη!  :D

Κάτι σοβαρό θα ήθελα να ρωτήσω αν ξέρει κανείς: Αν δε δώσω τώρα το μάθημα και το αφήσω για Φλεβάρη, το εργαστήριο θα κρατηθεί ή θα πρέπει να το ξανακάνω;

Θα με βοηθούσε πολύ όποιος ξέρει!


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 21, 2007, 10:53:28 am
Καλό μας χειμώνα καταρχάς.
Μια ερώτηση σε όσους έχουν δώσει το μάθημα ή/και το έχουν παρακολουθήσει:
Στο eΤΗΜΜΥ βρήκα ένα σωρό από pdf και ppt των 90 διαφανειών..
Χρειάζονται όλα αυτά για το μάθημα ή να αρχίσω πρώτα με το βιβλίο και μετά ό,τι προλαβαίνω? Αν και παλιότερος, τώρα αποφάσισα να το δώσω και δεν το έχω παρακολουθήσει..
Κοιτα, τα datasheets η αληθεια ειναι οτι δεν χρειαζεται να τα διαβασεις αν δεν εχεις χρονο, ο,τι χρειαζεται μαλλον θα το βρεις κι αλλου, τα slides των μαθηματων ομως ειναι μια καλη περιληψη βιβλιου-Tanenbaum-datasheets και καλο ειναι να τα δεις.
Αν χρειαζεται κατι  οπωσδηποτε αυτο ειναι οι λυμενες ασκησεις.
Απο τα site που δινει στην υλη το avrbeginners.net ειναι πολυ καλο/περιεκτικο για να ξεκινησεις να διαβαζεις/θυμασαι.
Οσον αφορα τα application notes της atmel και τα design notes του avrfreaks πολυ λιγα εμπιπτουν στην υλη και τη φιλοσοφια του μαθηματος, προτεραιοτητα εχουν τα παραπανω. Επισυναπτω μερικα που κρατησα εγω, τελειως βασικα (δεν σημαινει οτι δεν υπαρχουν αλλα σχετικα).


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 21, 2007, 10:55:28 am
...κι ακομη λιγα.


Title: Re: μ1 ... SOS?!
Post by: lars on August 21, 2007, 12:02:14 pm
Να'σαι καλά gpapanik!


Title: Re: μ1 ... SOS?!
Post by: psilos on August 22, 2007, 23:37:43 pm
ρε παιδια ξερει κανεις που μπορω να βρω πληροφοριες για τις μασκες και για τις ψευδοεντολες .db και .dw


Title: Re: μ1 ... SOS?!
Post by: kekropas on August 23, 2007, 14:45:08 pm
Παιδιά στην άσκηση Α2 που αφαιρεί 2 αριθμούς από Ν byte ο καθένας γιατί στο τέλος κοιτάει το υπόλοιπο και αν είναι c=1 κάνει set αλλιώς περνάει κατευθείαν στο loop τέλους. Η εντολή set δηλαδή τι διαφορά κάνει? Από το βιβλίο δεν κατάλαβα τη χρήση της.
Ο κώδικας:
Code:
brcc cont1			; C=1 means the result is a negative number
set ; the result is correct if seen as signed number
cont1:
sub min_stad_L, num_len ; restoring the original values of min_stad and sub_stad


Title: Re: μ1 ... SOS?!
Post by: nicktgr15 on August 23, 2007, 15:55:06 pm
ρε παιδια ξερει κανεις που μπορω να βρω πληροφοριες για τις μασκες και για τις ψευδοεντολες .db και .dw

http://www.atmel.com/atmel/acrobat/doc1022.pdf
Έχει αναλυτικά όλες τις ψευδοεντολές.


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 23, 2007, 19:18:03 pm
Παιδιά στην άσκηση Α2 που αφαιρεί 2 αριθμούς από Ν byte ο καθένας γιατί στο τέλος κοιτάει το υπόλοιπο και αν είναι c=1 κάνει set αλλιώς περνάει κατευθείαν στο loop τέλους. Η εντολή set δηλαδή τι διαφορά κάνει? Από το βιβλίο δεν κατάλαβα τη χρήση της.
Ο κώδικας:
Code:
brcc cont1			; C=1 means the result is a negative number
set ; the result is correct if seen as signed number
cont1:
sub min_stad_L, num_len ; restoring the original values of min_stad and sub_stad

Διαβασε τα σχολια στην αρχη του κωδικα, το εξηγει.


Title: Re: μ1 ... SOS?!
Post by: kekropas on August 24, 2007, 12:06:42 pm
Έχω φοβερό πρόβλημα, ενώ είχα διαβάσει τα πάντα ξαφνικά βλέπω ότι οι λυμένες ασκήσεις είναι πολύ διαφορετικές. Στην άσκηση Β1 πχ τι πανικός είναι αυτός? Η μάσκα τι ακριβώς χρήση έχει και γιατί διαλέγει αυτά τα νούμερα να γράψει στην PM? Μετά ο αλγόριθμος υπάρχει περίπτωση να βρούμε πουθενά αναλυτικά τι κάνει ακριβώς?


Title: Re: μ1 ... SOS?!
Post by: Axel on August 24, 2007, 19:12:48 pm
Καποιος μια απαντηση για τη μασκα που ρωταει και ο kekropas?

mask_table:
   .DB $01, $02, $04, $08, $10, $20, $40, $80


Title: Re: μ1 ... SOS?!
Post by: nicktgr15 on August 24, 2007, 19:34:04 pm
Η άσκηση B1 μοιάζει με το θέμα 2 του Φεβρουαρίου. Απλά εκει χρησιμοποιεί την SRAM. Και εμένα μου φαίνεται πολύ σύνθετος ο συγκεκριμένος τρόπος λύσης της B1.


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 24, 2007, 19:53:18 pm
Καποιος μια απαντηση για τη μασκα που ρωταει και ο kekropas?

mask_table:
   .DB $01, $02, $04, $08, $10, $20, $40, $80

Οι τιμες σε δυαδικη μορφη του πινακα mask_table ειναι 00000001, 00000010, 00000100, 00001000, ...10000000.
Οι ασσοι δηλαδη δειχνουν ολες τις πιθανες θεσεις που μπορει να εχει το bit που μας ενδιαφερει στο byte που μας ενδιαφερει. Αφου απομονωνει στο bit_point το τμημα της determine που αναφερεται στη θεση του bit, φορτωνει στον Ζ τη διευθυνση του πινακα (*2) και υστερα προσθετει στη διευθυνση το bit_point.
Ετσι, αν αρχικα το determine ηταν xxxxx010  και η διευθυνση του mask_table $0123 ==> bit_point=00000010 και ο Ζ=($0246)+($0002)=$0248. Με lpm τωρα λοιπον φορτωνουμε την τιμη 00000100 στον r0.
Αν θελουμε τωρα να κανουμε το bit 1 αρκει ενα or μεταξυ του byte που περιεχει το bit και αυτης της τιμης.
Αν θελουμε να κανουμε το bit 0 αντιστρεφουμε τη μασκα με ενα com (γινεται 11111011) και αρκει πλεον ενα and μεταξυ του byte μας και της καινουριας μασκας.
Ελπιζω να μην εκανα καπου λαθος..


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 24, 2007, 19:58:46 pm
Η άσκηση B1 μοιάζει με το θέμα 2 του Φεβρουαρίου. Απλά εκει χρησιμοποιεί την SRAM. Και εμένα μου φαίνεται πολύ σύνθετος ο συγκεκριμένος τρόπος λύσης της B1.

Μα και εδω την SRAM χρησιμοποιει για την αποθηκευση του πινακα. Ο mask_table μονο ειναι φορτωμενος στην flash.


Title: Re: μ1 ... SOS?!
Post by: bjlobby on August 24, 2007, 20:00:07 pm
Παιδιά δεν παίζει να είναι σωστό αυτό που κάνει.....   :o
Καταρχάς γιατί να προσθέσει το bit_point στη διεύθυνση
της μνήμης προγράμματος?? Τη σχέση έχει το bit_point?
Το byte_point πρέπει να προσθέσει για να φτάσει στο
byte που θέλουμε και μετά να κάνει τα υπόλοιπα......
Τί να πω......
UPDATE μετά το τελέυταιο post : Και γιατί να μην πάμε να πάορυμε ρε παιδιά το byte που μας ενδιαφέρει σπό την μνήμη προγράμμτος και να το απομονώσουμε και μετά να παίξουμε εκέι με τα bits του??? Ποιος ο λόγος να μπλέξουμε με όλες αυτές τις ιστορίες με τις μάσκες??


Title: Re: μ1 ... SOS?!
Post by: bjlobby on August 24, 2007, 20:02:34 pm
Quote
Μα και εδω την SRAM
Ναί, αυτό σίγουρα δεν το είχα καταλάβει.... Νόμιζα ότι χρησιμοποιεί τη μνήμη προγράμματος, αλλά το λέει για την SRAM στα σχόλια.... Ας το ξαναδώ λοιπόν.....  ::)


Title: Re: μ1 ... SOS?!
Post by: Faidon on August 25, 2007, 01:03:07 am
Καποιος μια απαντηση για τη μασκα που ρωταει και ο kekropas?

mask_table:
   .DB $01, $02, $04, $08, $10, $20, $40, $80

Όσον αφορά αυτήν την άσκηση, νομίζω ότι μπορεί να γίνει και με SHIFT, διαλέγεις και παίρνεις.


Title: Re: μ1 ... SOS?!
Post by: kekropas on August 25, 2007, 11:14:30 am
Και γιατί να μην πάμε να πάορυμε ρε παιδιά το byte που μας ενδιαφέρει σπό την μνήμη προγράμμτος και να το απομονώσουμε και μετά να παίξουμε εκέι με τα bits του??? Ποιος ο λόγος να μπλέξουμε με όλες αυτές τις ιστορίες με τις μάσκες??[/center]
Και εγώ το ίδιο σκέφτομαι. Οι αλγόριθμοι σε ορισμένες ασκήσεις είναι αρκετά περίπλοκοι


Title: Re: μ1 ... SOS?!
Post by: solid_snake on August 26, 2007, 19:19:40 pm
Παιδιά, κάνα SOS θεωρία απο Tanenbaum έχετε εντοπίσει?Η ύλη είναι τεράστια... :-\
Κατι που θα πρέπει να προσέξουμε ιδιαίτερα?...


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 26, 2007, 21:28:19 pm
Τα ...παραρτηματα.


Title: Re: μ1 ... SOS?!
Post by: KorkoLyk on August 26, 2007, 22:41:50 pm
Ερώτηση: Τί επιτρέπεται να έχουμε μαζί στις εξετάσεις; Τα βιβλία; Σημειώσεις; Τίποτα;


Title: deleted
Post by: BOBoMASTORAS on August 26, 2007, 23:13:51 pm
deleted


Title: Re: μ1 ... SOS?!
Post by: gpapanik on August 27, 2007, 00:21:33 am
Ο,τι θελουμε στις ασκησεις, στη θεωρια τιποτα.


Title: Re: μ1 ... SOS?!
Post by: solid_snake on August 27, 2007, 00:43:30 am
όταν γράφουμε θεωρία δεν επιτρέπεται τίποτα,όταν γράφουμε ασκήσεις επιτρέπεται σίγουρα το βιβλίο και το instruction set του AVR. Απ'οτι άκουσα πάντως μπορούμε να έχουμε μαζί μας ο,τι θέλουμε.


Title: Re: μ1 ... SOS?!
Post by: Axel on August 27, 2007, 19:25:47 pm
Κανα 2 σελιδες πριν ειδα το Juan να ρωταει αν ξερει κανεις που ειναι καποιες απαντησεις σε ερωτησεις θεωριας. Επειδη δεν πηρε απαντηση τοτε ξερει κανεις που ειναι οι απαντησεις γι'αυτες τις ερωτησεις?

--Πως υλοποιειται η σχετικη μνημη προγραμματος; Ποια ειναι η χρησιμοτητα της;
--Αναφερατε τις εναλλακτικες λυσεις για την υλοποιηση ενος ψηφιακου συστηματος. Τι πλεονεκτηματα και μειονεκτηματα διαθετει η καθε υλοποιηση;
--Πλεονεκτηματα/Μειονεκτηματα της αρχιτεκτονικης συνολου γενικων καταχωρητων συγκριτικα με την αντιστοιχη που διαθετει καταχωρητες με συγκεκριμενη λειτουργια;
--Ποτε χρησιμοποιειται η εμεση διευθυνσιοδοτηση δεδομενων με μετα αυξηση κατα ενα;
--Με τη χρηση χρονικου διαγραμματος περιγραψτε τη διαδικασια ανακλησης-αποκωδικοποποιησης και εκτελεσης εντολων για τον AVR.


Title: Re: μ1 ... SOS?!
Post by: nicktgr15 on August 27, 2007, 19:43:59 pm
--Πως υλοποιειται η σχετικη προσπέλαση μνημης προγραμματος; Ποια ειναι η χρησιμοτητα της;

Μαλλον για την εντολή LPM πρέπει να γράψουμε μερικα πραγματα.

--Αναφερατε τις εναλλακτικες λυσεις για την υλοποιηση ενος ψηφιακου συστηματος. Τι πλεονεκτηματα και μειονεκτηματα διαθετει η καθε υλοποιηση;

Σελιδα 16 στο βιβλιο. PLD,ASIC,ψηφιακό κύκλωμα ειδικού σκοπού.

--Με τη χρηση χρονικου διαγραμματος περιγραψτε τη διαδικασια ανακλησης-αποκωδικοποποιησης και εκτελεσης εντολων για τον AVR.

Μάλλον το σχήμα 3.5 στην σελιδα 48 θέλει.

Για τις αλλες δεν είμαι σίγουρος.


Επίσης απο την θεωρία της πτυχιακής...

Γ) Σε εναν υποθετικό μικροεπεξεργαστή ο δείκτης στοίβας αποτελείται απο 2 bits. Πως αποθηκεύονται τα δεδομένα 45,67,$A3,$7A και $E6;
Δ) Ποιοι ειναι οι καταχωρητές του μοντέλου προγραμματισμού;



Title: deleted
Post by: BOBoMASTORAS on August 27, 2007, 19:51:10 pm
deleted


Title: Re: μ1 ... SOS?!
Post by: mousitsa on August 27, 2007, 20:17:01 pm

Επίσης απο την θεωρία της πτυχιακής...

Γ) Σε εναν υποθετικό μικροεπεξεργαστή ο δείκτης στοίβας αποτελείται απο 2 bits. Πως αποθηκεύονται τα δεδομένα 45,67,$A3,$7A και $E6;
Δ) Ποιοι ειναι οι καταχωρητές του μοντέλου προγραμματισμού;


Για το (Δ) , αν κατάλαβα καλά ζητάει το ότι ο AVR χρησιμοποιεί το μοντέλο των καταχωρητών γενικής χρήσης.. (σελ. 31 τέλος και 33 τελευταία παράγραφο της 2.2)


Title: Re: μ1 ... SOS?!
Post by: solid_snake on August 28, 2007, 00:49:52 am
παιδιά, όταν λέει στα θέματα να γραφεί το πρόγραμμα σε μορφή υπορουτινας τι ακριβώς εννοεί?


Title: deleted
Post by: BOBoMASTORAS on August 28, 2007, 01:21:26 am
deleted


Title: Re: μ1 ... SOS?!
Post by: solid_snake on August 28, 2007, 01:45:47 am
Thanx Bob!