MicroArm MINI2440 Manual do Utilizador Página 30

  • Descarregar
  • Adicionar aos meus manuais
  • Imprimir
  • Página
    / 80
  • Índice
  • MARCADORES
  • Avaliado. / 5. Com base em avaliações de clientes
Vista de página 29
περίπτωση το πρόγραμμά μας έχει απευθείας πρόσβαση στο υλικό μέσο του πυρήνα.
Ο πιο εύκολος τρόπος όμως (όταν πρόκειται τουλάχιστο για καινούρια συστήματα) είναι η χρήση
του εικονικού συστήματος αρχείων sysfs (4.8 SysFS). Όταν ο πυρήνας μας έχει ενεργοποιημένο το
sysfs και τους drivers του GPIO, δημιουργείτε ο φάκελος “/sys/class/gpio”. Μέσα σε αυτό το φάκελο
υπάρχει ένας φάκελος gpiochipN για κάθε chip gpio της συσκευής, καθώς και δύο αρχεία, τα export
και unexport. Προκειμένου να χρησιμοποιήσουμε κάποιο ακροδέκτη δημιουργούμε ένα φάκελο
gpioN για αυτόν χρησιμοποιώντας το export. Για να διαβάσουμε, να γράψουμε δεδομένα ή να
αλλάξουμε την κατεύθυνση του ακροδέκτη, απλά αλλάζουμε της τιμές των αρχείων (direction και
value) που περιέχει. Με το unexport μπορούμε να διαγράψουμε ένα φάκελο ακροδέκτη αν δεν τον
χρειαζόμαστε πλέον.
Αναλυτικά. Ο εν λόγο φάκελος στην mini2440 αρχικά περιέχει τα παρακάτω αρχεία:
root@mini2440:/sys/class/gpio# ls
export gpiochip128 gpiochip192 gpiochip32 gpiochip96
gpiochip0 gpiochip160 gpiochip224 gpiochip64 unexport
Άρα υπάρχουν οκτώ gpio chip στη συσκευή. Κάποια από αυτά συνδέονται στους 34 ακροδέκτες
γενικού σκοπού ενώ άλλα χρησιμοποιούνται για τα ενσωματωμένα LED, τους διακόπτες γενικής
χρήσης και πιθανό άλλες συσκευές της πλακέτας. Μπορούμε να βρούμε ποιος φάκελος αντιστοιχεί σε
κάθε chip διαβάζοντας το αρχείο label του κάθε φακέλου. Για να δούμε για παράδειγμα σε ποιο chip
αντιστοιχεί ο φάκελος gpiochip32 θα πληκτρολογήσουμε στο τερματικό:
root@mini2440:/sys/class/gpio# cat
/sys/class/gpio/gpiochip32/label
GPIOB
Επομένως ο φάκελος gpiochip32 του sysfs αντιστοιχεί στο chip GPIOB του εγχειριδίου της
πλακέτας.
Για να δούμε την αντίστοιχη πληροφορία για όλα τα chip, ενώ είμαστε στο φάκελο
“/sys/class/gpio” εκτελούμε το παρακάτω:
root@mini2440:/sys/class/gpio# for i in gpiochip* ; do echo `cat
$i/label`: `cat $i/base` ; done
GPIOA: 0
GPIOE: 128
GPIOF: 160
GPIOG: 192
GPIOH: 224
GPIOB: 32
GPIOC: 64
GPIOD: 96
Τώρα πρέπει να ξέρουμε, με βάση το εγχειρίδιο “MINI2440_USER_MANUAL.pdf”, ποιον
ακροδέκτη χρειαζόμαστε. Ας θεωρήσουμε ότι θέλουμε να χειριστούμε το δεύτερο LED. Με βάση τη
σελίδα 231 του εγχειριδίου είναι το GPB6. Άρα θέλουμε τον έκτο ακροδέκτη του GPIOB. Το GPIOB
αντιστοιχεί στο φάκελο gpiochip32. Ό ακροδέκτης που ζητάμε λοιπών είναι ο 32 + 6 = 38. Για να
δημιουργήσουμε φάκελο για αυτόν απλά τυπώνουμε την τιμή του στο αρχείο export:
root@mini2440:/sys/class/gpio# echo 38 > /sys/class/gpio/export
root@mini2440:/sys/class/gpio# ls
export gpiochip0 gpiochip160 gpiochip224 gpiochip64
unexport
gpio38 gpiochip128 gpiochip192 gpiochip32 gpiochip96
Βλέπουμε ότι δημιουργήθηκε ο φάκελος gpio38. Μέσα στον οποίο υπάρχουν τα αρχεία:
root@mini2440:/sys/devices/virtual/gpio/gpio38# ls
direction power subsystem uevent value
Μας ενδιαφέρουν, σε αυτή την περίπτωση τουλάχιστον, τα direction και value. Όπως
καταλαβαίνουμε από το όνομα τους, το direction συμβολίζει την κατεύθυνση του ακροδέκτη (in
out) ενώ το value την τιμή του (0 -1).
Με μία γρήγορη επισκόπηση βλέπουμε της προεπιλεγμένες τιμές:
root@mini2440:/sys/devices/virtual/gpio/gpio38# cat direction
Σελίδα 23
Vista de página 29
1 2 ... 25 26 27 28 29 30 31 32 33 34 35 ... 79 80

Comentários a estes Manuais

Sem comentários