Мазмуну:

Orange PI HowTo: Windows астында Windows үчүн Sunxi куралын түзүү: 14 кадам (сүрөттөр менен)
Orange PI HowTo: Windows астында Windows үчүн Sunxi куралын түзүү: 14 кадам (сүрөттөр менен)

Video: Orange PI HowTo: Windows астында Windows үчүн Sunxi куралын түзүү: 14 кадам (сүрөттөр менен)

Video: Orange PI HowTo: Windows астында Windows үчүн Sunxi куралын түзүү: 14 кадам (сүрөттөр менен)
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Ноябрь
Anonim
Orange PI HowTo: Windows астындагы Windows үчүн Sunxi куралын түзүү
Orange PI HowTo: Windows астындагы Windows үчүн Sunxi куралын түзүү

СУНУШТАР:

Сага керек болот

  1. Windows менен иштеген (рабочий) компьютер.
  2. Интернет байланышы.
  3. Orange PI тактасы.

Акыркы милдеттүү эмес, бирок мен ишенем, сизде буга чейин бар. Болбосо, сиз бул көрсөтмөнү окубайсыз.

Orange PI бир такталуу компьютерин сатып алганда, ал туура конфигурацияланганга чейин өлгөн металлдын бир бөлүгү болуп калат. Жана анын негизги конфигурация файлы: "script.bin" - аны тирүү кылуунун биринчи ачкычы. Бул файл сиздин жүктөлүүчү SD картаңыздын жүктөө бөлүмүндө жайгашкан. Бактыга жараша, Linuxтун көпчүлүк бөлүгүндө расмий сайттан (https://www.orangepi.org/downloadresources/) бул бөлүм FAT32 болуп саналат жана аны Windowsтун каалаган компьютери оңой көрө алат. Бул нерселерди чындап жөнөкөйлөтөт, анткени Windowsтун астынан Linux ext2 бөлүктөрүнө жазуунун ишенимдүү жолу жок.

Бизге ийгиликсиз болгон script.bin конфигурация файлы экилик форматка ээ, адамдык түзөтүү үчүн таптакыр жагымсыз. Аны чечүү жана керектүү өзгөртүүлөр киргизилгенден кийин кайра криптовалаштыруу үчүн кандайдыр бир программалык курал керек. Жана мындай куралдар бар. Бул атактуу SUNXI-TOOLS. Майлардын чымыны-бул Linuxтун астында иштөө үчүн арналган жана биз sunxi-инструменттерин гана колдонуу үчүн атайын Linux машинасын сактап калуубуз керек, же аларды терезелер үчүн кантип чогултуунун жолун табышыбыз керек.

Мен аны түзүп, аткарылуучу файл менен бөлүшмөкмүн, бирок алар жаңы чыгарууну каалашабы же жокпу эч ким билбейт жана сизге ASAP жаңы компиляциясы керек болот. Ошентип, булактан керектүү куралды кантип чогултуу керек экенин көрсөтүүнү чечтим. Баштайлы.

1-кадам: Sunxi-куралдарын жүктөп алыңыз

Sunxi-куралдарын жүктөп алыңыз
Sunxi-куралдарын жүктөп алыңыз
Sunxi куралдарын жүктөп алыңыз
Sunxi куралдарын жүктөп алыңыз

Sunxi-tools'дин акыркы (же керектүү) версиясын алыңыз.

2 -кадам: Sourcecode кодун ачыңыз

Sourcecode кодун ачыңыз
Sourcecode кодун ачыңыз

Жүктөө аяктагандан кийин, баштапкы кодду тандаган папкаңыздан чыгарыңыз. (мындан ары мен бул папканы c: / sunxitools / деп ойлойм, андыктан бул жолду өз жолуң менен алмаштыр).

3 -кадам: Кодду жүктөп алуу:: блоктор

Кодду жүктөп алуу:: блоктор
Кодду жүктөп алуу:: блоктор

Эгерде сизде Windows үчүн кээ бир c ++ компиляторунун көчүрмөсү орнотулган болсо. жана эгер сиз аны кантип колдонууну билсеңиз, 3 -кадамга өтсөңүз болот. Башкалар аны ыңгайлуу колдонуу үчүн тиешелүү c ++ компиляторун жана кабыгын (IDE) алышы керек. Менин тандоо - бул код:: блоктор Windows үчүн, MinGW алдын ала орнотулган шаймандар менен бирге. Аны бул жерден алсаңыз болот:

Жүктөп алып, орнотуңуз.

4 -кадам: IDEди текшериңиз

Сиздин IDEди текшериңиз
Сиздин IDEди текшериңиз

Баары ойдогудай экенин текшерүү үчүн, код блокторун баштаңыз, "жаңы долбоор түзүү" баскычын чыкылдатыңыз, "консоль тиркемесин" тандаңыз, c же c ++ тандаңыз, кассалык долбоордун аталышын териңиз, демейки параметрлерди кийинки терезеде калтырыңыз жана "бүтүрүү" баскычын басыңыз. ".

5 -кадам: Complete Test

Тестти бүтүрүү
Тестти бүтүрүү

Андан кийин IDEдин жогорку панелиндеги жашыл үч бурчтукту чыкылдатыңыз же Build-> Run меню пунктун колдонуңуз. Эгерде баары ойдогудай болсо, кара "DOS" терезесинен сиз өзүңүздүн авторизацияланган "Hello world" колдонмоңуздан келген билдирүүнү көрүшүңүз керек.

Болбосо, бул IDE жана компилятор туура иштебей жатат дегенди билдирет жана сиз аны кантип туура орнотууну иликтешиңиз керек болот. Кыязы, сиз программалоо куралдарынын башка версиясын жүктөп алышыңыз керек же Firewall/Antivirus программасында алардын уруксаттарын текшеришиңиз керек.

6 -кадам: Жаңы долбоор түзүү

Жаңы долбоор түзүү
Жаңы долбоор түзүү
Жаңы долбоор түзүү
Жаңы долбоор түзүү
Жаңы долбоор түзүү
Жаңы долбоор түзүү
Жаңы долбоор түзүү
Жаңы долбоор түзүү

Эми сизде операциялык C/C ++ программистинин инструменттери жана таңгакталбаган sunxi-инструменттери c: / sunxitools / папкасында болушу керек. Долбоорду чогултуу убактысы келди. Сиздин IDEде жаңы долбоор түзүңүз. "Консоль тиркемеси" түрүндөгү жөнөкөй C (c ++ эмес) долбоорун тандаңыз.

Долбоорду башка жерде эмес, c: / sunxitools / папкасында түзүп жатканыңызды текшериңиз. (EG код блоктору проекттин аталышындагы чакан папканы түзүшөт. Демек, эгер сиз долбооруңузду атасаңыз, "тест" деп айтыңыз жана аны c: / sunxitools / деп коюуга аракет кылсаңыз, сиз долбоордун жок болуп кетишиңиз мүмкүн. c: / sunxitools / test / "Эгерде сиз жетишерлик көңүл бурбасаңыз.) Sunxi-инструменттерде бир нече утилиталар бар, бирок биздин максат үчүн бизге бирөө гана керек болот:" fexc "деп аталган утилита.

7 -кадам: Долбоорго файлдарды кошуу

Долбоорго файлдарды кошуу
Долбоорго файлдарды кошуу

Так "fexc" утилита скрипт.бинди текст форматына жана артка экиликке айландыруу үчүн жооптуу. Бул утилитанын "fexc.exe" аталышына ээ болушу абдан маанилүү, эгер сиз долбооруңузду "fexc" деп атасаңыз жакшы болот. Долбоордун башка атын колдонсоңуз болот, анткени сиз дайыма аткарылуучу файлдын аталышын компиляциядан кийин өзгөртө аласыз же жогорку ачылуучу менюдан "Project-> Properties" тандай аласыз жана пайда болгон терезеде "Максаттарды түзүү" өтмөгүн басыңыз, жана аткарылуучу аталышты жокко чыгаруу үчүн "Чыгыш файлынын аты" талаасын түзөтүңүз.

Автогенерацияланган долбоорго Сиз беш гана булак файлын кошушуңуз керек:

  • fexc.c
  • скрипт.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

жана жети баш файлдар:

  • list.h (c: / sunxitools / include / папкасын c: / sunxitools / папкасына жылдырыңыз)
  • fexc.h
  • сценарий.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • версия.h

Автогенерацияланган main.c долбоорунан чыгарууну унутпаңыз, анткени fexc.c ичинде "int main" функциясы бар. (Эсиңизде болсун, кандайдыр бир программанын бир гана негизги функциясы болушу керек?).

Бардык керектүү булак коддору мурунтан эле субкапкада, бул жерде сиз баштапкы коддорду ачып алдыңыз. Башкы файлдар бир жуп сөзгө татыктуу, аларды кайдан алуу керек. "list.h" - көбүнчө таңгакталбаган баштапкы коддордун "кошуу" ички папкасында. "version.h" - жөн гана аны өзүңүз түзүңүз. Ал жерге мындай сапты коюңуз:

#define VERSION "Win32"

Андан кийин файлды сактап, жабыңыз. (Сиз кааласаңыз #аны аныктоо жана #ifdef менен кооздоп койсоңуз болот.)

Эгер сиз азыр долбоорду түзүүгө аракет кылсаңыз, ал көптөгөн каталарга жана бир файлдын жоктугуна нааразы болот. Каталар негизинен ашыкча стиль эркиндигинен, sunxi-инструменттери колдонулган программисттерден жана жетишпеген файл баштапкы коддун пакетине кирбеген көз карандылыктан улам келип чыккан. Бул кадам менен этап -этабы менен күрөшөлү.

8 -кадам: Gcc 1999 ISO C Тил Стандартын аткарыңыз

Gcc 1999 ISO C тилинин стандартын аткарыңыз
Gcc 1999 ISO C тилинин стандартын аткарыңыз

Компилятор даттанбашы үчүн, өтө эркин программалоо стили компиляциянын "с99" стандартын орноткон. Код блокторунда "Проект -> Куруу Параметрлери" менюсуна өтүңүз жана "Компилятордун Орнотуулары -> Компилятор Желектеринде" "gcc 1999 ISO C тилинин стандартын аткарсын" деген кутучаны белгилеңиз. Же сиз жөн эле "-std = c99" кошо аласыз компилятордун параметрлерине string. Now, эгер сиз долбоорду түзүүгө аракет кылсаңыз, анда тонна каталар кетиши керек жана сиз көз карандылыкты жоготуп алдыңыз.

9 -кадам: Жоголгон көз карандылыкты табыңыз

Жоголгон көз карандылыкты табыңыз
Жоголгон көз карандылыкты табыңыз

Жетишпеген көз карандылык "mman.h" файлы - кандайдыр бир Linux эс тутум башкаруучусунун башы. Windows Cде мындай файл жок, бирок бактыга жараша анын терезеси бар. Windows үчүн https://github.com/witwall/mman-win32 дарегине өтүңүз. Git репозиторийинин сүрөтүн жүктөп алыңыз.

10 -кадам: Адамды ачыңыз

Mman ачуу
Mman ачуу

Mman.c жана mman.h файлдарын таңгактан чыгарыңыз, аларды c: / sunxitools / папкасына салыңыз.

11 -кадам: Жана аларды Долбоорго кошуңуз

Жана аларды Долбоорго кошуңуз
Жана аларды Долбоорго кошуңуз

12 -кадам: Туура жол

Туура жол
Туура жол

Жана "fex.c" файлында raplece линиясы:

#кошуу

га

#"mman.h" кошуу

Бул кадамда сиздин компилятор эч нерсеге нааразы болбошу керек жана сиз fexc.exe файлын узак убакыт бою күтөсүз. Эрте бактылуу болбо. Утилита дагы эле толук иштей элек. Сиз муну кандайдыр бир жарактуу script.bin файлынын текст түрүндөгү шифрди чечүү менен камсыз кыла аласыз - скрипт.fex файлы script.fex файлын кайра script.binге шифрлөө менен. Пайда болгон script.bin өлчөмү баштапкы script.bin өлчөмүнөн бир аз айырмаланарын белгилей аласыз. Жана эгер сиз дагы бир жолу чечмелөөгө аракет кылсаңыз, анда ал ишке ашпайт. Orange PI да бул script.bin менен иштебейт. Функционалдык утилитаны алуу үчүн, кимдир бирөө sunxi-tools булак кодуна киргизген бомбаны кое беришибиз керек. Бул биздин кийинки кадамыбыз болот.

13 -кадам: Экзоризм

Exorcism
Exorcism

Код бомбасын чыгаруу үчүн fexc.c код файлын ачыңыз жана ал жерден кийинки мазмундун текст сабын табыңыз:

else if ((out = open (файлдын аты, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Аны кийинки сап менен алмаштырыңыз:

else if ((out = open (filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Эгерде биринчи саптагы "666" деген жаман цифралар болбосо, анда кодер O_BINARY желегин колдонууну унутуп калды деп ойлойм. Бирок Жырткычтын саны анын ниетин ачык -айкын түшүндүрөт. Фигураны караңыз, бул кандай тапкычтык: Windows жана Linuxто файлдарды иштетүүнүн тымызын айырмачылыгынан улам, утилитаны Linuxтун алдында түзүп, колдонуп жатканда бомба эч кандай таасир бербейт. Бирок, бул утилита Windows астында колдонулганда баарын бузат.

Бомба куралсыздандырылгандан кийин, сиз акыры Windows компьютериңиздеги fexc утилитасын түзүп, коопсуз колдоно аласыз.

14 -кадам: ЭСКЕРТҮҮЛӨР

ЭСКЕРТҮҮЛӨР
ЭСКЕРТҮҮЛӨР

1) fexc утилитасын ыңгайлуу колдонуу үчүн, эки партиялык файлды алышыңыз керек:

bin2fex.bat - жана - fex2bin.bat.

Аларды Windows үчүн fexc.exe файлеринин кээ бирлеринен алсаңыз болот, же аларды өзүңүз жазсаңыз болот:

  • bin2fex.bat "fexc -I bin -O fex script.bin script.fex" камтышы керек
  • fex2bin.bat "fexc -O bin -I fex script.fex script.bin" камтышы керек

2) Windows үчүн mman менеджерин табуу кыйын болсо, аны колдонуудан таптакыр кача алабыз. Бирок fexc.c файлын оңдоону талап кылат жана жок дегенде c маалыматын талап кылат. Сиздин ишенимдүүлүгүңүз үчүн, мен mx.h көз карандылыгынан алыс турган sunxi-tools v1.4-тен fexcтин оңдолгон булак кодун codeblocks проекти файлы менен бирге жана апельсин пи үлгүсүндөгү script.bin менен бөлүшөм. Сиз fexc_nomman.zip жүктөп алсаңыз болот

3) Sunxi инструменттеринин кийинки версияларында алар дагы бир нече көз карандылыкты кошушу мүмкүн. Аларды интернеттен таап, аларды сиздин компиляция долбооруңузга кошуңуз.

5) Акыры бул жерде Win32 үчүн fexc.exeнин алдын ала түзүлгөн версиясы:

fexc_nomman.zip

Эгерде сиз жетишерлик жалкоо болсоңуз, верди колдонуңуз. Бирок SunxiTools/Windowsтун жаңы версиялары качан/качан жеткиликтүү боло тургандыгы жаңыртылбай турганын унутпаңыз. Ошентип, мен ойлойм, кандайдыр бир туруктуу бинардык түзүлүшкө көз каранды болгондон көрө, аларды кантип компиляциялоону үйрөнүү жакшыраак.

4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", ж.б.… тиешелүү ээлеринин корреспонденттик соода белгилери.

5) Эгерде компилятор mman функцияларын таппай жатканына нааразы болсо, анда:

"_imp_mmap" белгисиз шилтеме

билиңиз, mman өнүктүрүү коомчулугун сүйүүчүлөр кодду dll китепканасы катары эле түзүүгө болорун унутуп коюшту. Бул ошондой эле биздегидей статикалык китепкана же өз алдынча код болушу мүмкүн. Көйгөйдү чечүү үчүн "mman.h" файлын төмөнкүдөй түзөтүңүз:

а) саптарды табуу:

#аныкталган болсо (MMAN_LIBRARY)

#MMANSHARED_EXPORT _declspec (dllexport) #башка #MMANSHARED_EXPORT _declspec (dllimport) #endifти аныктаңыз

б) сапты кошуу

#аныктоо MMANSHARED_EXPORT

жөн гана мурунку кадамда табылган саптардын астында

Сунушталууда: