SESC

Από Κοινότητα Ελεύθερου Λογισμικού ΕΜΠ
Μετάβαση σε: πλοήγηση, αναζήτηση

SESC

Cross-compiler για MIPS

Το άρθρο περιέχει πληροφορίες για το compile μίας σειράς εργαλείων (GNU toolchain) που επιτρέπουν τη συγγραφή προγραμμάτων για τον επεξεργαστή MIPS και την εκτέλεση αυτών μέσω του προσομοιωτή SESC.

  • Κατεβάστε από το site του SESC στο SourceForge.Net το αρχείο sescutils.tar.bz2. Το συγκεκριμένο αρχείο περιλαμβάνει τη σουίτα εργαλείων του GNU για cross-compile σε MIPS:
wget http://downloads.sourceforge.net/sesc/sescutils.tar.bz2
  • Αποσυμπιέστε το αρχείο που κατεβάσατε (απαιτεί χρόνο και χώρο περί τα 600 MB):
tar xf sescutils.tar.bz2
  • Τροποποιήστε το αρχείο sescutils/build-mipseb-linux/build-common έτσι ώστε οι μεταβλητές GNUSRC και PREFIX να περιέχουν το path του φακέλου /path/to/sescutils/src και /path/to/sescutils/install αντίστοιχα.
  • Ξεκινήστε τη διαδικασία του compile (πρέπει να μεταβείτε στο φάκελο sescutils/build-mipseb-linux). Η διαδικασία αυτή θα χρειαστεί επιπλέον χρόνο και επιπλέον χώρο περί τα 500 MB:
./build-1-binutils
./build-2-gcc-core
./build-3-glibc
./build-4-gcc (δεν είμαι σίγουρος αν είναι απαραίτητο αυτό το βήμα)
  • Πλέον είμαστε έτοιμοι για να κάνουμε compile ένα πρόγραμμα γραμμένο σε C ώστε να τρέχει σε επεξεργαστές MIPS. Πληκτρολογήστε ένα απλό hello world πρόγραμμα σε έναν editor και εκτελέστε την παρακάτω εντολή:
sescutils/install/bin/mipseb-linux-g++ hello.c -o hello -mips2 -mabi=32 -Wa,-non_shared -mno-abicalls -static -Wl,--script=sescutils/src/mint.x (Προσοχή στα path sescutils/...)
  • Για να τρέξουμε το πρόγραμμα στον x86 υπολογιστή µας πρέπει να κατεβάσουμε και να εγκαταστήσουμε το SESC. Εκτελούμε, λοιπόν, τις παρακάτω εντολές:
cvs -d:pserver:anonymous@sesc.cvs.sourceforge.net:/cvsroot/sesc login (στο password απλά πατάμε Enter)
cvs -z3 -d:pserver:anonymous@sesc.cvs.sourceforge.net:/cvsroot/sesc co -P sesc
mkdir sesc-build
cd sesc-build
../sesc/configure
make
  • Τέλος για να τρέξουμε το πρόγραμμα δίνουμε την παρακάτω εντολή αφού φέρουμε στο τρέχον directory τα αρχεία sesc.conf και shared.conf:
sesc-build/sesc.mem hello