Έχετε πιθανώς ακούσει ότι η σκουριά είναι μια γλώσσα προγραμματισμού συστημάτων που έχει την ακόλουθη καλλιέργεια. Προκύπτει ότι είναι γρήγορη σαν C, αλλά έχει χαρακτηριστικά όπως εγγυημένη μνήμη και ασφάλεια νήματος, γενικά γενικά και εμποδίζει τα σφάλματα κατάτμησης. Ακούγεται σαν το πράγμα για ένα ενσωματωμένο σύστημα, σωστά; [Jorge Aparicio] ήταν απογοητευμένος επειδή η CPU της επιλογής του, ένας STM32 βραχίονας Cortex-m δεν είχε εγγενή υποστήριξη για σκουριά.
Προφανώς, μπορείτε εύκολα να δεσμεύσετε τις λειτουργίες C σε ένα πρόγραμμα σκουριάς, αλλά αυτό δεν ήταν αυτό που ήταν μετά. Έτσι έθεσε για να χτίσει καθαρά προγράμματα σκουριάς που θα μπορούσαν να έχουν πρόσβαση στο υλικό της συσκευής και τεκμηρίφησε την προσπάθεια.
Όχι μόνο η ανάρτηση σας δείχνει τα εργαλεία που χρειάζεστε και τις εκδόσεις λογισμικού, αλλά χρησιμοποιώντας το OpenOCD, [Jorge] ακόμη και κατάφερε να κάνει κάποια εντοπισμό σφαλμάτων. Η τεχνική φαίνεται να εφαρμόζεται αρκετά συνήθως, καθώς λέει ότι έχει κάνει το ίδιο τέχνασμα σε έξι διαφορετικούς ελεγκτές από τρεις διαφορετικούς προμηθευτές χωρίς κανένα πρόβλημα. Πρέπει να διαμορφώσετε το έργο αλλάζοντας κάποιες τιμές σε ένα πρότυπο.
Αν και δεν είναι ένα σκουριάς, ακολουθώντας μαζί με τον κώδικα [Jorge] και οι εξηγήσεις του θα σας δώσουν μια αρκετά καλή ιδέα για το τι φαίνεται σκουριά. Δείχνει επίσης ένα καθαρό εργαλείο, το gdb-ταμπλό. Για να δημιουργήσετε το API στις ειδικές περιοχές μνήμης του βραχίονα, το [Jorge] χρησιμοποιεί ένα εργαλείο που ονομάζεται SVD2Rust για να επεξεργαστεί τα αρχεία SVD του προμηθευτή. Αυτά συνήθως χρησιμοποιούνται για τον προγραμματισμό και τη δοκιμή JTAG, οπότε θεωρήσαμε ότι ήταν ένας νέος τρόπος για να οικοδομήσουμε αυτόματα υποστήριξη για τον επεξεργαστή.
Πολλές γλώσσες που προσφέρουν χαρακτηριστικά ασφαλείας τείνουν να συνάγουν τον κώδικα λίπους. [Jorge] δείχνει ένα αναβοσβήνει ένα παράδειγμα LED και αποσυναρμολογεί και φαίνεται αρκετά συμπαγής περίπου 127 byte. Στη συνέχεια, αφαιρέθηκε τα καταχωρητές χρονοδιακόπτη και ο κώδικας είναι πρακτικά το ίδιο μέγεθος περίπου όταν καταρτίζεται.
Καλύπτουμε τη σκουριά σύντομα πίσω. Έχουμε επίσης δει τη σκουριά σε κάποια εργαλεία WiFi πιο πρόσφατα.