λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Τεχνολογία Λογισμικού

Όταν συναρμολογείτε ένα πρόγραμμα δημιουργίας στο codewarrior του επεξεργαστή, παίρνει το Flash ξεκινώντας από το 0xc000;

Αυτό δεν ισχύει παγκοσμίως για τα έργα CodeWarrior. Η διεύθυνση εκκίνησης του προγράμματος σας στη μνήμη flash (0xc000 στην περίπτωσή σας) εξαρτάται από διάφορους παράγοντες:

* Μικροελεγκτής στόχου: Διαφορετικοί μικροελεγκτές έχουν διαφορετικούς χάρτες μνήμης. Το σενάριο Linker στο έργο CodeWarrior καθορίζει πού θα διαμένουν διάφορα μέρη του προγράμματος (κωδικός, δεδομένα, σταθερές) στη μνήμη. Το 0XC000 είναι μια κοινή διεύθυνση εκκίνησης για τον κώδικα σε ορισμένα ενσωματωμένα συστήματα, αλλά όχι όλα.

* Script Linker: Αυτό το αρχείο είναι κρίσιμο. Ορίζει τη διάταξη μνήμης. Ο σύνδεσμος χρησιμοποιεί αυτό το σενάριο για να τοποθετήσει τα τμήματα του προγράμματος (όπως το `.text`,` .data`, `.bss`) σε συγκεκριμένες διευθύνσεις μνήμης. Εάν το σενάριο Linker έχει ρυθμιστεί ώστε να τοποθετεί το σημείο εισόδου του προγράμματος στο 0xC000, τότε εκεί θα πάει.

* Ρυθμίσεις έργου: Οι ρυθμίσεις του έργου του CodeWarrior σάς επιτρέπουν να καθορίσετε διάφορες επιλογές σύνδεσης και διαμορφώσεις μνήμης. Αυτές οι ρυθμίσεις επηρεάζουν τελικά τον τελικό χάρτη μνήμης.

* bootloader: Εάν το σύστημα στόχου σας χρησιμοποιεί ένα bootloader, ο ίδιος ο bootloader μπορεί να καταλαμβάνει ορισμένες διευθύνσεις χαμηλότερης μνήμης. Ο κωδικός εφαρμογής θα ξεκινήσει μετά το τέλος του bootloader.

Εν ολίγοις, ενώ το 0XC000 είναι * μια πιθανή * εκκίνηση, δεν είναι εγγενές στο CodeWarrior. Πρέπει να εξετάσετε το σενάριο και τις ρυθμίσεις του συνδέσμου του έργου σας για να επιβεβαιώσετε την πραγματική διεύθυνση εκκίνησης. Το σενάριο Linker θα καθορίσει σαφώς τις διευθύνσεις μνήμης που χρησιμοποιούνται για διαφορετικά τμήματα του κώδικα σας.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα