İçindekiler:
- Adım 1: Sunxi araçlarını indirin
- 2. Adım: Kaynak Kodu Açın
- Adım 3: Code::blocks'u İndirin
- 4. Adım: IDE'nizi Test Edin
- Adım 5: Testi Tamamlayın
- Adım 6: Yeni Proje Oluşturun
- 7. Adım: Dosyaları Projeye Ekleyin
- 8. Adım: Gcc'nin 1999 ISO C Dil Standardını İzlemesini Sağlayın
- 9. Adım: Eksik Bağımlılığı Bulun
- Adım 10: Mman'i paketinden çıkarın
- Adım 11: Ve Onları Projeye Ekleyin
- Adım 12: Doğru Yol
- Adım 13: Şeytan Çıkarma
- Adım 14: NOTLAR
Video: Orange PI Nasıl Yapılır: Windows Altında Windows için Sunxi Aracı Derleme: 14 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
ÖNKOŞULLAR:
İhtiyacın olacak
- Windows çalıştıran bir (masaüstü) bilgisayar.
- İnternet bağlantısı.
- Turuncu bir PI kartı.
Sonuncusu isteğe bağlıdır, ama eminim ki zaten sizde var. Aksi takdirde, bu talimatı okumayacaksınız.
Orange PI tek kartlı bilgisayarı satın aldığınızda, düzgün bir şekilde yapılandırılana kadar sadece bir ölü metal parçası olarak kalır. Ve ana yapılandırma dosyası: "script.bin" onu canlandıran ilk anahtardır. Bu dosya, önyüklenebilir SD kartınızın önyükleme bölümünde bulunur. Şansımıza, Resmi sitedeki (https://www.orangepi.org/downloadresources/) Linux dağıtımlarının çoğunda bu bölüm FAT32'dir ve herhangi bir Windows bilgisayar tarafından kolayca görülebilir. Windows altından Linux ext2 bölümlerine yazmanın hala güvenilir bir yolu olmadığından, işleri gerçekten basitleştirir.
Şansımıza, script.bin yapılandırma dosyası, insan düzenlemesi için tamamen uygun olmayan ikili formata sahiptir. Şifresini çözmek ve gerekli değişiklikler yapıldıktan sonra geri şifrelemek için bir tür yazılım aracına ihtiyaç vardır. Ve böyle bir araç seti var. Kötü şöhretli SUNXI-TOOLS'tur. Merhemdeki sinek, Linux altında çalışacak şekilde tasarlanmasıdır ve ya sadece sunxi araçlarını kullanmak için özel bir Linux makinesi tutmamız ya da onları pencereler için derlemenin bir yolunu bulmamız gerekir.
Basitçe derleyebilir ve yürütülebilir dosyayı paylaşabilirim, ancak yeni bir sürüm yapmak isteyip istemediklerini asla bilemezsiniz ve en kısa sürede yeni bir derlemeye ihtiyacınız olacak. Bu yüzden, temel aracı kaynaklardan nasıl derleyeceğimize dair bir rehber yapmaya karar verdim. Başlayalım.
Adım 1: Sunxi araçlarını indirin
sunxi-tools kaynak kodunun en son (veya gerekli) sürümünü edinin. URL'ye gidin: https://github.com/linux-sunxi/sunxi-tools/releases ve zip arşivi olarak indirmeyi seçin.
2. Adım: Kaynak Kodu Açın
İndirme işlemi bittiğinde, kaynak kodunu seçtiğiniz klasöre açın. (ayrıca bu klasörün c:\sunxitools\ olduğunu varsayacağım, bu yüzden bu yolu kendi yolunuzla değiştirin).
Adım 3: Code::blocks'u İndirin
Windows için bazı operasyonel c++ derleyicilerinin kurulu bir kopyasına sahipseniz. ve nasıl kullanılacağını biliyorsanız, doğrudan 3. adıma geçebilirsiniz. Diğerleri uygun bir c++ derleyicisi ve onu rahatça kullanmak için bir kabuk (IDE) almalıdır. Benim seçimim, önceden yüklenmiş MinGW araç zinciriyle birlikte Windows için code::blocks. Buradan alabilirsiniz:https://sourceforge.net/…/codeblocks-16.01mingw-setup.exe/download
İndirin ve kurun.
4. Adım: IDE'nizi Test Edin
İşlerin yolunda gidip gitmediğini test etmek için kod bloklarını başlatın, "yeni proje oluştur"u tıklayın, "konsol uygulaması"nı seçin, c veya c++'ı seçin, ödeme projesinin başlığını yazın, bir sonraki pencerede varsayılanlara dokunmadan bırakın ve "bitir"e tıklayın ".
Adım 5: Testi Tamamlayın
Ardından IDE'nin üst panelindeki yeşil üçgene tıklayın veya Build->Run menü noktasını kullanın. İşler yolunda giderse, siyah "DOS" penceresinde otomatik olarak oluşturulmuş "Merhaba dünya" uygulamanızdan bir mesaj görmelisiniz.
Değilse, IDE ve derleyici düzgün çalışmıyor demektir ve nasıl doğru ayarlayacağınızı araştırmanız gerekecektir. Muhtemelen programlama araçlarının başka bir sürümünü indirmeniz veya güvenlik duvarı/antivirüs yazılımınızdaki izinlerini kontrol etmeniz gerekecektir.
Adım 6: Yeni Proje Oluşturun
Şimdi, bilgisayarınızdaki c:\sunxitools\ klasöründe çalışan bir C/C++ programcı araç takımına ve paketlenmemiş sunxi-tools kaynak kodlarına sahip olmalısınız. Bir projeyi birleştirme zamanı. IDE'nizde yeni proje oluşturun. "Konsol uygulaması" türündeki düz C (c++ değil) projesini seçin.
Projeyi başka bir yerde değil, c:\sunxitools\ klasöründe oluşturduğunuzdan emin olun. (EG kod blokları, proje ile aynı ada sahip bir alt klasör oluşturma eğilimindedir. Bu nedenle, projenize bir isim verdiyseniz, "test" deyin ve onu c:\sunxitools\ içine yerleştirmeyi deneyin, sonunda proje gitmiş olabilir. Yeterince dikkatli değilseniz c:\sunxitools\test\ için.) Sunxi-tools birkaç yardımcı program içerir, ancak bizim amacımız için sadece bir tanesine ihtiyacımız olacak: "fexc" yardımcı programı.
7. Adım: Dosyaları Projeye Ekleyin
Tam olarak "fexc" yardımcı programı, script.bin dosyasının metin biçimine dönüştürülmesinden ve ikiliye geri dönüştürülmesinden sorumludur. Bu yardımcı programın yürütülebilir dosyasının "fexc.exe" adına sahip olması esastır, bu nedenle projenizi "fexc" olarak adlandırdıysanız iyi olur. Ancak, derlemeden sonra yürütülebilir dosyayı her zaman yeniden adlandırabileceğiniz için projenin başka bir adını kullanabilirsiniz veya üst açılır menüden "Proje->Özellikler"i seçebilir ve görünen pencerede "Yapı hedefleri" sekmesine tıklayabilirsiniz, ve yürütülebilir adı geçersiz kılmak için oradaki "Çıktı dosyası adı" alanını düzenleyin.
Otomatik oluşturulan projenize yalnızca beş kaynak dosya eklemelisiniz:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
ve yedi başlık dosyası:
- list.h (c:\sunxitools\include\ klasöründen c:\sunxitools\ klasörüne taşıyın)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- sürüm.h
Fexc.c'de zaten "int main" işlevi bulunduğundan, otomatik olarak oluşturulmuş main.c'yi projeden çıkardığınızdan emin olun. (Herhangi bir programın yalnızca bir ana işlevi olması gerektiğini unutmayın?).
Gerekli tüm kaynak kod dosyaları, kaynak kodlarını açtığınız alt klasörde zaten bulunmaktadır. Başlık dosyaları, onları nereden alacağınız bir çift kelimeyi hak ediyor. "list.h" - genellikle paketlenmemiş kaynak kodları kümesinin "include" alt klasöründedir. "version.h" - sadece Kendiniz oluşturun. Oraya şöyle bir dize koyun:
#define VERSİYONU "Win32"
Ardından dosyayı kaydedip kapatın. (İsterseniz #define'ler ve #ifdef'ler ile süsleyebilirsiniz.)
Şimdi projeyi derlemeye çalışırsanız, birçok hatadan ve bir eksik dosyadan şikayet edecektir. Hatalar çoğunlukla biraz aşırı stil özgürlüğünden, eskiden sunxi-tools programcılarının uyguladığı ve eksik dosya, kaynak kodu paketine dahil edilmeyen bağımlılıktan kaynaklanıyor. Bunu adım adım ele alalım.
8. Adım: Gcc'nin 1999 ISO C Dil Standardını İzlemesini Sağlayın
Derleyicinin şikayet etmemesi için çok özgür programlama stili derlemenin "с99" standardını belirler. Kod bloklarında "Proje -> Yapı Seçenekleri" menüsüne gidin ve "Derleyici Ayarları -> Derleyici Bayrakları"nda "Gcc'nin 1999 ISO C dil standardını izlemesini sağlayın" onay kutusunu işaretleyin. Ya da derleyici seçeneklerinize "-std=c99" ekleyebilirsiniz. Şimdi projeyi derlemeye çalışırsanız bu tonlarca hata gitmiş olmalı ve eksik bağımlılıkla bire birsiniz.
9. Adım: Eksik Bağımlılığı Bulun
Eksik bağımlılık "mman.h" dosyasıdır - bir tür linux bellek yöneticisinin başlığı. Windows C'nin doğal olarak böyle bir dosyası yoktur, ancak neyse ki bir Windows bağlantı noktası vardır. Windows için https://github.com/witwall/mman-win32 adresine gidin. Git deposunun anlık görüntüsünü indirin.
Adım 10: Mman'i paketinden çıkarın
mman.c ve mman.h dosyalarını paketinden çıkarın, bunları c:\sunxitools\ klasörüne yerleştirin.
Adım 11: Ve Onları Projeye Ekleyin
Adım 12: Doğru Yol
Ve "fex.c" dosyasında raplece satırı:
#Dahil etmek
için
#include "mman.h"
Bu adımda derleyiciniz hiçbir şeyden şikayet etmemelidir ve çıktı olarak uzun süre bekleyen fexc.exe'yi alacaksınız. Erken sevinme. Yardımcı program hala tam olarak işlevsel değil. Bunu, bazı geçerli script.bin dosyalarının şifresini metin biçiminde çözerek sağlayabilirsiniz - script.fex dosyası ve ardından script.fex dosyasını tekrar script.bin'e şifreleyerek. Ortaya çıkan script.bin boyutunun orijinal script.bin boyutundan biraz farklı olduğunu not edebilirsiniz. Ve sonucun şifresini bir kez daha çözmeye çalışırsanız, başarısız olur. Orange PI de bu script.bin ile çalışmayacaktır. İşlevsel faydayı elde etmek için, birinin sunxi-tools kaynak koduna koyduğu bir kod bombasını boşaltmamız gerekiyor. Bir sonraki adımımız olacak.
Adım 13: Şeytan Çıkarma
Kod bombasını boşaltmak için fexc.c kod dosyasını açın ve orada bir sonraki içeriğin metin dizesini bulun:
else if ((out = open(dosya adı, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) {
Sadece bir sonraki dizeyle değiştirin:
else if ((out = open(dosya adı, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 512)<0){
İlk dizgedeki kötü rakamlar "666" değilse, kodlayıcının O_BINARY bayrağını kullanmayı unuttuğunu düşünürdüm. Ancak Canavarın Sayısı, niyetlerini şeffaf bir şekilde açıklıyor. Bir düşünün, ne kadar ustaca: Windows ve Linux'ta dosyaların işlenme biçimindeki ince fark nedeniyle, yardımcı program Linux altında derlendiğinde ve kullanıldığında bombanın hiçbir etkisi yoktur. Ancak yardımcı program Windows altında kullanıldığında her şeyi mahveder.
Bomba etkisiz hale getirildikten sonra, nihayet Windows masaüstü bilgisayarınızda fexc yardımcı programını derleyebilir ve güvenle kullanabilirsiniz.
Adım 14: NOTLAR
1) fexc yardımcı programını rahatça kullanmak için iki toplu iş dosyası almalısınız:
bin2fex.bat - ve - fex2bin.bat.
Bunları Windows için bazı başarısız fexc.exe derlemelerinden alabilir veya Kendiniz yazabilirsiniz:
- bin2fex.bat "fexc -I bin -O fex script.bin script.fex" içermelidir
- fex2bin.bat "fexc -O bin -I fex script.fex script.bin" içermelidir
2) Windows için mman yöneticisini bulmak zorsa, kullanımından tamamen kaçınılabilir. Ancak fexc.c dosyasının düzenlenmesi çok daha fazla zaman alır ve en azından biraz c bilgisi gerektirir. Rahatlığınız için, mman.h bağımlılığından bağımsız sunxi-tools v1.4'ten fexc'nin düzenlenmiş kaynak kodunu, codeblocks proje dosyası ve bazı turuncu pi'lerden örnek script.bin ile paylaşıyorum. fexc_nomman.zip dosyasını indirebilirsiniz
3) Sunxi araçlarının sonraki sürümlerinde biraz daha bağımlılık eklemeleri mümkündür. Bunları internet üzerinden bulmaktan ve derleme projenize eklemekten çekinmeyin.
5) Son olarak, Win32 için fexc.exe'nin önceden derlenmiş sürümü:
fexc_nomman.zip
Yeterince tembelseniz ver kullanmaktan çekinmeyin. Ancak, SunxiTools/Windows'un daha yeni sürümleri mevcut olduğunda/olduğunda güncellenmeyeceğine dikkat edin. Bu yüzden, bazı sabit ikili yapılara bağımlı olmaktansa, onları nasıl derleyeceğinizi öğrenmek daha iyidir, sanırım.
4) "Orange PI", "Code::Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner" vb… ilgili sahiplerinin ticari markalarıdır.
5) Derleyici, aşağıdaki gibi mman işlevlerini bulamamaktan şikayet ederse:
'_imp_mmap' için tanımsız başvuru
Bilin ki mman geliştirme camiasını sevenler, kodun sadece dll kütüphanesi olarak derlenebileceğini unuttular. Ayrıca statik bir kitaplık veya burada sahip olduğumuz gibi bağımsız bir kod olabilir. Sorunu çözmek için "mman.h" dosyasını aşağıdaki gibi düzenleyin:
a) dizeleri bulun:
#if tanımlı(MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec(dllexport) #else #define MMANSHARED_EXPORT _declspec(dllimport) #endif
b) dizeyi ekleyin
#define MMANSHARED_EXPORT
önceki adımda bulunan dizelerin hemen altında
Önerilen:
Wifi Ducky (*Mac Kullanıcıları için derleme): 6 Adım
Wifi Ducky (*Mac Kullanıcıları için Derleme): Bu cihazı usb bağlantı noktasına takarak bir bilgisayarın kontrolünü elinize alın. Parça Listesi: ✔ Arduino Pro Micro ✔ D1 Mini NodeMCU ✔ Arduino IDE✔*Opsiyonel Mikro USB Erkek - USB Dişi OTG Adaptör Dönüştürücü ✔ WireBu eğitim, Mac kullanıcılarına odaklanmıştır. Çok var
Orange PI Nasıl Yapılır: 5" HDMI TFT LCD Ekranla Kullanmak İçin Ayarlayın: 8 Adım (Resimlerle)
Orange PI Nasıl Yapılır: 5" HDMI TFT LCD Ekranla Kullanmak İçin Ayarlayın: Orange PI'niz ile birlikte bir HDMI TFT LCD Ekran sipariş edecek kadar sağduyulu olsaydınız, muhtemelen onu çalışmaya zorlamanın zorlukları yüzünden cesaretiniz kırıldı. . Diğerleri herhangi bir engeli bile fark edemezken, anahtar şu ki
Orange PI Nasıl Yapılır: Araba Dikiz Ekranı ve HDMI - RCA Adaptörüyle Kullanmak İçin Ayarlayın: 15 Adım
Orange PI Nasıl Yapılır: Araba Dikiz Ekranı ve HDMI - RCA Adaptörüyle Kullanmak İçin Ayarlayın: ÖNSÖZ. Görünüşe göre her biri daha büyük ve hatta daha büyük TV seti veya aptal bir Orange PI kartına sahip monitör kullanıyor. Ve gömülü sistemler için düşünüldüğünde biraz fazla abartılmış gibi görünüyor. Burada küçük ve ucuz bir şeye ihtiyacımız var. Bir gibi
Ahşap Divot Onarım Aracı Nasıl Yapılır: 8 Adım
Tahta Divot Onarım Aracı Nasıl Yapılır: Divot Repair aracı veya Pitchfork, golf topunun green'e düşmesinin neden olduğu girintiyi, bölmeyi gidermeye yardımcı olmak için kullanılır. Bunları düzeltmek için gerekli olmasa da, bunu yapmak yaygın bir golf nezaketidir. Wikipedia makalesi burada, ben
Bir Gitar Hoparlör Kutusu Nasıl Yapılır veya Stereonuz İçin İki Adet Nasıl Yapılır: 17 Adım (Resimlerle)
Bir Gitar Hoparlör Kutusu Nasıl Yapılır veya Stereonuz için İki Adet Yapın.: Yaptığım tüp amfi ile birlikte yeni bir gitar hoparlörü istedim. Hoparlör dükkânımda kalacak, bu yüzden çok özel bir şey olmasına gerek yok. Tolex kaplama çok kolay zarar görebilir, bu yüzden hafif bir kumdan sonra dışarıdaki siyahı püskürttüm