Innehållsförteckning:
- Steg 1: Ladda ner Sunxi-verktyg
- Steg 2: Packa upp källkoden
- Steg 3: Ladda ner kod:: block
- Steg 4: Testa din IDE
- Steg 5: Slutför testet
- Steg 6: Skapa nytt projekt
- Steg 7: Lägg till filer i Project
- Steg 8: Få Gcc Följ 1999 ISO C Language Standard
- Steg 9: Hitta det saknade beroendet
- Steg 10: Packa upp Mman
- Steg 11: Lägg till dem i projektet
- Steg 12: Rätt sökväg
- Steg 13: Exorcism
- Steg 14: ANMÄRKNINGAR
Video: Orange PI HowTo: Kompilera Sunxi Tool för Windows Under Windows: 14 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
FÖRKRAV:
Du kommer behöva
- En (stationär) dator med Windows.
- En internetanslutning.
- 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
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
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
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
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
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
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
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
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
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.c- och mman.h -filerna, placera dem i mappen c: / sunxitools \.
Steg 11: Lägg till dem i projektet
Steg 12: 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
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
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:
Z80 MBC2 - Kompilera om QP/M Bios och Loader: 6 steg
Z80 MBC2 - Omkompilera QP/M Bios och Loader: Om du, precis som jag, befinner dig i en position där du behöver kompilera om QP/M bios för din MBC2 - så gör du så. Jag dokumenterade processen, hur man kompilerar om den befintliga versionen. Det är upp till dig att göra ändringar i själva Bios
Z80 MBC2 - Kompilera om CPM2.2 Bios: 4 steg
Z80 MBC2 - Kompilera om CPM2.2 Bios: Om du, precis som jag, befinner dig i en position där du behöver kompilera om CP/M bios (2.2) för din MBC2 - så gör du så. mitt fall Jag ville ta bort meddelandet “WARM BOOT” varje gång ett program fanns eller när du gjorde en ctrl-c. Jag en
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Orange PI HowTo: Konfigurera den för användning med en 5 "HDMI TFT LCD -skärm: 8 steg (med bilder)
Orange PI HowTo: Konfigurera den med en 5 "HDMI TFT LCD -skärm: Om du var klok nog att beställa en HDMI TFT LCD -skärm tillsammans med din Orange PI, är du förmodligen avskräckt av svårigheterna att försöka tvinga den att fungera . Medan andra inte ens kunde notera några hinder. Nyckeln är att det finns
Orange PI HowTo: Konfigurera den för användning med bilens bakre bildskärm och HDMI till RCA -adapter: 15 steg
Orange PI HowTo: Konfigurera den med bilens bakre bildskärm och HDMI till RCA -adapter: FOREWORD.Det verkar som om varannan använder stor och ännu större TV -apparat eller bildskärm med ett dumt orange PI -kort. Och det ser ut som lite överkillat när det är avsett för inbäddade system. Här behöver vi något litet och något billigt. Som en