Tartalomjegyzék:

Orange PI HowTo: A Sunxi eszköz összeállítása Windows alatt Windows alatt: 14 lépés (képekkel)
Orange PI HowTo: A Sunxi eszköz összeállítása Windows alatt Windows alatt: 14 lépés (képekkel)

Videó: Orange PI HowTo: A Sunxi eszköz összeállítása Windows alatt Windows alatt: 14 lépés (képekkel)

Videó: Orange PI HowTo: A Sunxi eszköz összeállítása Windows alatt Windows alatt: 14 lépés (képekkel)
Videó: Секция, неделя 3 2024, December
Anonim
Orange PI HowTo: Fordítsa össze a Sunxi eszközt Windows alatt Windows alatt
Orange PI HowTo: Fordítsa össze a Sunxi eszközt Windows alatt Windows alatt

FELTÉTELEK:

Szükséged lesz

  1. Windows rendszert futtató (asztali) számítógép.
  2. Internet kapcsolat.
  3. Narancssárga PI tábla.

Az utolsó opcionális, de biztos vagyok benne, hogy már megvan. Ellenkező esetben nem fogja elolvasni ezt az utasítást.

Amikor megvásárolja az Orange PI egylapos számítógépet, az csak egy darab holt fém marad, amíg nem konfigurálja megfelelően. És a fő konfigurációs fájl: "script.bin" az első kulcs, amely életre kelti. Ez a fájl a rendszerindító SD -kártya rendszerindító partíciójában található. És szerencsénkre, a hivatalos webhelyen (https://www.orangepi.org/downloadresources/) található Linux -disztribúciók többségében ez a partíció FAT32, és minden Windows számítógép könnyen látható. Valóban leegyszerűsíti a dolgokat, mivel még mindig nincs megbízható módja annak, hogy a Windows alól a Linux ext2 partícióiba írjunk.

Számunkra szerencsétlen, hogy a script.bin konfigurációs fájl bináris formátuma teljesen barátságtalan az emberi szerkesztéshez. Szükség van valamilyen szoftvereszközre, hogy visszafejtsük, és a szükséges módosítások elvégzése után visszasírjuk. És létezik ilyen eszközkészlet. Ez hírhedt SUNXI-TOOLS. A lényeg az, hogy Linux alatt kívánják futtatni, és vagy egy dedikált Linux-gépet kell tartanunk, hogy csak a sunxi-eszközöket használhassuk, vagy meg kell találnunk a módját, hogyan fordítsuk össze őket a Windows számára.

Egyszerűen lefordíthatnám és megoszthatnám a végrehajtható fájlt, de soha nem lehet tudni, hogy szeretnének -e friss kiadást készíteni, és ASAP -ra van szüksége egy új összeállításnak. Ezért úgy döntöttem, hogy készítek egy útmutatót a lényeges eszköz forrásból történő összeállításához. Lássunk neki.

1. lépés: Töltse le a Sunxi-eszközöket

Töltse le a Sunxi-eszközöket
Töltse le a Sunxi-eszközöket
Töltse le a Sunxi-eszközöket
Töltse le a Sunxi-eszközöket

Szerezze be a sunxi-tools forráskódjának legújabb (vagy szükséges) verzióját. Keresse fel az URL-t: https://github.com/linux-sunxi/sunxi-tools/releases, és válassza ki a letöltést ZIP-archívumként.

2. lépés: Csomagolja ki a forráskódot

Csomagolja ki a forráskódot
Csomagolja ki a forráskódot

A letöltés befejezése után csomagolja ki a forráskódot az Ön által választott mappába. (Továbbá feltételezem, hogy ez a mappa c: / sunxitools \, ezért cserélje le ezt az utat a saját útvonalával).

3. lépés: Kód:: blokkok letöltése

Letöltési kód:: blokkok
Letöltési kód:: blokkok

Ha van telepített példánya valamilyen Windows operációs rendszerhez készült c ++ fordítóról. és ha tudja, hogyan kell használni, akkor közvetlenül továbbléphet a 3. lépésre. Másoknak megfelelő c ++ fordítót és héjat (IDE) kell szerezniük a kényelmes használathoz. Az enyém a kód:: blokkok a Windows számára, valamint az előre telepített MinGW eszköztár. Innen szerezheti be:

Töltse le és telepítse.

4. lépés: Tesztelje IDE -jét

Tesztelje IDE -jét
Tesztelje IDE -jét

Annak teszteléséhez, hogy minden rendben van -e, indítsa el a kódblokkokat, kattintson az "új projekt létrehozása" lehetőségre, válassza a "konzolalkalmazás" lehetőséget, válassza ki a c vagy a c ++ billentyűt, írja be a fizetési projekt címét, tartsa érintetlenül az alapértelmezett értékeket a következő ablakban, majd kattintson a "Befejezés" gombra. ".

5. lépés: Töltse ki a tesztet

Teljes teszt
Teljes teszt

Ezután kattintson egy zöld háromszögre az IDE felső panelén, vagy használja a Build-> Run menüpontot. Ha minden rendben ment, a fekete „DOS” ablakban üzenetet kell látnia az automatikusan generált „Hello world” alkalmazásból.

Ha nem, az azt jelenti, hogy az IDE és a fordító nem működik megfelelően, és meg kell vizsgálnia, hogyan kell helyesen beállítani. Valószínűleg le kell töltenie a programozási eszközök másik verzióját, vagy ellenőriznie kell a tűzfal/víruskereső szoftver engedélyeit.

6. lépés: Új projekt létrehozása

Új projekt létrehozása
Új projekt létrehozása
Új projekt létrehozása
Új projekt létrehozása
Új projekt létrehozása
Új projekt létrehozása
Új projekt létrehozása
Új projekt létrehozása

Most rendelkeznie kell egy működő C/C ++ programozó eszköztárral és a kicsomagolt sunxi-tools forráskódokkal a számítógép c: / sunxitools / mappájában. Ideje összeállítani egy projektet. Hozzon létre új projektet az IDE -ben. Válassza a "konzol alkalmazás" típusú egyszerű C (nem c ++) projektet.

Győződjön meg arról, hogy a projektet a c: / sunxitools / mappában hozza létre, és nem más helyen. (Az EG kódblokkok hajlamosak a projekt nevével megegyező nevű almappát létrehozni. Tehát ha elnevezte a projektet, mondja azt, hogy "teszt", és próbálja elhelyezni a c: / sunxitools / könyvtárban, akkor a projekt vége c: / sunxitools / test \, ha nem vagy elég figyelmes.) A Sunxi-eszközök több segédprogramot tartalmaznak, de célunkhoz csak egyre lesz szükségünk: az úgynevezett "fexc" segédprogramra.

7. lépés: Fájlok hozzáadása a Projecthez

Fájlok hozzáadása a Projecthez
Fájlok hozzáadása a Projecthez

Pontosan a "fexc" segédprogram felelős a script.bin szöveges formátumba való konvertálásáért és a bináris bináris formátumba történő visszaalakításáért. Lényeges, hogy ennek a segédprogramnak a futtatható állománya "fexc.exe" legyen, ezért jó, ha a projektjét "fexc" -nek nevezte el. Használhatja azonban a projekt bármely más nevét is, mivel a futtatható fájlt a fordítás után bármikor átnevezheti, vagy a felső legördülő menüből kiválaszthatja a "Projekt-> Tulajdonságok" lehetőséget, majd a megjelenő ablakban kattintson a "Célok létrehozása" fülre, és ott szerkesztheti a "Kimeneti fájlnév" mezőt, hogy felülbírálja a végrehajtható nevet.

Az automatikusan generált projekthez Csak öt forrásfájlt kell hozzáadnia:

  • fexc.c
  • script.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

és hét fejlécfájl:

  • list.h (helyezze át a c: / sunxitools / include / mappát a c: / sunxitools / mappába)
  • fexc.h
  • forgatókönyv.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • verzió.h

Ne felejtse el kizárni a projektből az autogenerált main.c fájlt, mert a fexc.c már rendelkezik az "int main" funkcióval. (Ne feledje, hogy bármely programnak csak egy fő funkciója lehet?).

Az összes szükséges forráskód fájl már benne van az almappában, ahová kicsomagolta a forráskódokat. A fejlécfájlok megérdemelnek egy pár szót, hol lehet őket beszerezni. "list.h" - általában a kicsomagolt forráskódok "include" almappájában található. "version.h" - csak saját maga hozza létre. Tegyél oda egy ilyen karakterláncot:

#define VERSION "Win32"

Ezután mentse és zárja be a fájlt. (Ha szeretné, díszítheti #define és #ifdef karakterekkel.)

Ha most megpróbálja lefordítani a projektet, akkor sok hiba és egy hiányzó fájl miatt fog panaszkodni. A hibák többnyire a túlzott stílusszabadságnak, a Sunxi-tools programozóknak szoktak jelentkezni, és a hiányzó fájl a forráskód csomagban nem szereplő függőség. Foglalkozzunk ezzel lépésről lépésre.

8. lépés: A Gcc -nek kövesse az 1999 -es ISO C nyelvi szabványt

Legyen Gcc kövesse az 1999 -es ISO C nyelvi szabványt
Legyen Gcc kövesse az 1999 -es ISO C nyelvi szabványt

Annak érdekében, hogy a fordító ne panaszkodjon a túl szabad programozási stílusra, állítsa be az összeállítás "с99" szabványát. A kódblokkokban lépjen a "Projekt -> Építési beállítások" menübe, és a "Fordító beállításai -> Fordító jelzők" jelölőnégyzetben jelölje be a "Gcc kövesse az 1999 -es ISO C nyelvi szabványt" jelölőnégyzetet. Vagy csak hozzáadhatja a "-std = c99" értéket a fordító beállítási karakterláncához. Most, ha megpróbálja lefordítani a projektet, azoknak a hibáknak túllépnie kell, és Ön egy az egyben a hiányzó függőséggel.

9. lépés: Keresse meg a hiányzó függőséget

Keresse meg a hiányzó függőséget
Keresse meg a hiányzó függőséget

A hiányzó függőség az "mman.h" fájl - valamilyen linuxos memóriakezelő fejléce. A Windows C -nek természetesen nincs ilyen fájlja, de szerencsére van Windows -portja. Nyissa meg a https://github.com/witwall/mman-win32 webhelyet a Windows rendszerhez. Töltse le a git lerakat pillanatképét.

10. lépés: Csomagolja ki az Mman -t

Csomagolja ki az Mman -t
Csomagolja ki az Mman -t

Csomagolja ki az mman.c és mman.h fájlokat, helyezze őket a c: / sunxitools / mappába.

11. lépés: És adja hozzá őket a projekthez

És adja hozzá őket a projekthez
És adja hozzá őket a projekthez

12. lépés: Helyes útvonal

Helyes útvonal
Helyes útvonal

És a "fex.c" fájl raplece sorában:

#befoglalni

hoz

#include "mman.h"

Ebben a lépésben a fordítónak nem kell panaszkodnia, és a hosszú várakozási időt fogja kapni a fexc.exe kimenetként. Ne legyél túl korán boldog. A segédprogram még mindig nem működik teljesen. Ezt úgy tudja biztosítani, hogy valamilyen érvényes script.bin fájlt dekódol a szöveges űrlap - script.fex fájlba, és ennek következtében a script.fex fájlt vissza titkosítja a script.bin fájlba. Megjegyezzük, hogy a kapott script.bin mérete kissé eltér az eredeti script.bin méretétől. És ha még egyszer megpróbálja visszafejteni az eredményt, akkor nem sikerül. A narancssárga PI sem fog működni ezzel a szkripttel.bin. A funkcionális segédprogram eléréséhez le kell töltenünk egy kódbombát, amelyet valaki behelyezett a sunxi-tools forráskódjába. Ez lesz a következő lépésünk.

13. lépés: Ördögűzés

Ördögűzés
Ördögűzés

A kódbomba kisütéséhez nyissa meg a fexc.c kódfájlt, és keresse meg a következő tartalom szöveges karakterláncát:

else if ((out = open (fájlnév, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Csak cserélje ki a következő karakterlánccal:

else if ((out = open (fájlnév, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Ha nem a gonosz "666" számjegyeket az első karakterláncban, azt gondolnám, hogy a kódoló éppen elfelejtette használni az O_BINARY jelzőt. De a Szörnyeteg száma valóban átláthatóan tisztázza szándékait. Nézze meg, milyen ötletes: a fájlok Windows és Linux rendszerben történő feldolgozásának finom különbségei miatt a bomba nincs hatással a segédprogram Linux alatt történő összeállítására és használatára. De mindent tönkretesz, ha a segédprogramot Windows alatt használják.

A bomba hatástalanítása után végre lefordíthatja és biztonságosan használhatja a fexc segédprogramot a Windows asztali számítógépén.

14. lépés: MEGJEGYZÉSEK

MEGJEGYZÉSEK
MEGJEGYZÉSEK

1) A fexc segédprogram kényelmes használatához két kötegelt fájlt kell beszereznie:

bin2fex.bat - és - fex2bin.bat.

Ezeket letöltheti néhány faily fexc.exe Windows -verzióból, vagy beírhatja őket:

  • A bin2fex.bat tartalmazzon "fexc -I bin -O fex script.bin script.fex"
  • A fex2bin.bat tartalmazzon "fexc -O bin -I fex script.fex script.bin"

2) Ha nehéz megtalálni a Windows mman manager -t, akkor egyáltalán elkerülhető a használata. Ez azonban sokkal több szerkesztést igényel a fexc.c fájlban, és legalább némi ismerete szükséges a c. Meggyőződése érdekében megosztom a fexc szerkesztett forráskódját a sunxi-tools v1.4-ből, amely mentes az mman.h függőségtől, a kódblokkok projektfájljával és a script.bin minta segítségével. Letöltheti a fexc_nomman.zip fájlt

3) Lehetséges, hogy a sunxi-tools következő verzióiban további függőségeket adnak hozzá. Nyugodtan keresse meg őket az interneten, és vegye fel őket az összeállítási projektbe.

5) Végül itt van a fexc.exe Win32 -re előre lefordított verziója:

fexc_nomman.zip

Ha elég lusta vagy, használd a ver verziót. Vigyázzon azonban arra, hogy nem frissül, ha/amikor a SunxiTools/Windows újabb verziói elérhetők lesznek. Tehát jobb megtanulni összeállítani őket, mint függni valamilyen fix bináris konstrukciótól.

4) Az "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", stb… a megfelelő tulajdonosok védjegye.

5) Ha a fordító panaszkodik, hogy nem talál mman függvényeket, például:

nem definiált hivatkozás a "_imp_mmap" -ra

ne feledje, hogy az mman fejlesztői közösség meghatározott szerelmesei elfelejtették, hogy a kód nemcsak dll könyvtárként fordítható. Ez lehet statikus könyvtár vagy önálló kód is, mint nálunk. A probléma megoldásához szerkessze az "mman.h" fájlt az alábbiak szerint:

a) Keresse meg a karakterláncokat:

#if meghatározott (MMAN_LIBRARY)

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

b) add hozzá a karakterláncot

#define MMANSHARED_EXPORT

közvetlenül az előző lépésben talált karakterláncok alatt

Ajánlott: