Innholdsfortegnelse:

Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 Steps (with Pictures)
Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 Steps (with Pictures)

Video: Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 Steps (with Pictures)

Video: Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 Steps (with Pictures)
Video: Съемка таймлапс роликов с помощью Orange pi zero и вебки 2024, Juli
Anonim
Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows
Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows

KRAV:

Du vil trenge

  1. En (stasjonær) datamaskin som kjører Windows.
  2. En Internett -tilkobling.
  3. Et oransje PI -kort.

Det siste er valgfritt, men jeg er sikker på at du allerede har det. Ellers vil du ikke lese dette instruerbart.

Når du kjøper Orange PI -enbrettet datamaskin, forblir den bare et stykke dødt metall til den er konfigurert riktig. Og hovedkonfigurasjonsfilen: "script.bin" er den første nøkkelen for å gjøre den levende. Denne filen ligger i oppstartspartisjonen på ditt oppstartbare SD -kort. Og heldigvis for oss, i de fleste Linux -distribusjoner fra det offisielle nettstedet (https://www.orangepi.org/downloadresources/) er denne partisjonen FAT32 og kan lett sees av hvilken som helst Windows -datamaskin. Det forenkler virkelig ting, siden det fortsatt ikke er noen pålitelig måte å skrive inn i Linux ext2 -partisjonene fra under Windows.

Uheldig for oss har script.bin -konfigurasjonsfilen binært format helt uvennlig for menneskelig redigering. Man trenger et slags programvareverktøy for å dekryptere det og kryptere tilbake etter at de nødvendige endringene er gjort. Og et slikt verktøysett eksisterer. Det er beryktet SUNXI-VERKTØY. Fluen i salven er at den er ment å kjøre under Linux, og vi må enten beholde en dedikert Linux-maskin for bare å bruke sunxi-verktøyene, eller for å finne en måte å kompilere dem for Windows.

Jeg kan ganske enkelt kompilere den og dele den kjørbare, men man vet aldri om de vil lage en ny utgave, og du trenger en ny samling ASAP. Så jeg bestemte meg for å lage en veiledning for hvordan jeg skal kompilere det viktige verktøyet fra kildene. La oss komme i gang.

Trinn 1: Last ned Sunxi-verktøy

Last ned Sunxi-verktøy
Last ned Sunxi-verktøy
Last ned Sunxi-verktøy
Last ned Sunxi-verktøy

Få den nyeste (eller nødvendige) versjonen av sunxi-tools sourcecode. Gå til URL: https://github.com/linux-sunxi/sunxi-tools/releases og velg å laste ned som zip-arkiv.

Trinn 2: Pakk ut kildekoden

Pakk ut kildekoden
Pakk ut kildekoden

Når nedlastingen er fullført, pakker du ut kildekoden til mappen du ønsker. (videre vil jeg anta at denne mappen er c: / sunxitools \, så bytt ut denne banen med din egen bane).

Trinn 3: Last ned kode:: blokker

Last ned kode:: blokker
Last ned kode:: blokker

Hvis du har en installert kopi av en operativ c ++ - kompilator for Windows. og hvis du vet hvordan du bruker den, kan du gå direkte til trinn 3. Andre bør få en skikkelig c ++ - kompilator og et skall (IDE) for å bruke den komfortabelt. Valget av mitt er kode:: blokker for Windows sammen med forhåndsinstallert MinGW verktøykjede. Du kan få det herfra:

Last ned og installer den.

Trinn 4: Test IDE -en din

Test IDE -en din
Test IDE -en din

For å teste om det går bra, start kodeblokker, klikk på "opprett et nytt prosjekt", velg "konsollapplikasjon", velg enten c eller c ++, skriv inn tittelen på utsjekkingsprosjektet, behold standardene urørt i neste vindu og klikk "fullfør ".

Trinn 5: Fullfør testen

Fullstendig test
Fullstendig test

Klikk deretter på en grønn trekant på toppanelet på IDE eller bruk menypunktet Bygg-> Kjør. Hvis det gikk som det skulle. Du bør se en melding fra din autogenererte "Hei verden" -applikasjon i det svarte "DOS" -vinduet.

Hvis ikke, betyr det at IDE og kompilatoren ikke fungerer som de skal, og du må undersøke hvordan du gjør det riktig. Sannsynligvis må du laste ned en annen versjon av programmeringsverktøyene eller kontrollere tillatelsene i brannmuren/antivirusprogramvaren.

Trinn 6: Opprett nytt prosjekt

Lag nytt prosjekt
Lag nytt prosjekt
Lag nytt prosjekt
Lag nytt prosjekt
Lag nytt prosjekt
Lag nytt prosjekt
Lag nytt prosjekt
Lag nytt prosjekt

Nå bør du ha en operativ C/C ++ programmerers verktøykasse og de utpakkede sunxi-tools kildekodene i c: / sunxitools / mappen på datamaskinen din. Det er på tide å sette sammen et prosjekt. Lag et nytt prosjekt i IDE -en din. Velg vanlig C (ikke c ++) prosjekt av typen "konsollapplikasjon".

Sørg for at du oppretter prosjekt i mappen c: / sunxitools / og ikke på et annet sted. (EG -kodeblokker pleier å lage en undermappe med samme navn som prosjektet har. Så hvis du har navngitt prosjektet ditt, si "test", og prøv å plassere det i c: / sunxitools \, Du kan ende opp med at prosjektet er borte til c: / sunxitools / test / hvis du ikke er oppmerksom nok.) Sunxi-verktøy inneholder flere verktøy, men for vårt formål trenger vi bare ett: det såkalte "fexc" -verktøyet.

Trinn 7: Legg til filer i Project

Legg til filer i Project
Legg til filer i Project

Nøyaktig "fexc" -verktøyet er ansvarlig for konvertering av script.bin til tekstformat og for bakre konvertering til binær. Det er viktig at den kjørbare av dette verktøyet har navnet "fexc.exe", så det er bra hvis du har kalt prosjektet ditt som "fexc". Du kan imidlertid bruke et hvilket som helst annet navn på prosjektet, siden du alltid kan gi nytt navn til den kjørbare filen etter kompilering, eller enten kan du velge "Prosjekt-> Egenskaper" fra den øverste rullegardinmenyen, og i vinduet som vises, klikker du på "Bygg mål" -fanen, og rediger feltet "Utdata filnavn" for å overstyre det kjørbare navnet.

Til ditt autogenererte prosjekt Du bør bare legge til fem kildefiler:

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

og syv topptekster:

  • list.h (flytt den fra c: / sunxitools / include / folder til c: / sunxitools / folder)
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • versjon. h

Sørg for å ekskludere autogenerert main.c fra prosjektet, fordi fexc.c allerede har "int main" -funksjonen i det. (Husk at ethvert program bare skal ha en hovedfunksjon?).

Alle nødvendige kildekodefiler er allerede i undermappen, der du har pakket ut kildekodene. Toppfilene fortjener et par ord, hvor du kan få dem. "list.h" - er vanligvis i "inkludere" -undermappen i det pakkede kildekodesettet. "version.h" - bare lag det selv. Sett det en streng som:

#define VERSJON "Win32"

Lagre og lukk deretter filen. (Du kan dekorere den med #define's og #ifdef's hvis du vil.)

Hvis du nå prøver å kompilere prosjektet, vil det klage på mange feil og en fil som mangler. Feilene skyldes hovedsakelig litt overdreven stilfrihet, sunxi-tools-programmererne pleide å bruke, og den manglende filen er avhengigheten som ikke er inkludert i pakken med kildekoden. La oss håndtere dette trinn for trinn.

Trinn 8: La Gcc følge 1999 ISO C Language Standard

Ha Gcc Følg ISO ISO Language Language 1999
Ha Gcc Følg ISO ISO Language Language 1999

For at kompilatoren ikke skal klage, setter den for gratis programmeringsstilen "с99" standarden for samlingen. I kodeblokker, gå til "Prosjekt -> Byggealternativer" -menyen og i "Kompilatorinnstillinger -> Kompilatorflagg" merker du av for "La gcc følge 1999 ISO C språkstandarden". Eller du kan bare legge til "-std = c99" i strengen for kompilatoralternativer. Hvis du prøver å kompilere prosjektet, bør de mange feilene begynne, og du er en mot en med den manglende avhengigheten.

Trinn 9: Finn den manglende avhengigheten

Finn den manglende avhengigheten
Finn den manglende avhengigheten

Den manglende avhengigheten er "mman.h" -fil - overskriften til en slags linux -minnebehandler. Windows C har opprinnelig ingen slik fil, men det er heldigvis en Windows -port på den. Gå til https://github.com/witwall/mman-win32 for Windows. Last ned øyeblikksbildet av git -depotet.

Trinn 10: Pakk ut Mman

Pakk ut Mman
Pakk ut Mman

Pakk ut mman.c og mman.h filene, plasser dem i mappen c: / sunxitools \.

Trinn 11: Og legg dem til i prosjektet

Og legg dem til i prosjektet
Og legg dem til i prosjektet

Trinn 12: Riktig bane

Riktig bane
Riktig bane

Og i filen "fex.c" raplece line:

#inkludere

til

#inkludere "mman.h"

På dette trinnet skulle kompilatoren ikke klage noe, og du får fexc.exe med lang ventetid som utdata. Ikke vær glad for tidlig. Verktøyet er fremdeles ikke fullt funksjonelt. Du kan sikre dette ved å dekryptere en gyldig script.bin -fil til tekstskjemaet - script.fex -fil med påfølgende kryptering av script.fex -filen tilbake til script.bin. Du kan merke at størrelsen på det resulterende script.bin avviker noe fra størrelsen på det originale script.bin. Og hvis du prøver å dekryptere det resulterende igjen, vil det mislykkes. Verken Orange PI vil fungere med dette script.bin. For å få det funksjonelle verktøyet må vi tømme en kodebombe som noen har lagt inn i sunxi-tools kildekoden. Det blir vårt neste trinn.

Trinn 13: Eksorsisme

Eksorsisme
Eksorsisme

For å tømme kodebomben, åpne fexc.c -kodefilen og finn en tekststreng med neste innhold:

annet hvis ((ut = åpent (filnavn, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Bare erstatt den med den neste strengen:

annet hvis ((ut = åpent (filnavn, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Hvis ikke de onde sifrene "666" i den første strengen vil jeg tro at koderen nettopp har glemt å bruke O_BINARY flagget. Men Antallet av dyret tydeliggjør intensjonene hans på en åpen måte. Finn ut, hvor genialt det er: på grunn av den subtile forskjellen i hvordan filene behandles i Windows og Linux, har bomben ingen effekt når verktøyet kompileres og brukes under Linux. Men det ødelegger alt når verktøyet brukes under Windows.

Etter at bomben har blitt avvæpnet, kan du endelig kompilere og trygt bruke fexc -verktøyet på din stasjonære Windows -datamaskin.

Trinn 14: MERKNADER

MERKNADER
MERKNADER

1) For å bruke fexc -verktøyet komfortabelt, bør du få to batchfiler:

bin2fex.bat - og - fex2bin.bat.

Du kan få dem fra en fabelaktig fexc.exe -build for Windows der ute, eller du kan skrive dem selv:

  • bin2fex.bat skal inneholde "fexc -I bin -O fex script.bin script.fex"
  • fex2bin.bat skal inneholde "fexc -O bin -I fex script.fex script.bin"

2) Hvis det er vanskelig å finne mman manager for Windows, kan man unngå bruk i det hele tatt. Imidlertid krever det mye mer redigering av fexc.c -filen og krever minst litt kunnskap om c. For din overbevisning deler jeg den redigerte kildekoden til fexc fra sunxi-tools v1.4 fri fra avhengigheten til mman.h sammen med codeblocks prosjektfil og med eksempel script.bin fra noen oransje pi. Du kan laste ned fexc_nomman.zip

3) Det er mulig at de i påfølgende versjoner av sunxi-verktøy vil legge til flere avhengigheter. Finn dem gjerne over internett og legg dem til i ditt samlingsprosjekt.

5) Endelig er her den forhåndskompilerte versjonen av fexc.exe for Win32:

fexc_nomman.zip

Hvis du er lat nok, bruk gjerne ver. Vær imidlertid oppmerksom på at det ikke vil bli oppdatert om/når de nyere versjonene av SunxiTools/Windows vil være tilgjengelig. Så det er bedre å lære å kompilere dem enn å stole på en fast binær konstruksjon, antar jeg.

4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", etc … er korrespondentens varemerker for sine respektive eiere.

5) Hvis kompilatoren din klager over at du ikke finner mman -funksjoner, for eksempel:

udefinert referanse til '_imp_mmap'

Vær oppmerksom på at definere elskere av mman utviklingssamfunn har glemt at koden kan kompileres ikke bare som dll -bibliotek. Det kan også være et statisk bibliotek eller en frittstående kode som vi har her. For å fikse problemet, rediger "mman.h" -fil som følger:

a) finn strengene:

#if definert (MMAN_LIBRARY)

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

b) legg til strengen

#definere MMANSHARED_EXPORT

like under strengene som ble funnet på forrige trinn

Anbefalt: