Sadržaj:
- Korak 1: Preuzmite Sunxi-alate
- Korak 2: Raspakirajte izvorni kod
- Korak 3: Preuzmite Code:: blocks
- Korak 4: Testirajte svoj IDE
- Korak 5: Dovršite test
- Korak 6: Izradite novi projekt
- Korak 7: Dodajte datoteke u projekt
- Korak 8: Neka Gcc slijedi jezični standard ISO C iz 1999. godine
- Korak 9: Pronađite nedostajuću ovisnost
- Korak 10: Raspakirajte Mman
- Korak 11: Dodajte ih u projekt
- Korak 12: Ispravan put
- Korak 13: Egzorcizam
- Korak 14: BILJEŠKE
Video: Orange PI HowTo: Sastavite Sunxi alat za Windows u sustavu Windows: 14 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
PREDUVJETI:
Trebat će vam
- Računalo (stolno računalo) sa sustavom Windows.
- Internet veza.
- Narančasta PI ploča.
Posljednje nije obavezno, ali siguran sam da ga već imate. Inače nećete čitati ove upute.
Kad kupite jednokrilno računalo Orange PI, ono ostaje samo komad mrtvog metala sve dok se pravilno ne konfigurira. Njegova glavna konfiguracijska datoteka: "script.bin" prvi je ključ koji ga oživljava. Ova datoteka se nalazi na particiji za pokretanje vaše SD kartice za pokretanje. Srećom po nas, u većini distribucija Linuxa sa službene stranice (https://www.orangepi.org/downloadresources/) ova particija je FAT32 i lako ju je vidjeti bilo koje računalo sa sustavom Windows. To doista pojednostavljuje stvari jer još uvijek nema pouzdanog načina za pisanje na Linux ext2 particije ispod Windowsa.
Na našu nesreću, konfiguracijska datoteka script.bin ima binarni format potpuno neprikladan za ljudsko uređivanje. Potrebna je neka vrsta softverskog alata za njegovo dešifriranje i kriptiranje nakon što su izvršene potrebne izmjene. A takav skup alata postoji. To je zloglasni SUNXI-ALAT. Zanimljivo je to što se namjerava izvesti pod Linuxom i moramo ili zadržati namjenski Linux stroj samo za korištenje sunxi alata ili pronaći način kako ih sastaviti za Windows.
Mogao sam ga jednostavno sastaviti i podijeliti izvršnu datoteku, ali nikad se ne zna bi li htjeli napraviti novo izdanje i trebat će vam nova kompilacija što je prije moguće. Stoga sam odlučio napraviti vodič kako sastaviti bitni alat iz izvora. Započnimo.
Korak 1: Preuzmite Sunxi-alate
Nabavite najnoviju (ili neophodnu) verziju izvornog koda sunxi-alata. Idite na URL: https://github.com/linux-sunxi/sunxi-tools/releases i odaberite preuzimanje kao zip arhivu.
Korak 2: Raspakirajte izvorni kod
Nakon što preuzimanje završi, raspakirajte izvorni kod u mapu po vašem izboru. (nadalje ću pretpostaviti da je ova mapa c: / sunxitools \, pa zamijenite ovu stazu svojom stazom).
Korak 3: Preuzmite Code:: blocks
Ako imate instaliranu kopiju nekog operativnog c ++ kompajlera za Windows. i ako znate kako ga koristiti, možete izravno prijeći na korak 3. Ostali bi trebali nabaviti odgovarajući c ++ prevoditelj i ljusku (IDE) za udobnu upotrebu. Moj izbor je code::blocks za Windows zajedno s unaprijed instaliranim MinGW lancem alata. Možete ga preuzeti odavde:
Preuzmite ga i instalirajte.
Korak 4: Testirajte svoj IDE
Da biste provjerili je li sve u redu, pokrenite blokove kodova, kliknite "izradi novi projekt", odaberite "konzolna aplikacija", odaberite c ili c ++, upišite naslov projekta odjave, zadržite zadane vrijednosti netaknutima u sljedećem prozoru i kliknite "završi" ".
Korak 5: Dovršite test
Zatim kliknite zeleni trokut na gornjoj ploči IDE-a ili upotrijebite točku izbornika Build-> Run. Ako su stvari krenule kako treba, trebali biste vidjeti poruku iz svoje automatski generirane aplikacije "Hello world" u crnom "DOS" prozoru.
Ako ne, to znači da IDE i prevoditelj ne rade ispravno i morat ćete istražiti kako to ispravno postaviti. Vjerojatno ćete morati preuzeti drugu verziju programskih alata ili provjeriti njihova dopuštenja u svom vatrozidu/antivirusnom softveru.
Korak 6: Izradite novi projekt
Sada biste na računalu trebali imati operativni komplet programera za C/C ++ i raspakirane izvorne kodove sunxi alata u mapi c: / sunxitools \. Vrijeme je za sastavljanje projekta. Izradite novi projekt u svom IDE -u. Odaberite običan C (ne c ++) projekt tipa "konzolna aplikacija".
Provjerite stvarate li projekt u mapi c: / sunxitools \, a ne na nekom drugom mjestu. (EG kodni blokovi obično stvaraju podmapu s istim imenom kao i projekt. Stoga, ako ste nazvali svoj projekt, recite "test" i pokušajte ga postaviti u c: / sunxitools \, možda ćete projekt završiti u c: / sunxitools / test / ako niste dovoljno pažljivi.) Sunxi alati sadrže nekoliko pomoćnih programa, ali za našu svrhu trebat će nam samo jedan: takozvani "fexc" uslužni program.
Korak 7: Dodajte datoteke u projekt
Upravo je "fexc" uslužni program odgovoran za pretvaranje script.bin u tekstualni format i za povratnu konverziju u binarni. Bitno je da izvršna datoteka ovog uslužnog programa ima naziv "fexc.exe", pa je dobro ako ste svom projektu dali ime "fexc". Međutim, možete koristiti bilo koji drugi naziv projekta, budući da izvršnu datoteku uvijek možete preimenovati nakon kompilacije ili možete odabrati "Projekt-> Svojstva" s gornjeg padajućeg izbornika i u prozoru koji se pojavi kliknite karticu "Izradi ciljeve", i tamo uredite polje "Naziv izlazne datoteke" kako biste nadjačali naziv izvršne datoteke.
U svoj automatski generirani projekt trebali biste dodati samo pet izvornih datoteka:
- fexc.c
- skripta.c
- script_bin.c
- script_fex.c
- script_uboot.c
i sedam datoteka zaglavlja:
- list.h (premjestite ga iz mape c: / sunxitools / include / u mapu c: / sunxitools / mapa)
- fexc.h
- skripta.h
- script_bin.h
- script_fex.h
- script_uboot.h
- verzija.h
Svakako isključite autogenerirani main.c iz projekta jer fexc.c već ima funkciju "int main" u sebi. (Sjetite se da bi svaki program trebao imati samo jednu glavnu funkciju?).
Sve potrebne datoteke izvornog koda već su u podmapi, u koju ste raspakirali izvorne kodove. Datoteke zaglavlja zaslužuju par riječi, gdje ih dobiti. "list.h" - obično se nalazi u podmapi "include" raspakiranih izvornih kodova. "version.h" - samo je stvorite sami. Stavite niz poput:
#define VERZIJA "Win32"
Zatim spremite i zatvorite datoteku. (Možete ga ukrasiti s #define's i #ifdef ako želite.)
Ako sada pokušate sastaviti projekt, žalit će se na mnogo pogrešaka i jednu datoteku koja nedostaje. Pogreške su uglavnom posljedica malo pretjerane slobode stila, koju su koristili programeri sunxi-alata, a datoteka koja nedostaje ovisnost je koja nije uključena u paket izvornog koda. Riješimo ovo korak po korak.
Korak 8: Neka Gcc slijedi jezični standard ISO C iz 1999. godine
Kako se prevoditelj ne bi žalio na previše slobodan stil programiranja, postavite "s99" standard kompilacije. U blokovima kodova idite na izbornik "Project -> Build Options" i u "Compiler Settings -> Compiler Flags" potvrdite okvir "Neka gcc slijedi jezični standard ISO C 1999". Ili možete jednostavno dodati "-std = c99" u svoj niz mogućnosti kompajlera. Sada ako pokušate sastaviti projekt te tone grešaka bi trebale nestati i vi ste jedan na jedan s nedostatkom ovisnosti.
Korak 9: Pronađite nedostajuću ovisnost
Ovisnost koja nedostaje je datoteka "mman.h" - zaglavlje neke vrste upravitelja memorije za Linux. Windows C izvorno nema takvu datoteku, ali srećom postoji Windows port. Idite na https://github.com/witwall/mman-win32 za Windows. Preuzmite snimku git spremišta.
Korak 10: Raspakirajte Mman
Raspakirajte datoteke mman.c i mman.h, stavite ih u mapu c: / sunxitools \.
Korak 11: Dodajte ih u projekt
Korak 12: Ispravan put
I u datoteci "fex.c" raplece linija:
#uključi
prema
#uključuje "mman.h"
U ovom koraku vaš prevoditelj se ne bi trebao ništa žaliti, a kao izlaz dobit ćete dugo čekanje fexc.exe. Ne budi sretan prerano. Uslužni program još uvijek nije u potpunosti funkcionalan. To možete osigurati dešifriranjem neke valjane datoteke script.bin u tekstualni obrazac - datotekom script.fex s posljedičnim šifriranjem datoteke script.fex natrag u script.bin. Možda ćete primijetiti da se veličina rezultirajućeg script.bin neznatno razlikuje od veličine izvornog script.bin. Ako pokušate dešifrirati rezultat još jednom, neće uspjeti. Niti Orange PI neće raditi s ovom skriptom.bin. Da bismo dobili funkcionalni uslužni program, moramo isprazniti kodnu bombu koju je netko stavio u izvorni kod sunxi-alata. To će biti naš sljedeći korak.
Korak 13: Egzorcizam
Kako biste ispraznili kodnu bombu, otvorite datoteku koda fexc.c i tamo pronađite tekstualni niz sljedećeg sadržaja:
else if ((out = open (naziv datoteke, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {
Zamijenite ga sljedećim nizom:
else if ((out = open (naziv datoteke, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {
Da nisu zle znamenke "666" u prvom nizu, pomislio bih da je koder upravo zaboravio upotrijebiti zastavu O_BINARY. No, Broj zvijeri transparentno pojašnjava njegove namjere. Zamislite, koliko je to genijalno: zbog suptilne razlike u načinu na koji se datoteke obrađuju u sustavu Windows i Linux, bomba nema učinka kada se uslužni program sastavlja i koristi pod Linuxom. No, sve uništava kada se uslužni program koristi u sustavu Windows.
Nakon što je bomba razoružana, konačno možete sastaviti i sigurno koristiti uslužni program fexc na stolnom računalu sa sustavom Windows.
Korak 14: BILJEŠKE
1) Da biste udobno koristili uslužni program fexc, trebali biste nabaviti dvije paketne datoteke:
bin2fex.bat - i - fex2bin.bat.
Možete ih nabaviti iz neke poznate verzije fexc.exe za Windows ili ih možete sami upisati:
- bin2fex.bat bi trebao sadržavati "fexc -I bin -O fex script.bin script.fex"
- fex2bin.bat bi trebao sadržavati "fexc -O bin -I fex script.fex script.bin"
2) Ako je teško pronaći mman manager za Windows, uopće možete izbjeći njegovu upotrebu. Međutim, potrebno je mnogo više uređivanja datoteke fexc.c i zahtijeva barem malo znanja o c. Radi vaše udobnosti, dijelim uređeni izvorni kod fexc iz sunxi-tools v1.4 bez ovisnosti o mman.h zajedno s datotekom projekta codeblocks i uzorkom script.bin s nekog narančastog pi. Možete preuzeti fexc_nomman.zip
3) Moguće je da će u slijedećim verzijama sunxi-alata dodati još neke ovisnosti. Slobodno ih pronađite na internetu i dodajte u svoj projekt kompilacije.
5) Na kraju, ovdje je predkompilirana verzija fexc.exe za Win32:
fexc_nomman.zip
Ako ste dovoljno lijeni, slobodno upotrijebite ver. Međutim, pazite da se neće ažurirati ako/kada će biti dostupne novije verzije programa SunxiTools/Windows. Zato je bolje naučiti kako ih sastaviti nego ovisiti o nekoj fiksnoj binarnoj verziji, pretpostavljam.
4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", itd … odgovarajući su zaštitni znakovi njihovih vlasnika.
5) Ako se kompajler žali da ne nalazi mman funkcije, poput:
nedefinirana referenca na '_imp_mmap'
Imajte na umu da su ljubitelji definicije razvojne zajednice mman zaboravili da se kôd može sastaviti ne samo kao dll knjižnica. To također može biti statička biblioteka ili samostalan kod kakav imamo ovdje. Da biste riješili problem, uredite datoteku "mman.h" na sljedeći način:
a) pronaći nizove:
#ako je definirano (MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif
b) dodaj niz
#define MMANSHARED_EXPORT
odmah ispod nizova pronađenih u prethodnom koraku
Preporučeni:
Z80 MBC2 - Ponovno sastavite QP/M Bios i Loader: 6 koraka
Z80 MBC2 - Ponovno sastavite QP/M Bios i Loader: Ako se, poput mene, nađete u poziciji u kojoj morate ponovno sastaviti QP/M bios za svoj MBC2 - onda to činite. Dokumentirao sam postupak ponovnog sastavljanja postojeće verzije. Na vama je da promijenite stvarni Bios
Sastavite AUX kabel: 11 koraka (sa slikama)
Sastavite AUX kabel: Ova uputa prikazuje vam postupak sastavljanja AUX kabela iz kompleta Joy Signal. Ako nemate komplet, daljnje upute su na dnu
Kako koristiti alat za izrezivanje u sustavu Windows 7: 7 koraka
Kako koristiti alat za izrezivanje u sustavu Windows 7: Otvorite prozor za koji želite snimku zaslona
Sastavite vlastiti LED buket ruža: 4 koraka (sa slikama)
Sastavite vlastiti LED buket ruža: Upute za sastavljanje vlastitog LED buketa ruža, uključujući gdje pronaći sve potrebne dijelove. Najbolji dio ovoga je što možete jednostavno ukloniti cvijeće iz LED dioda za pohranu kad završite ili jednostavno promijeniti cvijet
Raspberry Pi Bluetooth to PuTTY u sustavu Windows 10 .: 3 koraka (sa slikama)
Raspberry Pi Bluetooth to PuTTY u sustavu Windows 10 .: Raspberry Pi 3 B i Raspberry Pi Zero W imaju mogućnost Bluetooth. Možete osloboditi svoj serijski port za stvari poput GPS jedinice, umjesto toga konfigurirajte Bluetooth primopredajnik za sav pristup ljusci. Patrick Hundal napisao je izvrstan komad