Πίνακας περιεχομένων:
- Βήμα 1: Λήψη εργαλείων Sunxi
- Βήμα 2: Αποσυμπιέστε τον κώδικα πηγής
- Βήμα 3: Λήψη κωδικού:: μπλοκ
- Βήμα 4: Δοκιμάστε το IDE σας
- Βήμα 5: Πλήρης δοκιμή
- Βήμα 6: Δημιουργία νέου έργου
- Βήμα 7: Προσθήκη αρχείων στο έργο
- Βήμα 8: Ζητήστε από το Gcc να ακολουθήσει το πρότυπο γλώσσας ISO C 1999
- Βήμα 9: Βρείτε τη χαμένη εξάρτηση
- Βήμα 10: Αποσυσκευάστε το Mman
- Βήμα 11: Και προσθέστε τα στο έργο
- Βήμα 12: Σωστό μονοπάτι
- Βήμα 13: Εξορκισμός
- Βήμα 14: ΣΗΜΕΙΩΣΕΙΣ
Βίντεο: Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 Steps (with Pictures)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
ΠΡΟREΠΟΘΕΣΕΙΣ:
Θα χρειαστείτε
- Ένας (επιτραπέζιος) υπολογιστής με Windows.
- Μια σύνδεση στο Διαδίκτυο.
- Ένας πίνακας Πορτοκαλί PI.
Το τελευταίο είναι προαιρετικό, αλλά είμαι σίγουρος ότι το έχετε ήδη. Διαφορετικά Δεν θα διαβάσετε αυτό το διδακτικό.
Όταν αγοράζετε τον υπολογιστή μονής πλακέτας Orange PI παραμένει μόνο ένα κομμάτι νεκρού μετάλλου μέχρι να διαμορφωθεί σωστά. Και το κύριο αρχείο διαμόρφωσης: "script.bin" είναι το πρώτο κλειδί που το ζωντανεύει. Αυτό το αρχείο βρίσκεται στο διαμέρισμα εκκίνησης της κάρτας SD με δυνατότητα εκκίνησης. Και ευτυχώς για εμάς, στις περισσότερες από τις διανομές Linux από τον Επίσημο ιστότοπο (https://www.orangepi.org/downloadresources/) αυτό το διαμέρισμα είναι FAT32 και μπορεί εύκολα να το δει οποιοσδήποτε υπολογιστής Windows. Πραγματικά απλοποιεί τα πράγματα, καθώς δεν υπάρχει ακόμα αξιόπιστος τρόπος για να γράψετε στα διαμερίσματα του Linux ext2 κάτω από τα Windows.
Άτυχος για εμάς το αρχείο διαμόρφωσης script.bin έχει δυαδική μορφή εντελώς εχθρικό για ανθρώπινη επεξεργασία. Κάποιος χρειάζεται κάποιο είδος εργαλείου λογισμικού για να το αποκρυπτογραφήσει και να κρυφτεί πίσω αφού γίνουν οι απαραίτητες τροποποιήσεις. Και υπάρχει ένα τέτοιο σύνολο εργαλείων. Είναι το περιβόητο SUNXI-TOOLS. Η μύγα στην αλοιφή είναι ότι προορίζεται να λειτουργήσει με Linux και είτε πρέπει να κρατήσουμε ένα αποκλειστικό Linux-μηχάνημα μόνο για να χρησιμοποιήσουμε τα sunxi-εργαλεία, είτε να βρούμε έναν τρόπο για να τα μεταγλωττίσουμε για παράθυρα.
Θα μπορούσα απλά να το μεταγλωττίσω και να μοιραστώ το εκτελέσιμο, αλλά κανείς δεν ξέρει αν θα ήθελαν να κάνουν μια νέα κυκλοφορία και θα χρειαστείτε μια νέα συλλογή το συντομότερο δυνατό. Έτσι αποφάσισα να φτιάξω έναν οδηγό για τον τρόπο σύνταξης του βασικού εργαλείου από τις πηγές. Ας αρχίσουμε.
Βήμα 1: Λήψη εργαλείων Sunxi
Αποκτήστε την πιο πρόσφατη (ή απαραίτητη) έκδοση του πηγαίου κώδικα sunxi-tools. Μεταβείτε στη διεύθυνση URL: https://github.com/linux-sunxi/sunxi-tools/releases και επιλέξτε τη λήψη ως αρχείο zip.
Βήμα 2: Αποσυμπιέστε τον κώδικα πηγής
Μόλις ολοκληρωθεί η λήψη, αποσυμπιέστε τον πηγαίο κώδικα στο φάκελο της επιλογής σας. (περαιτέρω θα υποθέσω ότι αυτός ο φάκελος είναι c: / sunxitools \, οπότε αντικαταστήστε αυτήν τη διαδρομή με τη δική σας διαδρομή).
Βήμα 3: Λήψη κωδικού:: μπλοκ
Εάν έχετε εγκατεστημένο αντίγραφο κάποιου λειτουργικού μεταγλωττιστή c ++ για παράθυρα. και αν γνωρίζετε πώς να το χρησιμοποιήσετε, μπορείτε να προχωρήσετε απευθείας στο βήμα 3. Άλλοι θα πρέπει να αποκτήσουν έναν κατάλληλο μεταγλωττιστή c ++ και ένα κέλυφος (IDE) για να το χρησιμοποιούν άνετα. Η επιλογή μου είναι code:: blocks για Windows μαζί με προεγκατεστημένη εργαλειοθήκη MinGW. Μπορείτε να το πάρετε από εδώ:
Κατεβάστε και εγκαταστήστε το.
Βήμα 4: Δοκιμάστε το IDE σας
Για να ελέγξετε αν τα πράγματα είναι εντάξει, ξεκινήστε κωδικούς αποκλεισμούς, κάντε κλικ στην επιλογή "δημιουργία νέου έργου", επιλέξτε "εφαρμογή κονσόλας", επιλέξτε είτε c ή c ++, πληκτρολογήστε τον τίτλο του έργου ολοκλήρωσης αγοράς, κρατήστε τις προεπιλογές ανέγγιχτες στο επόμενο παράθυρο και κάντε κλικ στο "τέλος" ".
Βήμα 5: Πλήρης δοκιμή
Στη συνέχεια, κάντε κλικ σε ένα πράσινο τρίγωνο στον επάνω πίνακα του IDE ή χρησιμοποιήστε το μενού Build-> Run. Εάν τα πράγματα πήγαν σωστά Θα πρέπει να δείτε ένα μήνυμα από την αυτόματη δημιουργία της εφαρμογής "Hello world" στο μαύρο παράθυρο "DOS".
Εάν όχι, σημαίνει ότι το IDE και ο μεταγλωττιστής δεν λειτουργούν σωστά και θα πρέπει να διερευνήσετε πώς να το ρυθμίσετε σωστά. Πιθανώς θα πρέπει να κατεβάσετε μια άλλη έκδοση των εργαλείων προγραμματισμού ή να ελέγξετε τα δικαιώματά τους στο τείχος προστασίας/λογισμικό προστασίας από ιούς.
Βήμα 6: Δημιουργία νέου έργου
Τώρα θα πρέπει να έχετε μια λειτουργική εργαλειοθήκη προγραμματιστή C/C ++ και τους μη συσκευασμένους πηγαίους κώδικες sunxi-tools στο φάκελο c: / sunxitools / στον υπολογιστή σας. Itsρθε η ώρα να συγκεντρώσουμε ένα έργο. Δημιουργήστε νέο έργο στο IDE σας. Επιλέξτε το απλό έργο C (όχι c ++) του τύπου "εφαρμογή κονσόλας".
Βεβαιωθείτε ότι δημιουργείτε έργο στο φάκελο c: / sunxitools / και όχι σε κάποιο άλλο μέρος. (Οι κωδικοί αποκλεισμοί EG τείνουν να δημιουργούν έναν υποφάκελο με το ίδιο όνομα με το έργο. Έτσι, αν έχετε ονομάσει το έργο σας, πείτε "test" και προσπαθήστε να το τοποθετήσετε σε c: / sunxitools \, μπορεί να καταλήξετε με το έργο να έχει φύγει σε c: / sunxitools / test / εάν δεν είστε αρκετά προσεκτικοί.) Τα εργαλεία Sunxi περιέχουν πολλά βοηθητικά προγράμματα, αλλά για το σκοπό μας θα χρειαστούμε μόνο ένα: το λεγόμενο βοηθητικό πρόγραμμα "fexc".
Βήμα 7: Προσθήκη αρχείων στο έργο
Ακριβώς το βοηθητικό πρόγραμμα "fexc" είναι υπεύθυνο για τη μετατροπή του script.bin σε μορφή κειμένου και για την πίσω μετατροπή σε δυαδικό. Είναι απαραίτητο το εκτελέσιμο αυτού του βοηθητικού προγράμματος να έχει το όνομα "fexc.exe", οπότε είναι καλό αν έχετε ονομάσει το έργο σας ως "fexc". Ωστόσο, μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο όνομα του έργου, αφού μπορείτε πάντα να μετονομάσετε το εκτελέσιμο μετά τη μεταγλώττιση, ή είτε Μπορείτε να επιλέξετε "Project-> Properties" από το επάνω αναπτυσσόμενο μενού και στο εμφανιζόμενο παράθυρο κάντε κλικ στην καρτέλα "Δημιουργία στόχων", και επεξεργαστείτε το πεδίο "Όνομα αρχείου εξόδου" εκεί για να παρακάμψετε το εκτελέσιμο όνομα.
Στο έργο σας που δημιουργήθηκε αυτόματα Θα πρέπει να προσθέσετε μόνο πέντε αρχεία προέλευσης:
- fexc.γ
- script.c
- script_bin.c
- script_fex.γ
- script_uboot.c
και επτά αρχεία κεφαλίδας:
- list.h (μετακινήστε το από c: / sunxitools / include / folder / c: / sunxitools / folder)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- έκδοση.η
Βεβαιωθείτε ότι έχετε αποκλείσει το autogenerated main.c από το έργο, επειδή το fexc.c έχει ήδη τη λειτουργία "int main" σε αυτό. (Θυμηθείτε ότι οποιοδήποτε πρόγραμμα πρέπει να έχει μόνο μία κύρια λειτουργία;).
Όλα τα απαραίτητα αρχεία πηγαίου κώδικα βρίσκονται ήδη στον υποφάκελο, όπου έχετε αποσυσκευάσει τους πηγαίους κώδικες. Τα αρχεία κεφαλίδας αξίζουν ένα ζευγάρι λέξεις, από πού να τα βρείτε. "list.h" - βρίσκεται συνήθως στον υποφάκελο "περιλαμβάνει" του συνόλου των μη συσκευασμένων πηγαίων κωδικών. "version.h" - απλά δημιουργήστε το μόνοι σας. Βάλτε εκεί μια συμβολοσειρά όπως:
#define VERSION "Win32"
Στη συνέχεια, αποθηκεύστε και κλείστε το αρχείο. (Μπορείτε να το διακοσμήσετε με #define και #ifdef's αν θέλετε.)
Εάν προσπαθήσετε τώρα να μεταγλωττίσετε το έργο, θα διαμαρτυρηθείτε για πολλά σφάλματα και ένα αρχείο που λείπει. Τα σφάλματα οφείλονται ως επί το πλείστον σε μια υπερβολική ελευθερία στυλ, που χρησιμοποιούσαν οι προγραμματιστές sunxi-tools και το αρχείο που λείπει είναι η εξάρτηση που δεν περιλαμβάνεται στο πακέτο του πηγαίου κώδικα. Ας το αντιμετωπίσουμε βήμα βήμα.
Βήμα 8: Ζητήστε από το Gcc να ακολουθήσει το πρότυπο γλώσσας ISO C 1999
Προκειμένου ο μεταγλωττιστής να μην παραπονεθεί, το πολύ δωρεάν στυλ προγραμματισμού ορίζει το πρότυπο "с99" της συλλογής. Στα μπλοκ κωδικών μεταβείτε στο μενού "Project -> Build Options" και στο "Compiler Settings -> Compiler Flags" επιλέξτε το πλαίσιο "Have gcc follow the 1999 ISO C standard standard language". Or μπορείτε απλά να προσθέσετε "-std = c99" στη συμβολοσειρά επιλογών του μεταγλωττιστή σας. Τώρα αν προσπαθήσετε να μεταγλωττίσετε το έργο θα πρέπει να αρχίσουν αυτοί οι τόνοι σφαλμάτων και είστε ένα προς ένα με την εξάρτηση που λείπει.
Βήμα 9: Βρείτε τη χαμένη εξάρτηση
Η εξάρτηση που λείπει είναι το αρχείο "mman.h" - η κεφαλίδα κάποιου είδους διαχειριστή μνήμης linux. Τα Windows C εγγενώς δεν έχουν τέτοιο αρχείο, αλλά ευτυχώς υπάρχει μια θύρα των Windows. Μεταβείτε στη διεύθυνση https://github.com/witwall/mman-win32 για Windows. Κατεβάστε το στιγμιότυπο του αποθετηρίου git.
Βήμα 10: Αποσυσκευάστε το Mman
Αποσυσκευάστε τα αρχεία mman.c και mman.h, τοποθετήστε τα στο φάκελο c: / sunxitools \.
Βήμα 11: Και προσθέστε τα στο έργο
Βήμα 12: Σωστό μονοπάτι
Και στο αρχείο "fex.c" raplece line:
#περιλαμβάνω
στο
#include "mman.h"
Σε αυτό το βήμα, ο μεταγλωττιστής σας δεν πρέπει να παραπονιέται για τίποτα και θα λάβετε το fexc.exe μακράς αναμονής ως έξοδο. Μην είσαι χαρούμενος πολύ νωρίς. Το βοηθητικό πρόγραμμα δεν είναι ακόμα πλήρως λειτουργικό. Μπορείτε να το διασφαλίσετε αποκρυπτογραφώντας κάποιο έγκυρο αρχείο script.bin στη μορφή κειμένου - αρχείο script.fex με επακόλουθη κρυπτογράφηση του αρχείου script.fex ξανά στο script.bin. Μπορείτε να σημειώσετε ότι το μέγεθος του script.bin που προκύπτει διαφέρει ελαφρώς από το μέγεθος του αρχικού script.bin. Και αν προσπαθήσετε να αποκρυπτογραφήσετε το αποτέλεσμα για άλλη μια φορά, θα αποτύχει. Ούτε το Orange PI θα λειτουργήσει με αυτό το script.bin. Για να αποκτήσουμε το λειτουργικό βοηθητικό πρόγραμμα πρέπει να εκφορτώσουμε μια βόμβα κώδικα, την οποία κάποιος έχει βάλει στον πηγαίο κώδικα sunxi-tools. Θα είναι το επόμενο βήμα μας.
Βήμα 13: Εξορκισμός
Για να εκφορτώσετε τη βόμβα κωδικού ανοίξτε το αρχείο κώδικα fexc.c και βρείτε εκεί μια συμβολοσειρά κειμένου του επόμενου περιεχομένου:
else if ((έξω = ανοιχτό (όνομα αρχείου, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {
Απλώς αντικαταστήστε το με την επόμενη συμβολοσειρά:
else if ((έξω = ανοιχτό (όνομα αρχείου, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {
Αν όχι τα κακά ψηφία "666" στην πρώτη συμβολοσειρά, θα πίστευα ότι ο κωδικοποιητής μόλις ξέχασε να χρησιμοποιήσει τη σημαία O_BINARY. Αλλά το Number of The Beast διευκρινίζει με σαφήνεια τις προθέσεις του. Φανταστείτε, πόσο έξυπνο είναι: λόγω της λεπτής διαφοράς στον τρόπο επεξεργασίας των αρχείων σε Windows και Linux, η βόμβα δεν έχει καμία επίδραση όταν το βοηθητικό πρόγραμμα καταρτίζεται και χρησιμοποιείται στο Linux. Αλλά καταστρέφει τα πάντα όταν το βοηθητικό πρόγραμμα χρησιμοποιείται στα Windows.
Αφού αφοπλιστεί η βόμβα, μπορείτε τελικά να μεταγλωττίσετε και να χρησιμοποιήσετε με ασφάλεια το βοηθητικό πρόγραμμα fexc στον επιτραπέζιο υπολογιστή σας Windows.
Βήμα 14: ΣΗΜΕΙΩΣΕΙΣ
1) Για να χρησιμοποιήσετε άνετα το βοηθητικό πρόγραμμα fexc, θα πρέπει να λάβετε δύο αρχεία δέσμης:
bin2fex.bat - και - fex2bin.bat.
Μπορείτε να τα προμηθευτείτε από κάποιο σφάλμα fexc.exe build για Windows εκεί έξω, ή μπορείτε να τα πληκτρολογήσετε μόνοι σας:
- Το bin2fex.bat πρέπει να περιέχει "fexc -I bin -O fex script.bin script.fex"
- Το fex2bin.bat πρέπει να περιέχει "fexc -O bin -I fex script.fex script.bin"
2) Εάν είναι δύσκολο να βρείτε τον διαχειριστή mman για Windows, μπορείτε να αποφύγετε τη χρήση του καθόλου. Ωστόσο, χρειάζεται πολύ περισσότερη επεξεργασία του αρχείου fexc.c και απαιτεί τουλάχιστον κάποια γνώση του c. Για τη δική σας ευκολία, μοιράζομαι τον επεξεργασμένο πηγαίο κώδικα του fexc από το sunxi-tools v1.4 ελεύθερο από την εξάρτηση από το mman.h μαζί με το αρχείο έργου codeblocks και με δείγμα script.bin από κάποιο πορτοκαλί pi. Μπορείτε να κατεβάσετε το fexc_nomman.zip
3) Είναι πιθανό ότι σε επακόλουθες εκδόσεις των εργαλείων sunxi θα προσθέσουν μερικές ακόμη εξαρτήσεις. Μη διστάσετε να τα βρείτε μέσω διαδικτύου και να τα προσθέσετε στο έργο συλλογής σας.
5) Τέλος, εδώ είναι η προ -μεταγλωττισμένη έκδοση του fexc.exe για το Win32:
fexc_nomman.zip
Εάν είστε αρκετά τεμπέλης, μη διστάσετε να χρησιμοποιήσετε το ver. Ωστόσο, προσέξτε ότι δεν θα ενημερωθεί εάν/πότε θα είναι διαθέσιμες οι νεότερες εκδόσεις του SunxiTools/Windows. Είναι καλύτερα λοιπόν να μάθουμε πώς να τα μεταγλωττίζουμε παρά να εξαρτάται από κάποια σταθερή δυαδική κατασκευή, υποθέτω.
4) Τα "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", κλπ … είναι τα αντίστοιχα εμπορικά σήματα των αντίστοιχων κατόχων τους.
5) Εάν ο μεταγλωττιστής παραπονιέται ότι δεν βρίσκει λειτουργίες mman, όπως:
απροσδιόριστη αναφορά στο '_imp_mmap'
να γνωρίζετε ότι οι λάτρεις της κοινότητας ανάπτυξης mman έχουν ξεχάσει ότι ο κώδικας μπορεί να μεταγλωττιστεί όχι μόνο ως βιβλιοθήκη dll. Μπορεί επίσης να είναι μια στατική βιβλιοθήκη ή ένας αυτόνομος κώδικας όπως έχουμε εδώ. Για να διορθώσετε το πρόβλημα, επεξεργαστείτε το αρχείο "mman.h" ως εξής:
α) βρείτε τις χορδές:
#if καθορισμένα (MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif
β) προσθέστε τη συμβολοσειρά
#define MMANSHARED_EXPORT
ακριβώς κάτω από τις συμβολοσειρές που βρέθηκαν στο προηγούμενο βήμα
Συνιστάται:
DIY Tripod Under $ 1: 3 Steps
DIY Tripod Under 1 $: Αυτό το διδακτικό θα σας μάθει πώς να φτιάχνετε ένα φανταστικό τρίποδο κάτω από $ 1. Χρησιμοποιώντας μόνο οικιακά αντικείμενα όπως το αλεύρι, μπορείτε να φτιάξετε ένα φανταστικό τρίποδο που είναι ακόμα καλύτερο από το κανονικό τρίποδο, ακόμη και φορητό .. δοκιμάστε το! θα πρέπει πρώτα να δείτε το βίντεο
DIY 2.1 Class AB Hi -Fi Audio Amplifier - Under 5 $: 10 Steps (with Pictures)
DIY 2.1 Class AB Hi -Fi Audio Amplifier - Under 5 $: Γεια σε όλους! Σήμερα θα σας δείξω πώς έφτιαξα έναν ενισχυτή ήχου για ένα σύστημα 2,1 καναλιών (Αριστερά-Δεξιά και Subwoofer). Μετά από σχεδόν 1 μήνα έρευνας, σχεδιασμού και δοκιμών, κατέληξα σε αυτό το σχέδιο. Σε αυτό το διδακτικό, θα περπατήσω
Tiny Micro-controller Project for Under $ 2 Bucks: 11 Steps
Tiny Micro-controller Project for Under $ 2 Bucks: Υπάρχουν πολλά στο Διαδίκτυο για να ξεκινήσετε με Micro ελεγκτές. Υπάρχουν πολλές επιλογές εκεί έξω, τόσοι πολλοί τρόποι προγραμματισμού τους είτε ξεκινάτε με το γυμνό τσιπ, είτε από πίνακες ανάπτυξης είτε από πιο ολοκληρωμένο SOC (System On Chip)
Orange PI HowTo: Ρυθμίστε το για χρήση με οθόνη 5 ιντσών HDMI TFT LCD: 8 βήματα (με εικόνες)
Πορτοκαλί PI Πώς να: Το ρυθμίσετε για χρήση με οθόνη 5 ιντσών HDMI TFT LCD: Εάν ήσασταν αρκετά συνετοί για να παραγγείλετε μια οθόνη HDMI TFT LCD μαζί με το πορτοκαλί σας PI, πιθανώς να αποθαρρύνεστε από τις δυσκολίες στην προσπάθεια να το αναγκάσετε να λειτουργήσει . Ενώ άλλοι δεν μπορούσαν καν να σημειώσουν κανένα εμπόδιο. Το κλειδί είναι ότι υπάρχουν σε
Orange PI HowTo: Ρυθμίστε το για χρήση με οθόνη οπισθοπορείας αυτοκινήτου και προσαρμογέα HDMI σε RCA: 15 βήματα
Πορτοκαλί PI HowTo: Ρυθμίστε το για χρήση με Οθόνη οπισθοπορείας αυτοκινήτου και Προσαρμογέας HDMI σε RCA: ΠΡΟΛΟΓΟΣ. Φαίνεται ότι κάθε άλλος χρησιμοποιεί μεγάλη και ακόμη μεγαλύτερη τηλεόραση ή οθόνη με μια ανόητη πλακέτα Orange PI. Και μοιάζει λίγο υπερβολικό όταν προορίζεται για ενσωματωμένα συστήματα. Εδώ χρειαζόμαστε κάτι μικρό και κάτι φθηνό. Σαν ένα