Περιεχόμενα

ΠΡΩΤΟ ΚΕΦΑΛΑΙΟ: Ανάπτυξη Ενσωματωμένων Συστημάτων Linux


    Εισαγωγή
    1.1 Τι είναι το Linux
    1.2 Το ενσωματωμένο Linux
    1.3 Οι τύποι των ενσωματωμένων συστημάτων Linux
    1.4 Γιατί να προτιμήσουμε το Linux
    1.5 Έτοιμες διανομές και εργαλεία ανάπτυξης
    1.6 Μεθοδολογία σχεδίασης και ανάπτυξης
    1.7 Εργαλεία ανάπτυξης και αποσφαλμάτωσης
    1.8 Οι τύποι ανάπτυξης
    1.9 Οι τύποι αποσφαλμάτωσης
    1.10 Η αρχιτεκτονική ενός ενσωματωμένου συστήματος Linux
    1.11 Εκκίνηση συστήματος
        1.11.1 Τύποι εκκίνησης
            Εκκίνηση από μνήμη στερεάς κατάστασης
            Εκκίνηση από σκληρό δίσκο
            Εκκίνηση μέσω δικτύου
    1.12 Μονάδα διαχείρισης μνήμης (MMU)
    1.13 Διαχείριση δευτερεύουσας μνήμης


ΔΕΥΤΕΡΟ ΚΕΦΑΛΑΙΟ: Εργαλεία Ανάπτυξης Ενσωματωμένων Συστημάτων Linux


    Εισαγωγή
    2.1 Έτοιμες αλυσίδες εργαλείων ανάπτυξης
    2.2 Πακέτο υποστήριξης συστήματος
    2.3 Αλυσίδα εργαλείων μεταγλώττισης
    2.4 Δημιουργία της αλυσίδας μεταγλώττισης cross
        2.4.1 Binutils
        2.4.2 Οι κεφαλίδες του Linux kernel
        2.4.3 Η βιβλιοθήκη C
        2.4.4 Η βιβλιοθήκη νημάτων
        2.4.5 Εκδόσεις πακέτων λογισμικού και διαχείριση
        2.4.6 Επισκόπηση δημιουργίας της αλυσίδας cross
    2.5 Αυτοματοποιημένα συστήματα
        2.5.1 Εναλλακτικές βιβλιοθήκες C
        2.5.2 Το αυτοματοποιημένο σύστημα Buildroot
    2.6 Παραμετροποίηση uClibc, kernel και BusyBox μέσω Buildroot
    2.7 Γραμμή εντολών
    2.8 Βασικές εντολές φλοιού
    2.9 Προσομοιωτές τερματικών
        2.9.1 Ο προσομοιωτής τερματικού C-Kermit
        2.9.2 Ο προσομοιωτής τερματικού PuTTY
    2.10 IDEs για Linux
        2.10.1 Το IDE AVR32 Studio


ΤΡΙΤΟ ΚΕΦΑΛΑΙΟ: Το υλικό που υποστηρίζει το ενσωματωμένο Linux


    Εισαγωγή
    3.1 Αρχιτεκτονικές μικροελεγκτών
    3.2 Οδηγοί συσκευών και Linux Kernel
        3.2.1 Linux kernel
        3.2.2 Modules
    3.3 Παράδειγμα ανάπτυξης module
    3.4 Δίαυλοι και διεπαφές
        3.4.1 USB
        3.4.2 I2C Linux Framework
            Ο ενσωματωμένος Linux driver για το I2C
            Παραμετροποίηση του Kernel
            I2C μέσω GPIO
            Εγκατάσταση των I2C modules
            Χρήση της διεπαφής I2C
            Ανάπτυξη I2C Linux driver
        3.4.3 SPI
    3.5 Είσοδοι και Έξοδοι (I/Os)
        3.5.1 Το υποσύστημα tty
        3.5.2 RS-232
        3.5.3 GPIO
            Χρήση της διεπαφής /dev
            Είσοδος και έξοδος σημάτων GPIO
            Έλεγχος GPIO μέσω module
            Linux LED Framework
            Χρήση του LED Framework στο user-space
    3.6 Modem
    3.7 Επικοινωνία με τη μνήμη
        3.7.1 Δημιουργία του συστήματος αρχείων root
            Παράμετροι μνήμης flash
            Το σύστημα αρχείων JFFS2
            Το εργαλείο mkfs.jffs2
            Διαμόρφωση και εγκατάσταση
            SPI modules
            Μεταγλώττιση και πρόσβαση
    3.8 Υλικό δικτύωσης


ΤΕΤΑΡΤΟ ΚΕΦΑΛΑΙΟ: Δικτύωση και Δρομολόγηση στα ενσωματωμένα συστήματα Linux


    Εισαγωγή
    4.1 Το TCP/IP στα ενσωματωμένα συστήματα Linux
        4.1.1 Το TCP/IP και το μοντέλο αναφοράς OSI
        4.1.2 Οι Απαιτήσεις του TCP/IP από το ενσωματωμένο Linux
        4.1.3 Η στοίβα TCP/IP στο Linux
            Αρχικοποίηση της στοίβας TCP/IP στον Router NGW100
    4.2 Linux Sockets
        4.2.1 Τί είναι η διεπαφή socket
        4.2.2 Οι βασικότερες δομές διαχείρισης sockets
        4.2.3 Οικογένειες πρωτοκόλλων
        4.2.4 Αρχικοποίηση επιπέδου socket
        4.2.5 Πρωτόκολλο IP και sockets
        4.2.6 Η διεπαφή Socket
        4.2.7 Socket buffers
        4.2.8 Τα είδη των sockets
            Packet Sockets
            Raw Sockets
            Netlink Sockets και πρωτόκολλο Netlink
            Routing Sockets
            Rtnetlink Sockets
        4.2.9 Το πρόγραμμα netstat
        4.2.10 Διεπαφή socket και IPv6
    4.3 Δρομολόγηση πακέτων
        4.3.1 Πίνακες δρομολόγησης
            Route cache
            RPDB
            Η βάση FIB αναλυτικά
            Οι προγραμματιστικές διεπαφές της FIB
        4.3.2 Δρομολογητές και δρομολόγηση IP
            Δρομολόγηση εισερχόμενων πακέτων (LAN ß WAN)
            Δρομολόγηση εξερχόμενων πακέτων (LAN à WAN)
            Η κεφαλίδα IP
            Αποστολή και λήψη πακέτων μέσω του πρωτοκόλλου IP
    4.4 Τα πρωτόκολλα ARP, ICMP και IGMP
        4.4.1 ARP
        4.4.2 ICMP
        4.4.3 IGMP
    4.5 Οδηγοί δικτύου
        4.5.1 H διεπαφή δικτύου
        4.5.2 Ανάπτυξη οδηγού δικτύου
        4.5.3 Ο οδηγός δικτύου MACB
            NAPI
            ethtool API
            Στατιστικά
            Promiscuous mode
            Έλεγχος σφαλμάτων
    4.6 Απόδοση δικτύωσης του μικροελεγκτή AP7000


ΠΕΜΠΤΟ ΚΕΦΑΛΑΙΟ: Ηλεκτρικά και ηλεκτρονικά χαρακτηριστικά του Router NGW100


    Εισαγωγή
    5.1 Περιγραφή και λογικό διάγραμμα του Router NGW100
    5.2 Ο μικροελεγκτής AP7000
    5.3 Διαθέσιμη μνήμη
        5.3.1 Χάρτης φυσικών διευθύνσεων
    5.4 Ethernet PHY και MAC
    5.5 Συνδεσιμότητα RS232
    5.6 Ελεγκτής πλακέτας – Board Controller
    5.7 Διεπαφές προγραμματισμού JTAG και NEXUS
    5.8 Σύστημα χρονισμού
    5.9 Κύκλωμα επαναφοράς (reset)
    5.10 Σύστημα τροφοδοσίας
    5.11 Διαστάσεις πλακέτας
    5.12 Σχέδιο συναρμολόγησης
    5.13 Σχηματικά και PCB του Router NGW100
    5.14 Επέκταση δυνατοτήτων υλικού


ΕΚΤΟ ΚΕΦΑΛΑΙΟ: Προγραμματισμός και εκκίνηση του Router NGW100


    Εισαγωγή
    6.1 Το σύστημα ανάπτυξης host
    6.2 Το πακέτο υποστήριξης συστήματος Atmel Linux BSP 3.0
        6.2.1 Τροποποίηση του πακέτου υποστήριξης Atmel Linux BSP 3.0
    6.3 Δημιουργία της εικονικής μηχανής Ubuntu 9.04
        6.3.1 Login με δικαιώματα root
        6.3.2 Δημιουργία του κεντρικού κατάλογου εργασίας /rousis
    6.4 Το περιβάλλον ανάπτυξης AVR32
        6.4.1 Εγκατάσταση Buildroot και αλυσίδας GNU AVR32
        6.4.2 Το εξειδικευμένο λογισμικό του Router NGW100
        6.4.3 Εγκατάσταση του AVR32 Studio
    6.5 Βοηθητικό λογισμικό
    6.6 Διαμέριση μνήμης
    6.7 Η συσκευή JTAGICE mkII
    6.8 Σύνδεση JTAGICE mkII με το σύστημα host
    6.9 Εγγραφή U-Boot στην παράλληλη μνήμη
    6.10 Εγγραφή Linux Kernel στην παράλληλη μνήμη
    6.11 Εγγραφή συστήματος αρχείων /usr
    6.12 Διαδικασία εκκίνησης


ΕΒΔΟΜΟ ΚΕΦΑΛΑΙΟ: Οι εφαρμογές του Router NGW100


    Εισαγωγή
    7.1 Ανάπτυξη δοκιμαστικής εφαρμογής
        7.1.2 Με χρήση κειμενογράφου και γραμμής εντολών
        7.1.3 Μέσω του AVR32 Studio
    7.2 Προσθήκη πακέτων λογισμικού στο Buildroot
        7.2.1 Παράδειγμα προσθήκης εφαρμογής στο σύστημα Buildroot
    7.3 Οι εφαρμογές του Router NGW100
        7.3.1 Πακέτο εφαρμογών BusyBox
        7.3.2 Εφαρμογή inetd
        7.3.3 Εφαρμογή httpd
        7.3.4 Εφαρμογές για το Web interface
            Εφαρμογή haserl
            Εφαρμογή awk
            Εφαρμογή webif
        7.3.5 Eφαρμογές διαχείρισης των διεπαφών δικτύου
            Εφαρμογή ifconfig
            Εφαρμογές ifup και ifdown
        7.3.6 Eφαρμογή route
        7.3.7 Εφαρμογή iptables
        7.3.8 Εφαρμογές για DNS και DHCP server
            Εφαρμογή dnsmasq
            Εφαρμογή udhcpc
        7.3.9 Εφαρμογή telnetd
        7.3.10 Εφαρμογή dropbear
        7.3.11 Εφαρμογή ProFTPD
        7.3.12 Εφαρμογή ethtool
        7.3.13 Εφαρμογή portmap
        7.3.14 Εφαρμογή bridge
        7.3.15 Εφαρμογές ενημέρωσης – εμφάνισης ώρας και ημερομηνίας


ΠΑΡΑΡΤΗΜΑΤΑ
ΒΙΒΛΙΟΓΡΑΦΙΑ


Μπορείτε να κατεβάσετε σε μορφή PDF τα περιεχόμενα της εργασίας κάνοντας κλικ ΕΔΩ.