Innehållsförteckning:

Orange PI HowTo: Kompilera Sunxi Tool för Windows Under Windows: 14 steg (med bilder)
Orange PI HowTo: Kompilera Sunxi Tool för Windows Under Windows: 14 steg (med bilder)

Video: Orange PI HowTo: Kompilera Sunxi Tool för Windows Under Windows: 14 steg (med bilder)

Video: Orange PI HowTo: Kompilera Sunxi Tool för Windows Under Windows: 14 steg (med bilder)
Video: Orange Pi Zero 2024, Juli
Anonim
Orange PI HowTo: Kompilera Sunxi -verktyg för Windows under Windows
Orange PI HowTo: Kompilera Sunxi -verktyg för Windows under Windows

FÖRKRAV:

Du kommer behöva

  1. En (stationär) dator med Windows.
  2. En internetanslutning.
  3. En orange PI -skiva.

Det sista är valfritt, men jag är säker på att du redan har det. Annars kommer du inte att läsa detta instruerbart.

När du köper Orange PI -enkelkortsdatorn förblir den bara en bit död metall tills den är korrekt konfigurerad. Och dess huvudsakliga konfigurationsfil: "script.bin" är den första nyckeln för att göra den levande. Den här filen finns i startpartitionen på ditt startbara SD -kort. Och lyckligtvis för oss, i de flesta Linux -distributioner från den officiella webbplatsen (https://www.orangepi.org/downloadresources/) är denna partition FAT32 och kan enkelt ses av vilken Windows -dator som helst. Det förenklar verkligen saker, eftersom det fortfarande inte finns något pålitligt sätt att skriva in i Linux ext2 -partitionerna under Windows.

Otur för oss script.bin konfigurationsfilen har binärt format helt ovänligt för mänsklig redigering. Man behöver någon form av mjukvaruverktyg för att dekryptera det och kryptera tillbaka efter att nödvändiga ändringar har gjorts. Och en sådan verktygssats finns. Det är ökända SUNXI-VERKTYG. Flugan i salvan är att den är avsedd att köras under Linux och vi måste antingen behålla en dedikerad Linux-maskin för att bara använda sunxi-verktygen, eller för att hitta ett sätt att kompilera dem för Windows.

Jag kunde helt enkelt kompilera den och dela den körbara, men man vet aldrig om de skulle vilja göra en ny version och du kommer att behöva en ny sammanställning ASAP. Så jag bestämde mig för att göra en guide för att sammanställa det viktiga verktyget från källorna. Låt oss börja.

Steg 1: Ladda ner Sunxi-verktyg

Ladda ner Sunxi-verktyg
Ladda ner Sunxi-verktyg
Ladda ner Sunxi-verktyg
Ladda ner Sunxi-verktyg

Skaffa den senaste (eller nödvändiga) versionen av källkoden sunxi-tools. Gå till URL: en: https://github.com/linux-sunxi/sunxi-tools/releases och välj att ladda ner som zip-arkiv.

Steg 2: Packa upp källkoden

Packa upp källkoden
Packa upp källkoden

När nedladdningen är klar, packa upp källkoden till mappen du väljer. (vidare antar jag att den här mappen är c: / sunxitools \, så ersätt denna sökväg med din egen sökväg).

Steg 3: Ladda ner kod:: block

Ladda ner kod:: block
Ladda ner kod:: block

Om du har en installerad kopia av någon operativ c ++ - kompilator för Windows. och om du vet hur du använder den kan du direkt gå vidare till steg 3. Andra bör skaffa en korrekt c ++ - kompilator och ett skal (IDE) för att använda den bekvämt. Mitt val är kod:: block för Windows tillsammans med förinstallerad MinGW -verktygskedja. Du kan få det härifrån:

Ladda ner och installera det.

Steg 4: Testa din IDE

Testa din IDE
Testa din IDE

För att testa om det går bra, starta kodblock, klicka på "skapa ett nytt projekt", välj "konsolprogram", välj antingen c eller c ++, skriv titeln på kassaprojektet, håll standardinställningarna orörda i nästa fönster och klicka på "avsluta" ".

Steg 5: Slutför testet

Komplett test
Komplett test

Klicka sedan på en grön triangel på IDE: s toppanel eller använd menypunkten Bygg-> Kör. Om det gick rätt Du borde se ett meddelande från din autogenererade "Hej värld" -applikation i det svarta "DOS" -fönstret.

Om inte, betyder det att IDE och kompilatorn inte fungerar korrekt och du måste undersöka hur du ställer in det rätt. Förmodligen måste du ladda ner en annan version av programmeringsverktygen eller kontrollera deras behörigheter i din brandvägg/antivirusprogram.

Steg 6: Skapa nytt projekt

Skapa nytt projekt
Skapa nytt projekt
Skapa nytt projekt
Skapa nytt projekt
Skapa nytt projekt
Skapa nytt projekt
Skapa nytt projekt
Skapa nytt projekt

Nu bör du ha en operativ C/C ++ programmerings verktygslåda och de uppackade sunxi-tools-källkoderna i c: / sunxitools / mappen på din dator. Det är dags att sätta ihop ett projekt. Skapa nytt projekt i din IDE. Välj det vanliga C -projektet (inte c ++) av typen "konsolprogram".

Se till att du skapar projekt i mappen c: / sunxitools / och inte på någon annan plats. (EG -kodblock tenderar att göra en undermapp med samma namn som projektet har. Så om du har namngett ditt projekt, säg "test" och försök att placera det i c: / sunxitools \, Du kan sluta med att projektet är borta till c: / sunxitools / test / om du inte är tillräckligt uppmärksam.) Sunxi-verktyg innehåller flera verktyg, men för vårt ändamål behöver vi bara ett: det så kallade "fexc" -verktyget.

Steg 7: Lägg till filer i Project

Lägg till filer i projektet
Lägg till filer i projektet

Exakt "fexc" -verktyget ansvarar för konvertering av script.bin till textformat och för bakre konvertering till binärt. Det är viktigt att den körbara av det här verktyget har namnet "fexc.exe", så det är bra om du har döpt ditt projekt till "fexc". Du kan dock använda vilket annat projektnamn som helst, eftersom du alltid kan byta namn på den körbara filen efter sammanställningen, eller så kan du antingen välja "Projekt-> Egenskaper" från den nedre rullgardinsmenyn och klicka på fliken "Bygg mål" i fönstret som visas. och redigera fältet "Utmatningsfilnamn" för att åsidosätta det körbara namnet.

Till ditt autogenererade projekt Du bör bara lägga till fem källfiler:

  • fexc.c
  • skript. c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

och sju rubrikfiler:

  • list.h (flytta den från c: / sunxitools / include / folder till c: / sunxitools / folder)
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • version.h

Var noga med att utesluta den autogenererade main.c från projektet, eftersom fexc.c redan har "int main" -funktionen i den. (Kom ihåg att alla program endast ska ha en huvudfunktion?).

Alla nödvändiga källkodfiler finns redan i undermappen, där du har packat upp källkoderna. Rubrikfilerna förtjänar ett par ord, var man kan få dem. "list.h" - finns vanligtvis i undermappen "inkludera" i den uppackade källkodssatsen. "version.h" - skapa det själv. Sätt dit en sträng som:

#define VERSION "Win32"

Spara och stäng sedan filen. (Du kan dekorera den med #definiera och #ifdef om du vill.)

Om du nu försöker kompilera projektet kommer det att klaga på massor av fel och en saknad fil. Felen beror mest på lite överdriven stilfrihet, de sunxi-verktygsprogrammerare som brukade använda, och den saknade filen är beroende som inte ingår i paketet med källkoden. Låt oss hantera detta steg för steg.

Steg 8: Få Gcc Följ 1999 ISO C Language Standard

Har Gcc Följ 1999 ISO C Language Standard
Har Gcc Följ 1999 ISO C Language Standard

För att kompilatorn inte ska klaga på den för fria programmeringsstilen ställer du in "с99" -standarden för sammanställningen. I kodblock går du till menyn "Projekt -> Byggalternativ" och i "Kompilatorinställningar -> Kompilatorflaggor" markerar du kryssrutan "Låt gcc följa 1999 ISO C språkstandard". Eller så kan du bara lägga till "-std = c99" i din kompilatoralternativsträng. Nu om du försöker kompilera projektet bör dessa massor av fel börja och du är en mot en med det saknade beroendet.

Steg 9: Hitta det saknade beroendet

Hitta det saknade beroendet
Hitta det saknade beroendet

Beroendet som saknas är "mman.h" -fil - rubriken till någon slags Linux -minneshanterare. Windows C har naturligtvis ingen sådan fil, men lyckligtvis finns det en Windows -port på den. Gå till https://github.com/witwall/mman-win32 för Windows. Ladda ner ögonblicksbilden av git -förvaret.

Steg 10: Packa upp Mman

Packa upp Mman
Packa upp Mman

Packa upp mman.c- och mman.h -filerna, placera dem i mappen c: / sunxitools \.

Steg 11: Lägg till dem i projektet

Och lägg till dem i projektet
Och lägg till dem i projektet

Steg 12: Rätt sökväg

Rätt sökväg
Rätt sökväg

Och i filen "fex.c" raplece line:

#omfatta

till

#inkludera "mman.h"

I det här steget bör kompilatorn inte klaga på något och du får den långa väntan fexc.exe som utdata. Var inte glad för tidigt. Verktyget är fortfarande inte fullt fungerande. Du kan säkerställa detta genom att dekryptera en viss giltig script.bin -fil till textformuläret - script.fex -fil och därefter kryptera filen script.fex tillbaka till script.bin. Du kanske noterar att storleken på det resulterande script.bin skiljer sig något från storleken på det ursprungliga script.bin. Och om du försöker dekryptera det resulterande igen kommer det att misslyckas. Varken Orange PI fungerar med detta script.bin. För att få det funktionella verktyget måste vi ladda ut en kodbomb som någon har lagt in i sunxi-verktygs källkod. Det blir vårt nästa steg.

Steg 13: Exorcism

Exorcism
Exorcism

För att ladda ur kodbomben öppnar du fexc.c -kodfilen och hittar där en textsträng med nästa innehåll:

annars om ((out = open (filnamn, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Byt bara ut den med nästa sträng:

annars om ((out = open (filnamn, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Om inte de onda siffrorna "666" i den första strängen skulle jag tro att kodaren precis har glömt att använda O_BINARY -flaggan. Men The of the Beast klargör hans avsikter transparent. Tänk, hur genialt det är: på grund av den subtila skillnaden i hur filerna bearbetas i Windows och Linux har bomben ingen effekt när verktyget sammanställs och används under Linux. Men det förstör allt när verktyget används under Windows.

Efter att bomben har avväpnats kan du äntligen kompilera och säkert använda fexc -verktyget på din Windows stationära dator.

Steg 14: ANMÄRKNINGAR

ANMÄRKNINGAR
ANMÄRKNINGAR

1) För att använda fexc -verktyget bekvämt bör du få två batchfiler:

bin2fex.bat - och - fex2bin.bat.

Du kan hämta dem från en viss fexc.exe -byggnad för Windows där ute, eller så kan du skriva dem själv:

  • bin2fex.bat ska innehålla "fexc -I bin -O fex script.bin script.fex"
  • fex2bin.bat ska innehålla "fexc -O bin -I fex script.fex script.bin"

2) Om det är svårt att hitta mman manager för Windows kan man undvika att använda det alls. Det kräver dock mycket mer redigering av fexc.c -filen och kräver åtminstone viss kunskap om c. För din övertygelse delar jag den redigerade källkoden för fexc från sunxi-tools v1.4 fri från beroendet till mman.h tillsammans med codeblocks projektfil och med exempel script.bin från någon orange pi. Du kan ladda ner fexc_nomman.zip

3) Det är möjligt att de i efterföljande versioner av sunxi-verktyg kommer att lägga till lite mer beroende. Hitta dem gärna över internet och lägg till dem i ditt samlingsprojekt.

5) Slutligen här är den förkompilerade versionen av fexc.exe för Win32:

fexc_nomman.zip

Om du är tillräckligt lat kan du använda ver. Se dock till att det inte kommer att uppdateras om/när de nyare versionerna av SunxiTools/Windows kommer att finnas tillgängliga. Så det är bättre att lära sig att kompilera dem än att vara beroende av någon fast binär byggnad, antar jag.

4) "Orange PI", "Code:: Block", "Windows", "Linux", "Sunxi-Tools", "Allwinner", etc … är korrespondentens varumärken som tillhör respektive ägare.

5) Om din kompilator klagar över att du inte hittar mman -funktioner, som:

odefinierad referens till '_imp_mmap'

var medveten om att definiera älskare av mman -utvecklingsgemenskapen har glömt att koden kan sammanställas inte bara som dll -bibliotek. Det kan också vara ett statiskt bibliotek eller en fristående kod som vi har här. För att åtgärda problemet, redigera filen "mman.h" enligt följande:

a) hitta strängarna:

#if definierat (MMAN_LIBRARY)

#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif

b) lägg till strängen

#define MMANSHARED_EXPORT

strax under strängarna som hittades vid föregående steg

Rekommenderad: