Mundarija:
- 1-qadam: Sunxi asboblarini yuklab oling
- 2 -qadam: Kod kodini oching
- 3 -qadam: Kodni yuklab oling:: bloklari
- 4 -qadam: IDE -ni sinab ko'ring
- 5 -qadam: To'liq test
- 6 -qadam: Yangi loyiha yaratish
- 7 -qadam: Fayllarni loyihaga qo'shing
- 8 -qadam: Gcc 1999 ISO C til standartiga rioya qiling
- 9 -qadam: yo'qolgan qaramlikni toping
- 10 -qadam: Mmanni oching
- 11 -qadam: Va ularni loyihaga qo'shing
- 12 -qadam: to'g'ri yo'l
- 13 -qadam: Ekzorizm
- 14 -qadam: QAYDLAR
Video: Orange PI HowTo: Windows ostida Windows uchun Sunxi vositasini kompilyatsiya qilish: 14 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
TALABLAR:
Sizga kerak bo'ladi
- Windows bilan ishlaydigan (ish stoli) kompyuter.
- Internetga ulanish.
- To'q rangli PI kartasi.
Oxirgi variant ixtiyoriy, lekin aminmanki, sizda allaqachon bor. Aks holda, siz buni o'qiy olmaysiz.
Orange PI bitta taxtali kompyuterni sotib olganingizda, u to'g'ri konfiguratsiya qilinmaguncha o'lik metalning bir bo'lagida qoladi. Va uning asosiy konfiguratsiya fayli: "script.bin" - uni jonlantirish uchun birinchi kalit. Bu fayl sizning yuklanadigan SD -kartangiz yuklash qismida joylashgan. Yaxshiyamki, biz Linux tarqatishining ko'p qismida rasmiy saytdan (https://www.orangepi.org/downloadresources/) FAT32 bo'lib, uni Windows -ning istalgan kompyuterida ko'rish mumkin. Bu, albatta, soddalashtiradi, chunki Windows ostidan Linux ext2 bo'limlariga yozishning ishonchli usuli hali yo'q.
Baxtsizlikdan, script.bin konfiguratsiya fayli ikkilik formatga ega bo'lib, inson tomonidan tahrir qilinmaydi. Kerakli o'zgartirishlar kiritilgandan so'ng, shifrni ochish va qaytarish uchun qandaydir dasturiy vosita kerak bo'ladi. Va bunday asboblar to'plami mavjud. Bu mashhur SUNXI-TOOLS. Malhamning asosiy maqsadi shundaki, u Linux ostida ishlaydi va biz faqat sunxi asboblaridan foydalanish uchun maxsus Linux-mashinani saqlashimiz yoki ularni derazalar uchun kompilyatsiya qilish yo'lini topishimiz kerak.
Men uni kompilyatsiya qilishim va bajariladigan faylni bo'lishishim mumkin edi, lekin ular yangi versiya chiqarishni xohlayaptimi yoki yo'qligini hech kim bilmaydi va sizga tez orada yangi kompilyatsiya kerak bo'ladi. Shuning uchun men manbadan asosiy vositani qanday yig'ish bo'yicha ko'rsatma berishga qaror qildim. Qani boshladik.
1-qadam: Sunxi asboblarini yuklab oling
Quyidagi manzilga o'ting:
2 -qadam: Kod kodini oching
Yuklab olish tugagandan so'ng, siz tanlagan papkaga manba kodini oching. (bundan keyin men bu papkani c: / sunxitools / deb hisoblayman, shuning uchun bu yo'lni o'z yo'lingiz bilan almashtiring).
3 -qadam: Kodni yuklab oling:: bloklari
Agar sizda Windows uchun operatsion c ++ kompilyatorining nusxasi o'rnatilgan bo'lsa. Agar siz uni qanday ishlatishni bilsangiz, 3 -bosqichga o'tishingiz mumkin. Boshqalar uni qulay ishlatish uchun tegishli c ++ kompilyatorini va qobig'ini (IDE) olishlari kerak. Mening tanlovim Windows uchun kod:: bloklar va oldindan o'rnatilgan MinGW asboblar zanjiri. Siz uni bu erdan olishingiz mumkin:
Yuklab oling va o'rnating.
4 -qadam: IDE -ni sinab ko'ring
Ishlarning to'g'riligini tekshirish uchun kod bloklarini ishga tushiring, "yangi loyiha yaratish" tugmasini bosing, "konsolli dastur" ni tanlang, c yoki c ++ ni tanlang, hisob -kitob loyihasining sarlavhasini kiriting, keyingi oynada ko'rsatuvlarni tegmagan holda saqlang va "tugatish" tugmasini bosing. ".
5 -qadam: To'liq test
Keyin IDE yuqori panelidagi yashil uchburchakni bosing yoki Build-> Run menyusidan foydalaning. Agar ishlar to'g'ri ketayotgan bo'lsa, siz "DOS" qora oynasida avtomatik tarzda yaratilgan "Salom dunyo" ilovasidan xabarni ko'rishingiz kerak.
Agar yo'q bo'lsa, bu IDE va kompilyator to'g'ri ishlamayotganligini anglatadi va siz uni qanday to'g'ri sozlashni o'rganishingiz kerak bo'ladi. Ehtimol, siz dasturiy vositalarning boshqa versiyasini yuklab olishingiz yoki xavfsizlik devori/antivirus dasturida ularning ruxsatini tekshirishingiz kerak bo'ladi.
6 -qadam: Yangi loyiha yaratish
Endi sizda C/C ++ dasturchi asboblar to'plami va ochilmagan sunxi-asboblar manba kodlari c: / sunxitools / papkasida bo'lishi kerak. Loyihani yig'ish vaqti keldi. IDE -da yangi loyiha yarating. "Konsolli ilova" turidagi oddiy C (c ++ emas) loyihasini tanlang.
Siz loyihani boshqa joyda emas, balki c: / sunxitools / papkasida yaratayotganingizga ishonch hosil qiling. (EG kod bloklari odatda loyiha bilan bir xil nomdagi kichik papka yaratadi. Agar siz o'z loyihangizni nomlagan bo'lsangiz, "test" deb ayting va uni c: / sunxitools / ga joylashtirishga urinib ko'ring, siz loyihani tugatib qo'yishingiz mumkin. to c: / sunxitools / test / agar siz etarlicha e'tiborli bo'lmasangiz.) Sunxi asboblari bir nechta yordamchi dasturlarni o'z ichiga oladi, lekin bizning maqsadimiz uchun faqat bitta kerak bo'ladi: "fexc" yordamchi dasturi.
7 -qadam: Fayllarni loyihaga qo'shing
To'liq "fexc" yordam dasturi script.bin -ni matn formatiga va orqaga ikkilikka o'tkazish uchun javobgardir. Ushbu yordamchi dasturning "fexc.exe" nomi bo'lishi juda muhim, shuning uchun agar siz loyihangizni "fexc" deb nomlagan bo'lsangiz yaxshi bo'ladi. Loyihaning boshqa nomini ishlatishingiz mumkin, chunki siz har doim kompilyatsiya qilinganidan keyin bajariladigan fayl nomini o'zgartirishingiz mumkin yoki yuqoridagi ochilgan menyudan "Project-> Properties" ni tanlashingiz mumkin va paydo bo'ladigan oynada "Maqsadlarni yaratish" yorlig'ini bosing, va bajariladigan nomni bekor qilish uchun "Chiqish fayl nomi" maydonini tahrir qiling.
Avtomatik ishlab chiqarilgan loyihangizga faqat beshta manba faylini qo'shishingiz kerak:
- fexc.c
- skript.c
- skript_bin.c
- skript_fex.c
- skript_uboot.c
va etti nomli fayllar:
- list.h (uni c: / sunxitools / include / papkasidan c: / sunxitools / papkasiga o'tkazing)
- fexc.h
- skript.h
- skript_bin.h
- skript_fex.h
- skript_uboot.h
- versiya.h
Loyihadan autogenerated main.c ni chiqarib qo'yganingizga ishonch hosil qiling, chunki fexc.c allaqachon "int main" funktsiyasiga ega. (Esda tutingki, har qanday dastur faqat bitta asosiy funktsiyaga ega bo'lishi kerak?).
Barcha kerakli manba kodli fayllar manba kodlarini ochgan pastki papkada joylashgan. Sarlavha fayllari bir juft so'zga loyiq, ularni qaerdan olish kerak. "list.h" - odatda ochilmagan manba kodlari to'plamining "qo'shish" pastki papkasida. "version.h" - uni o'zingiz yarating. U erga quyidagi qatorni qo'ying:
#Win32 versiyasini aniqlang
Keyin faylni saqlang va yoping. (Agar xohlasangiz, uni #define va #ifdef bilan bezashingiz mumkin.)
Agar siz hozir loyihani kompilyatsiya qilmoqchi bo'lsangiz, u ko'plab xatolar va bitta etishmayotgan fayl haqida shikoyat qiladi. Xatolar, asosan, uslubning haddan tashqari erkinligi, dasturchilar tomonidan qo'llaniladigan sunxi-asboblar va etishmayotgan fayl manba kodi paketiga kiritilmaganligi bilan bog'liq. Keling, bu muammoni bosqichma -bosqich hal qilaylik.
8 -qadam: Gcc 1999 ISO C til standartiga rioya qiling
Kompilyator shikoyat qilmasligi uchun, juda erkin dasturlash uslubi kompilyatsiya standarti "s99" ni o'rnatadi. Kod bloklarida "Loyiha -> Qurilish parametrlari" menyusiga o'ting va "Tuzuvchi sozlamalari -> Kompilyator bayroqlari" da "GCC ISO C tilining 1999 standartiga amal qilsin" katagiga belgi qo'ying. Yoki siz "-std = c99" ni kompilyator parametrlar qatoriga qo'shishingiz mumkin. Endi siz loyihani kompilyatsiya qilishga urinib ko'rsangiz, bu tonna xatolar yo'qolishi kerak va siz bir-biringizga bog'liq bo'lmagansiz.
9 -qadam: yo'qolgan qaramlikni toping
Yo'qolgan qaramlik - "mman.h" fayli - Linux xotira menejerining bir turi. Windows C -da bunday fayl yo'q, lekin xayriyatki, uning Windows porti bor. Windows uchun https://github.com/witwall/mman-win32 saytiga o'ting. Git omborining rasmini yuklab oling.
10 -qadam: Mmanni oching
Mman.c va mman.h fayllarini oching, ularni c: / sunxitools / jildiga joylashtiring.
11 -qadam: Va ularni loyihaga qo'shing
12 -qadam: to'g'ri yo'l
Va "fex.c" faylida raplece liniyasi:
#qo'shing
uchun
#"mman.h" ni qo'shing
Ushbu bosqichda sizning kompilyatoringiz hech narsadan shikoyat qilmasligi kerak va siz fexc.exe faylini uzoq vaqt kutasiz. Erta baxtli bo'lmang. Yordamchi dastur hali to'liq ishlamayapti. Siz buni script.fex faylidagi skript.bin faylining matnli formasiga shifrini ochish orqali ta'minlay olasiz, natijada script.fex faylini yana skript.binga shifrlaysiz. Olingan script.bin hajmi asl skript.bin hajmidan biroz farq qilishini e'tiborga olishingiz mumkin. Va agar siz natijani yana bir marta shifrdan chiqarishga urinib ko'rsangiz, bu muvaffaqiyatsiz bo'ladi. Orange PI ham bu script.bin bilan ishlamaydi. Funktsional yordam dasturini olish uchun biz kimdir sunxi-asboblar manba kodini kiritgan kod bombasini chiqarishimiz kerak. Bu bizning keyingi qadamimiz bo'ladi.
13 -qadam: Ekzorizm
Kod bombasini bo'shatish uchun fexc.c kod faylini oching va u erda keyingi tarkibning matnli satrini toping:
if if ((out = open (fayl nomi, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {
Buni faqat keyingi qator bilan almashtiring:
if if ((out = open (fayl nomi, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {
Agar birinchi qatorda "666" yomon raqamlari bo'lmasa, menimcha, koder O_BINARY bayrog'ini ishlatishni unutgan. Ammo "Yirtqichlar soni" uning niyatiga aniqlik kiritadi. Tasavvur qiling, bu qanchalik aqlli: Windows va Linuxda fayllarni qayta ishlashdagi nozik farq tufayli, yordamchi dastur Linuxda tuzilganda va ishlatilganda bomba hech qanday ta'sir ko'rsatmaydi. Ammo yordamchi dastur Windows ostida ishlatilganda hamma narsani buzadi.
Bomba qurolsizlangach, siz nihoyat Windows ish stoli kompyuteringizda fexc yordam dasturini kompilyatsiya qilishingiz va xavfsiz ishlatishingiz mumkin.
14 -qadam: QAYDLAR
1) fexc yordam dasturidan qulay foydalanish uchun siz ikkita ommaviy faylni olishingiz kerak:
bin2fex.bat - va - fex2bin.bat.
Siz ularni Windows uchun fexc.exe dasturidan olishingiz mumkin yoki ularni o'zingiz yozishingiz mumkin:
- bin2fex.bat "fexc -I bin -O fex script.bin script.fex" ni o'z ichiga olishi kerak.
- fex2bin.bat "fexc -O bin -I fex script.fex script.bin" ni o'z ichiga olishi kerak.
2) Windows uchun mman menejerini topish qiyin bo'lsa, uni ishlatishdan butunlay qochish mumkin. Biroq, bu fexc.c faylini tahrir qilishni talab qiladi va hech bo'lmaganda v ma'lumotlarini talab qiladi. Sizning ishonchingiz uchun men fxc-ning v1.4 sunxi-vositalaridan tahrirlangan manba kodini mman.h ga bog'liqlikdan ozod qilaman, kod bloklari loyiha fayli va namuna script.bin bilan apelsin pi. Siz fexc_nomman.zip -ni yuklab olishingiz mumkin
3) Sunxi asboblarining keyingi versiyalarida ular yana bir qancha bog'liqliklar qo'shishi mumkin. Ularni Internetdan topib, kompilyatsiya loyihangizga qo'shishingiz mumkin.
5) Nihoyat, Win32 uchun fexc.exe -ning oldindan tuzilgan versiyasi:
fexc_nomman.zip
Agar siz dangasa bo'lsangiz, ver dan foydalanishingiz mumkin. Agar SunxiTools/Windows -ning yangi versiyalari mavjud bo'lsa, u yangilanib turmasligini unutmang. Menimcha, ba'zi bir ikkilik tuzilishga bog'liq bo'lgandan ko'ra, ularni qanday kompilyatsiya qilishni o'rganish yaxshiroqdir.
4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner" va boshqalar … tegishli egalarining savdo belgilaridir.
5) Agar kompilyator mman funktsiyalarini topa olmasligidan shikoyat qilsa, masalan:
"_imp_mmap" ga aniqlanmagan havola
bilingki, mman rivojlanish jamoasini sevuvchilar kodni faqat dll kutubxonasi sifatida tuzish mumkinligini unutgan. Bu, bizda bo'lgani kabi, statik kutubxona yoki mustaqil kod bo'lishi mumkin. Muammoni hal qilish uchun "mman.h" faylini quyidagicha tahrirlang:
a) satrlarni toping:
#if aniqlangan (MMAN_LIBRXOBANI)
#MMANSHARED_EXPORT _declspec (dllexport) ni belgilang #boshqa #MMANSHARED_EXPORT _declspec (dllimport) #endif
b) qatorni qo'shing
#MMANSHARED_EXPORTni aniqlang
oldingi qadamda topilgan satrlar ostida
Tavsiya:
Z80 MBC2 - QP/M Bios va Loader -ni qayta kompilyatsiya qilish: 6 qadam
Z80 MBC2 - QP/M Bios va Loader -ni qayta kompilyatsiya qilish: Agar men kabi siz ham MBC2 uchun QP/M biosini qayta kompilyatsiya qilishingiz kerak bo'lgan vaziyatga tushib qolsangiz - mana siz shunday qilasiz. mavjud versiyani qanday qayta kompilyatsiya qilish jarayoni. Haqiqiy Biosga o'zgartirish kiritish sizga bog'liq
Z80 MBC2 - CPM2.2 Bios -ni qayta kompilyatsiya qilish: 4 qadam
Z80 MBC2 - CPM2.2 Bios -ni qayta kompilyatsiya qilish: Agar men kabi siz ham MBC2 uchun CP/M biosini (2.2) qayta kompilyatsiya qilishingiz kerak bo'lgan vaziyatga tushib qolsangiz, buni shunday qilasiz. Mening ishim, har safar dastur mavjud bo'lganda yoki siz ctrl-c bajarganingizda "WARM BOOT" xabarini olib tashlamoqchi edim. Men a
Pier9: Yo'qolib ketish xavfi ostida turgan hayvonlar uchun Eurion zargarlik buyumlari: 7 qadam (rasmlar bilan)
Pier9: Yo'qolib ketish xavfi ostida turgan hayvonlar uchun Evron zargarlik buyumlari: Bu zargarlik buyumlarining noyob namunasi yo'qolib ketish xavfi ostida turgan hayvonlarga o'z tasviriga mualliflik huquqi da'volarini bajarishga yordam beradi. Bu naqsh Evion turkumi sifatida tanilgan, u ko'pincha pulni qalbakilashtirishning oldini olish uchun ishlatiladi va uni ko'pgina qog'ozli valyutalarda topish mumkin
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: 11 qadam (rasmlar bilan)
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: Maqsadlar: ≤ 500 dollarga ma'lumot yozuvchi yasang. U harorat, pH va DO ma'lumotlarini vaqt tamg'asi va I2C aloqasi yordamida saqlaydi. Nima uchun I2C (Inter-Integrated Circuit)? Bir nechta sensorlarni bir qatorga yig'ish mumkin, chunki ularning har birida
Orange PI HowTo: 5 dyuymli HDMI TFT LCD displeyi bilan ishlatishga sozlang: 8 qadam (rasmlar bilan)
Orange PI HowTo: 5 dyuymli HDMI TFT LCD displeyidan foydalanishga sozlang: Agar siz to'q sariq rangli PI bilan birga HDMI TFT LCD displeyiga buyurtma berishga aqlli bo'lsangiz, uni ishlashga majburlashdagi qiyinchiliklar sizni tushkunlikka solgandir. Boshqalar hech qanday to'siqlarni payqay olmasalar ham, asosiysi, bu erda