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: Kreirajte novi projekat
- Korak 7: Dodajte datoteke u Project
- Korak 8: Neka Gcc slijedi jezički standard ISO C iz 1999. godine
- Korak 9: Pronađite nedostajuću zavisnost
- Korak 10: Raspakujte Mman
- Korak 11: Dodajte ih u projekat
- Korak 12: Tačan put
- Korak 13: Egzorcizam
- Korak 14: NAPOMENE
Video: Orange PI HowTo: Sastavite Sunxi alat za Windows pod Windowsima: 14 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
PREDUSLOVI:
Trebat će vam
- Računar (desktop) sa operativnim sistemom Windows.
- Internet veza.
- Narandžasta PI ploča.
Posljednje nije obavezno, ali siguran sam da ga već imate. U suprotnom nećete čitati ove upute.
Kada kupite Orange PI single board računar, on ostaje samo komad mrtvog metala dok se pravilno ne konfigurira. A 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 web stranice (https://www.orangepi.org/downloadresources/) ova particija je FAT32 i može je lako vidjeti bilo koji Windows računar. To zaista 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 kako bi ga dešifrirali i kriptirali nakon što su izvršene potrebne izmjene. Takav skup alata postoji. To je zloglasni SUNXI-TOOLS. Zanimljivo je to što je namjera da radi pod Linuxom i moramo ili zadržati namjensku Linux mašinu samo za korištenje sunxi alata ili pronaći način kako ih kompajlirati 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. Hajde da počnemo.
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
Kada se preuzimanje završi, raspakirajte izvorni kod u mapu po vašem izboru. (dalje ću pretpostaviti da je ova mapa c: / sunxitools \, pa zamijenite ovu putanju 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 direktno preći na korak 3. Drugi bi trebali nabaviti odgovarajući c ++ kompajler i ljusku (IDE) za udobno korištenje. Moj izbor je code:: Blocks za Windows zajedno s unaprijed instaliranim MinGW lancem alata. Možete ga preuzeti odavde:
Preuzmite i instalirajte.
Korak 4: Testirajte svoj IDE
Da biste provjerili je li sve u redu, pokrenite blokove kodova, kliknite "kreiraj novi projekt", odaberite "konzola 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 Build-> Run menu menu point. Ako su stvari krenule kako treba, trebali biste vidjeti poruku iz vaše automatski generirane aplikacije "Hello world" u crnom "DOS" prozoru.
Ako ne, to znači da IDE i kompajler ne rade ispravno i morat ćete istražiti kako to ispravno postaviti. Vjerovatno ćete morati preuzeti drugu verziju programskih alata ili provjeriti njihove dozvole u svom zaštitnom zidu/antivirusnom softveru.
Korak 6: Kreirajte novi projekat
Sada biste na računaru trebali imati operativan komplet alata za programere C/C ++ i raspakovane izvorne kodove sunxi-alata u fascikli c: / sunxitools \. Vrijeme je za sastavljanje projekta. Kreirajte novi projekat 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 imaju tendenciju da naprave podmapu s istim imenom kao i projekt. Dakle, ako ste nazvali svoj projekt, recite "test" i pokušajte ga postaviti u c: / sunxitools \, možda ćete završiti s tim da projekt nestane 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 Project
Upravo je uslužni program "fexc" 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 izabrati "Projekt-> Svojstva" iz gornjeg padajućeg izbornika i u prozoru koji se pojavi kliknite karticu "Izradi ciljeve", i uredite polje "Naziv izlazne datoteke" da biste nadjačali ime izvršne datoteke.
U svoj automatski generirani projekt trebali biste dodati samo pet izvornih datoteka:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
i sedam datoteka zaglavlja:
- list.h (premjestite ga iz c: / sunxitools / include / folder u c: / sunxitools / folder)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- version.h
Svakako isključite autogenerirani main.c iz projekta, jer fexc.c već ima funkciju "int main" u sebi. (Zapamtite 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. Zaglavlje datoteke zaslužuje par riječi, gdje ih dobiti. "list.h" - obično se nalazi u podmapi "include" postavljenog raspakovanog izvornog koda. "version.h" - samo ga stvorite sami. Stavite niz poput:
#define VERZIJA "Win32"
Zatim spremite i zatvorite datoteku. (Možete ga ukrasiti s #define i #ifdef ako želite.)
Ako sada pokušate sastaviti projekt, žalit će se na mnogo grešaka i jednu datoteku koja nedostaje. Greške su uglavnom posljedica malo pretjerane slobode stilova, koje su koristili programeri sunxi-alata, a datoteka koja nedostaje je ovisnost koja nije uključena u paket izvornog koda. Riješimo ovo korak po korak.
Korak 8: Neka Gcc slijedi jezički standard ISO C iz 1999. godine
Kako se kompajler 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 prati 1999 ISO C jezički standard". Ili možete jednostavno dodati "-std = c99" u niz opcija kompajlera. Sada, ako pokušate kompajlirati projekt, te tone grešaka bi trebale nestati i vi ste jedan na jedan sa zavisnošću koja nedostaje.
Korak 9: Pronađite nedostajuću zavisnost
Nedostajuća ovisnost je datoteka "mman.h" - zaglavlje neke vrste linux upravljača memorijom. Windows C izvorno nema takvu datoteku, ali na sreću postoji Windows port. Idite na https://github.com/witwall/mman-win32 za Windows. Preuzmite snimak git spremišta.
Korak 10: Raspakujte Mman
Raspakujte datoteke mman.c i mman.h, postavite ih u fasciklu c: / sunxitools \.
Korak 11: Dodajte ih u projekat
Korak 12: Tačan put
I u datoteci "fex.c" raplece linija:
#include
do
#include "mman.h"
U ovom koraku vaš kompajler se ne bi trebao žaliti i dobit ćete dugo čekanje fexc.exe kao izlaz. 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, a time i š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 ovim script.bin. Da bismo dobili funkcionalni uslužni program moramo isprazniti kodnu bombu koju je neko stavio u izvorni kod sunxi-alata. To će biti naš sljedeći korak.
Korak 13: Egzorcizam
Da 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) {
Samo ga zamijenite sljedećim nizom:
else if ((out = open (naziv datoteke, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {
Da nisu zle brojke "666" u prvom nizu, pomislio bih da je koder upravo zaboravio upotrijebiti zastavu O_BINARY. No, broj zvijeri transparentno razjašnjava njegove namjere. Zamislite, koliko je to genijalno: zbog suptilne razlike u načinu na koji se datoteke obrađuju u Windowsima i Linuxu bomba nema efekta kada se uslužni program kompajlira i koristi pod Linuxom. Ali sve uništava kada se uslužni program koristi pod Windows -om.
Nakon što je bomba razoružana, konačno možete sastaviti i sigurno koristiti uslužni program fexc na svom Windows računaru.
Korak 14: NAPOMENE
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 tamo, 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-a iz sunxi-tools v1.4 bez ovisnosti o mman.h zajedno sa 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 zavisnosti. Slobodno ih pronađite na internetu i dodajte u svoj kompilacijski projekt.
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 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 nije pronašao mman funkcije, poput:
nedefinisana 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 biblioteka. To može biti i 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đite nizove:
#if definirano (MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif
b) dodajte niz
#define MMANSHARED_EXPORT
odmah ispod niza pronađenih u prethodnom koraku
Preporučuje se:
Modifikacija L-tek Plesne podloge na 1000 Hz na Windowsima i Linuxu: 9 koraka
Modificiranje L-tek Plesne podloge na 1000 Hz na Windowsima i Linuxu: Zašto napraviti ovaj mod? Ako ste ikada prešli na grafikon pjesme od 125 BPM, možda ćete se zapitati, šta je sa ovim spikey boi-om? Zašto tajming pada u diskretne "utore"? ITG i DDR imaju nevjerojatno kratke vremenske prozore, a s ovim
Podsjetnik za korištenje ekrana (radi samo na Windowsima, Ios neće raditi): 5 koraka
Podsjetnik za korištenje ekrana (radi samo na Windowsima, Ios neće raditi): Uvod Ovo je korisna mašina napravljena od Arduina, podsjeća vas da se odmorite tako što ćete napraviti "biiii!" zvuk i vraćanje računara na zaključani ekran nakon 30 minuta provedenog na ekranu. Nakon 10 minuta odmora, " b
Snimanje ekrana računara na Windowsima: 5 koraka
Snimanje ekrana računara na Windows -u: U ovom uputstvu želim vam pokazati kako snimiti ekran računara na računaru sa operativnim sistemom Windows. Snimanje ekrana vrijedi hiljadu riječi i slika kako bi se demonstrirao problem ili proces na računaru, posebno ako želite napraviti video vodič, d
Sastavite AUX kabel: 11 koraka (sa slikama)
Sastavite AUX kabel: Ovo uputstvo prikazuje vam postupak sastavljanja AUX kabela iz kompleta Joy Signal. Ako nemate komplet, daljnja uputstva su na dnu
Sastavite svoj buket LED ruža: 4 koraka (sa slikama)
Sastavite vlastiti LED buket ruža: Upute za sastavljanje vlastitog LED buketa ruža, uključujući gdje možete pronaći sve potrebne dijelove. Najbolji dio ovoga je što možete lako ukloniti cvijeće sa LED dioda za pohranu kad završite ili možete lako promijeniti cvijet