Sommario:
- Passaggio 1: scarica gli strumenti Sunxi
- Passaggio 2: decomprimi il codice sorgente
- Passaggio 3: Scarica il codice::blocks
- Passaggio 4: prova il tuo IDE
- Passaggio 5: test completo
- Passaggio 6: crea un nuovo progetto
- Passaggio 7: aggiungi file al progetto
- Passaggio 8: fare in modo che Gcc segua lo standard del linguaggio ISO C del 1999
- Passaggio 9: trova la dipendenza mancante
- Passaggio 10: disimballare l'Mman
- Passaggio 11: e aggiungili al progetto
- Passaggio 12: percorso corretto
- Fase 13: Esorcismo
- Passaggio 14: NOTE
Video: Orange PI HowTo: Compilare lo strumento Sunxi per Windows in Windows: 14 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
PREQUISITI:
Avrai bisogno
- Un computer (desktop) con Windows.
- Una connessione Internet.
- Una scheda PI arancione.
L'ultimo è facoltativo, ma sono sicuro che lo possiedi già. Altrimenti non leggerai questo istruibile.
Quando acquisti il computer a scheda singola Orange PI, rimane solo un pezzo di metallo morto finché non viene configurato correttamente. E il suo file di configurazione principale: "script.bin" è la prima chiave per renderlo vivo. Questo file si trova nella partizione di avvio della scheda SD avviabile. E fortunatamente per noi, nella maggior parte delle distribuzioni Linux dal sito ufficiale (https://www.orangepi.org/downloadresources/) questa partizione è FAT32 e può essere facilmente vista da qualsiasi computer Windows. Semplifica davvero le cose, dal momento che non esiste ancora un modo affidabile per scrivere nelle partizioni Linux ext2 da Windows.
Sfortunatamente per noi, il file di configurazione script.bin ha un formato binario completamente ostile per l'editing umano. È necessario un qualche tipo di strumento software per decrittografarlo e crittografarlo nuovamente dopo che sono state apportate le modifiche necessarie. E un tale set di strumenti esiste. È famigerato SUNXI-TOOLS. L'unico neo è che è pensato per funzionare sotto Linux e dobbiamo mantenere una macchina Linux dedicata solo per usare gli strumenti sunxi, o trovare un modo per compilarli per Windows.
Potrei semplicemente compilarlo e condividere l'eseguibile, ma non si sa mai se vorrebbe fare una nuova versione e Avrai bisogno di una nuova compilazione al più presto. Così ho deciso di creare una guida su come compilare lo strumento essenziale dai sorgenti. Iniziamo.
Passaggio 1: scarica gli strumenti Sunxi
Ottieni l'ultima (o necessaria) versione del codice sorgente di sunxi-tools. Vai all'URL: https://github.com/linux-sunxi/sunxi-tools/releases e scegli di scaricare come archivio zip.
Passaggio 2: decomprimi il codice sorgente
Una volta terminato il download, decomprimi il codice sorgente nella cartella di tua scelta. (inoltre assumerò che questa cartella sia c:\sunxitools\, quindi sostituisci questo percorso con il tuo percorso).
Passaggio 3: Scarica il codice::blocks
Se hai una copia installata di un compilatore c++ operativo per Windows. e se sai come usarlo, puoi procedere direttamente al passaggio 3. Altri dovrebbero ottenere un compilatore c++ appropriato e una shell (IDE) per usarlo comodamente. La mia scelta è code::blocks per Windows insieme alla toolchain MinGW preinstallata. Puoi ottenerlo da qui:
Scaricalo e installalo.
Passaggio 4: prova il tuo IDE
Per verificare se le cose vanno bene, avvia i blocchi di codice, fai clic su "crea un nuovo progetto", scegli "applicazione console", scegli c o c++, digita il titolo del progetto di checkout, mantieni intatte le impostazioni predefinite nella finestra successiva e fai clic su "finire ".
Passaggio 5: test completo
Quindi fare clic su un triangolo verde nel pannello superiore dell'IDE o utilizzare il punto di menu Build->Esegui. Se le cose sono andate bene Dovresti vedere un messaggio dalla tua applicazione "Hello world" generata automaticamente nella finestra nera "DOS".
In caso contrario, significa che l'IDE e il compilatore non funzionano correttamente e dovrai indagare su come impostarlo correttamente. Probabilmente dovrai scaricare un'altra versione degli strumenti di programmazione o verificarne i permessi nel tuo software firewall/antivirus.
Passaggio 6: crea un nuovo progetto
Ora dovresti avere un toolkit per programmatori C/C++ operativo e i codici sorgente di sunxi-tools scompattati nella cartella c:\sunxitools\ sul tuo computer. È tempo di mettere insieme un progetto. Crea un nuovo progetto nel tuo IDE. Scegli il semplice progetto C (non c++) del tipo "applicazione console".
Assicurati di creare il progetto nella cartella c:\sunxitools\ e non in un altro posto. (Ad esempio i blocchi di codice tendono a creare una sottocartella con lo stesso nome del progetto. Quindi, se hai chiamato il tuo progetto, dì "test" e prova a inserirlo in c:\sunxitools\, potresti finire con il progetto andato a c:\sunxitools\test\ se non sei abbastanza attento.) Sunxi-tools contiene diverse utilità, ma per il nostro scopo ne avremo bisogno solo una: la cosiddetta utilità "fexc".
Passaggio 7: aggiungi file al progetto
Esattamente l'utility "fexc" è responsabile della conversione di script.bin in formato testo e della conversione in binario. È essenziale che l'eseguibile di questa utility abbia il nome "fexc.exe", quindi va bene se hai chiamato il tuo progetto come "fexc". Tuttavia è possibile utilizzare qualsiasi altro nome del progetto, poiché è sempre possibile rinominare l'eseguibile dopo la compilazione, oppure è possibile scegliere "Progetto->Proprietà" dal menu a discesa in alto e nella finestra visualizzata fare clic sulla scheda "Costruisci obiettivi", e modifica il campo "Nome file di output" per sovrascrivere il nome dell'eseguibile.
Al tuo progetto autogenerato dovresti aggiungere solo cinque file sorgente:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
e sette file di intestazione:
- list.h (spostalo dalla cartella c:\sunxitools\include\ nella cartella c:\sunxitools)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- versione.h
Assicurati di escludere il main.c autogenerato dal progetto, perché fexc.c contiene già la funzione "int main". (Ricordate che qualsiasi programma dovrebbe avere una sola funzione principale?).
Tutti i file del codice sorgente necessari sono già nella sottocartella, dove hai decompresso i codici sorgente in. I file di intestazione meritano un paio di parole, dove trovarli. "list.h" - di solito si trova nella sottocartella "include" del set di codici sorgente decompressi. "version.h" - crealo tu stesso. Metti lì una stringa come:
#define VERSIONE "Win32"
Quindi salva e chiudi il file. (Puoi decorarlo con #define e #ifdef se vuoi.)
Se ora provi a compilare il progetto, si lamenterà di molti errori e di un file mancante. Gli errori sono per lo più dovuti a un po' di eccessiva libertà di stile, i programmatori sunxi-tools erano soliti applicare, e il file mancante è la dipendenza non inclusa nel pacchetto del codice sorgente. Affrontiamo questo passo dopo passo.
Passaggio 8: fare in modo che Gcc segua lo standard del linguaggio ISO C del 1999
Affinché il compilatore non si lamenti dello stile di programmazione troppo libero, imposta lo standard "с99" della compilazione. Nei blocchi di codice vai al menu "Progetto -> Opzioni di compilazione" e in "Impostazioni del compilatore -> Flag del compilatore" seleziona la casella di controllo "Fai in modo che gcc segua lo standard del linguaggio ISO C del 1999". Oppure puoi semplicemente aggiungere "-std=c99" nella stringa delle opzioni del compilatore. Ora, se provi a compilare il progetto, quelle tonnellate di errori dovrebbero sparire e sei uno a uno con la dipendenza mancante.
Passaggio 9: trova la dipendenza mancante
La dipendenza mancante è il file "mman.h" - l'intestazione di un qualche tipo di gestore di memoria Linux. Windows C non ha nativamente tale file, ma fortunatamente ne esiste una porta Windows. Vai a https://github.com/witwall/mman-win32 per Windows. Scarica l'istantanea del repository git.
Passaggio 10: disimballare l'Mman
Decomprimi i file mman.c e mman.h, mettili nella cartella c:\sunxitools\.
Passaggio 11: e aggiungili al progetto
Passaggio 12: percorso corretto
E nel file "fex.c" linea raplece:
#includere
al
#include "mman.h"
A questo punto il tuo compilatore non dovrebbe lamentarsi di nulla e otterrai la lunga attesa fexc.exe come output. Non essere felice troppo presto. L'utilità non è ancora completamente funzionante. Puoi assicurarti ciò decrittografando alcuni file script.bin validi nel formato di testo - file script.fex con conseguente crittografia del file script.fex nuovamente in script.bin. Puoi notare che la dimensione dello script.bin risultante differisce leggermente dalla dimensione dello script.bin originale. E se provi a decifrare il risultato ancora una volta, fallirà. Né l'Orange PI funzionerà con questo script.bin. Per ottenere l'utilità funzionale dobbiamo scaricare una bomba di codice, che qualcuno ha inserito nel codice sorgente di sunxi-tools. Sarà il nostro prossimo passo.
Fase 13: Esorcismo
Per scaricare la bomba di codice, apri il file di codice fexc.c e trova lì una stringa di testo del contenuto successivo:
else if ((out = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) {
Basta sostituirlo con la stringa successiva:
else if ((out = open(filename, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 512))<0){
Se non le cifre malvagie "666" nella prima stringa, penserei che il programmatore si sia appena dimenticato di usare il flag O_BINARY. Ma il Numero della Bestia chiarisce le sue intenzioni in modo trasparente. Vai a capire, quanto è ingegnoso: a causa della sottile differenza nel modo in cui i file vengono elaborati in Windows e Linux, la bomba non ha alcun effetto quando l'utilità viene compilata e utilizzata sotto Linux. Ma rovina tutto quando l'utilità viene utilizzata in Windows.
Dopo che la bomba è stata disarmata, puoi finalmente compilare e utilizzare in sicurezza l'utilità fexc sul tuo computer desktop Windows.
Passaggio 14: NOTE
1) Per utilizzare comodamente l'utilità fexc, dovresti ottenere due file batch:
bin2fex.bat - e - fex2bin.bat.
Puoi ottenerli da qualche build faily fexc.exe per Windows là fuori, oppure puoi digitarli tu stesso:
- bin2fex.bat dovrebbe contenere "fexc -I bin -O fex script.bin script.fex"
- fex2bin.bat dovrebbe contenere "fexc -O bin -I fex script.fex script.bin"
2) Se è difficile trovare il manager di mman per Windows, si può evitare del tutto il suo utilizzo. Tuttavia, richiede molte più modifiche al file fexc.c e richiede almeno una certa conoscenza di c. Per tua comodità condivido il codice sorgente modificato di fexc da sunxi-tools v1.4 libero dalla dipendenza da mman.h insieme al file di progetto codeblocks e con script.bin di esempio da alcuni pi arancione. Puoi scaricare fexc_nomman.zip
3) È possibile che nelle versioni successive di sunxi-tools si aggiungano delle dipendenze in più. Sentiti libero di trovarli su Internet e di aggiungerli al tuo progetto di compilation.
5) Infine ecco la versione precompilata di fexc.exe per Win32:
fexc_nomman.zip
Se sei abbastanza pigro, sentiti libero di usare ver. Tuttavia, attenzione che non verrà aggiornato se/quando saranno disponibili le versioni più recenti di SunxiTools/Windows. Quindi è meglio imparare a compilarli piuttosto che dipendere da qualche build binaria fissa, presumo.
4) "Orange PI", "Code::Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", ecc… sono i corrispondenti marchi dei rispettivi proprietari.
5) Se il compilatore si lamenta di non trovare funzioni mman, come:
riferimento non definito a '_imp_mmap'
tieni presente che gli amanti della definizione della comunità di sviluppo mman hanno dimenticato che il codice può essere compilato non solo come libreria dll. Può anche essere una libreria statica o un codice autonomo come abbiamo qui. Per risolvere il problema, modifica il file "mman.h" come segue:
a) trova le stringhe:
#se definito(MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec(dllexport) #else #define MMANSHARED_EXPORT _declspec(dllimport) #endif
b) aggiungi la stringa
#define MMANSHARED_EXPORT
appena sotto le stringhe trovate al passaggio precedente
Consigliato:
Il Synthfonio - uno strumento musicale per tutti: 12 passaggi (con immagini)
Il Synthfonio - uno strumento musicale per tutti: mi piacciono i sintetizzatori e i controller MIDI, ma sono pessimo a suonare le tastiere. Mi piace scrivere musica, ma per suonare effettivamente quella musica devi aver imparato a suonare uno strumento. Questo richiede tempo. Tempo che molte persone non hanno, un
Strumento per la fotografia della testa panoramica motorizzata fai-da-te: 6 passaggi (con immagini)
Strumento per la fotografia della testa panoramica motorizzata fai-da-te: Ciao In questo progetto, avevo creato uno strumento per la fotografia panoramica molto utile. Questa testa panoramica motorizzata è realizzata in modo tale da essere universale e qualsiasi telecamera può essere montata con una filettatura universale standard da un quarto di pollice. La testa panoramica può essere montata su un
Orange PI HowTo: configurarlo per l'uso con un display LCD TFT HDMI da 5 ": 8 passaggi (con immagini)
Orange PI HowTo: Configurarlo per l'utilizzo con un display LCD TFT HDMI da 5": Se sei stato abbastanza prudente da ordinare un display LCD TFT HDMI insieme al tuo Orange PI, probabilmente sei scoraggiato dalle difficoltà nel tentativo di forzarlo a funzionare . Mentre altri potrebbero anche non notare alcun ostacolo. La chiave è che ci sono almeno
Orange PI HowTo: configurarlo per l'uso con il display retrovisore dell'auto e l'adattatore da HDMI a RCA: 15 passaggi
Orange PI HowTo: configurarlo per l'uso con il display retrovisore dell'auto e l'adattatore da HDMI a RCA: PREFAZIONE. Sembra che tutti gli altri utilizzino un televisore o un monitor di grandi dimensioni e ancora più grandi con una stupida scheda Orange PI. E sembra un po' eccessivo se pensato per i sistemi embedded. Qui abbiamo bisogno di qualcosa di piccolo e di poco costoso. Come un
Compilare MadMAC: 4 passaggi
Compilazione di MadMAC: breve istruzioni per i paranoici sulla compilazione di MadMAC