فهرست مطالب:

Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 مرحله (همراه با تصاویر)
Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 مرحله (همراه با تصاویر)

تصویری: Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 مرحله (همراه با تصاویر)

تصویری: Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows: 14 مرحله (همراه با تصاویر)
تصویری: Orange Pi Zero 2024, جولای
Anonim
Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows
Orange PI HowTo: Compile Sunxi Tool for Windows Under Windows

پیش نیازها:

شما نیاز خواهید داشت

  1. رایانه ای (رومیزی) با ویندوز
  2. اتصال به اینترنت.
  3. یک تخته PI نارنجی.

آخرین مورد اختیاری است ، اما مطمئن هستم که شما قبلاً آن را دارید. در غیر این صورت شما این مطالب آموزشی را نخوانید.

هنگام خرید رایانه تک صفحه Orange PI تا زمانی که به درستی پیکربندی نشده باشد ، فقط یک تکه از فلز مرده باقی می ماند. و فایل پیکربندی اصلی آن: "script.bin" اولین کلیدی است که آن را زنده می کند. این فایل در پارتیشن بوت کارت SD قابل بوت شما قرار دارد. و خوشبختانه در اکثر توزیع های لینوکس از سایت رسمی (https://www.orangepi.org/downloadresources/) این پارتیشن FAT32 است و توسط هر رایانه ویندوزی به راحتی قابل مشاهده است. این کار واقعاً را ساده می کند ، زیرا هنوز هیچ راهی قابل اعتماد برای نوشتن در پارتیشن های لینوکس ext2 از زیر ویندوز وجود ندارد.

از بدشانسی ما فایل پیکربندی script.bin دارای فرمت دودویی است که برای ویرایش انسان کاملاً غیر دوستانه است. شخص به نوعی ابزار نرم افزاری نیاز دارد تا آن را رمزگشایی کرده و پس از انجام تغییرات لازم ، مجدداً رمزنگاری شود. و چنین مجموعه ابزارهایی وجود دارد. این SUNXI-TOOLS بدنام است. پرواز در پماد این است که قصد دارد تحت لینوکس اجرا شود و یا باید یک دستگاه لینوکس اختصاصی برای استفاده فقط از ابزارهای sunxi نگه داریم یا راهی برای جمع آوری آنها برای ویندوز پیدا کنیم.

من به سادگی می توانم آن را کامپایل کرده و فایل اجرایی را به اشتراک بگذارم ، اما هیچ کس نمی داند که آیا آنها می خواهند نسخه جدیدی را منتشر کنند یا خیر و شما به یک مجموعه جدید در اسرع وقت نیاز دارید. بنابراین تصمیم گرفتم راهنمای تهیه ابزار ضروری را از منابع تهیه کنم. بیایید شروع کنیم.

مرحله 1: Sunxi-tools را بارگیری کنید

Sunxi-tools را بارگیری کنید
Sunxi-tools را بارگیری کنید
Sunxi-tools را بارگیری کنید
Sunxi-tools را بارگیری کنید

آخرین نسخه (یا ضروری) کد منبع sunxi-tools را دریافت کنید. به URL بروید: https://github.com/linux-sunxi/sunxi-tools/releases و بارگیری را به عنوان بایگانی zip انتخاب کنید.

مرحله 2: کد منبع را از حالت فشرده خارج کنید

کد منبع را از حالت فشرده خارج کنید
کد منبع را از حالت فشرده خارج کنید

پس از اتمام بارگیری ، کد منبع را در پوشه مورد نظر خود از حالت فشرده خارج کنید. (در ادامه فرض می کنم که این پوشه c: / sunxitools / است ، بنابراین این مسیر را با مسیر خود جایگزین کنید).

مرحله 3: کد:: بلوک ها را بارگیری کنید

کد بارگیری:: بلوک ها
کد بارگیری:: بلوک ها

اگر نسخه نصب شده ای از کامپایلر عملیاتی c ++ برای ویندوز دارید. و اگر نحوه استفاده از آن را می دانید ، می توانید مستقیماً به مرحله 3 بروید. دیگران باید از یک کامپایلر مناسب c ++ و یک پوسته (IDE) برای راحتی استفاده از آن استفاده کنند. انتخاب من کد:: block برای ویندوز و زنجیره ابزار MinGW از پیش نصب شده است. می توانید آن را از اینجا دریافت کنید:

آن را بارگیری و نصب کنید.

مرحله 4: IDE خود را آزمایش کنید

IDE خود را آزمایش کنید
IDE خود را آزمایش کنید

برای بررسی وضعیت خوب ، بلاک های کد را شروع کنید ، روی "ایجاد یک پروژه جدید" کلیک کنید ، "برنامه کنسول" را انتخاب کنید ، یا c ++ c را انتخاب کنید ، عنوان پروژه پرداخت را تایپ کنید ، پیش فرض ها را در پنجره بعدی دست نخورده نگه دارید و روی "پایان" کلیک کنید."

مرحله 5: آزمایش کامل

تست کامل
تست کامل

سپس روی یک مثلث سبز در بالای صفحه IDE کلیک کنید یا از منوی Build-> Run استفاده کنید. اگر همه چیز درست پیش رفت باید پیامی از برنامه تولید شده خود "Hello world" در پنجره سیاه "DOS" مشاهده کنید.

در غیر این صورت ، به این معنی است که IDE و کامپایلر به درستی کار نمی کنند و شما باید نحوه تنظیم آن را بررسی کنید. احتمالاً باید نسخه دیگری از ابزارهای برنامه نویسی را بارگیری کرده یا مجوزهای آنها را در نرم افزار فایروال/آنتی ویروس خود بررسی کنید.

مرحله 6: ایجاد پروژه جدید

ایجاد پروژه جدید
ایجاد پروژه جدید
ایجاد پروژه جدید
ایجاد پروژه جدید
ایجاد پروژه جدید
ایجاد پروژه جدید
ایجاد پروژه جدید
ایجاد پروژه جدید

اکنون باید یک ابزار برنامه نویس C/C ++ عملیاتی و کد منبع باز نشده sunxi-tools در پوشه c: / sunxitools / در رایانه خود داشته باشید. زمان جمع آوری یک پروژه فرا رسیده است. پروژه جدیدی در IDE خود ایجاد کنید. پروژه ساده C (نه c ++) از نوع "برنامه کنسول" را انتخاب کنید.

مطمئن شوید که پروژه را در پوشه c: / sunxitools / ایجاد می کنید و نه در مکان دیگری. (بلوک های کد EG تمایل به ایجاد یک پوشه فرعی با همان نام پروژه دارند. بنابراین اگر نام پروژه خود را گذاشته اید ، "test" را بگویید و سعی کنید آن را در c: / sunxitools / قرار دهید ، ممکن است پروژه شما به پایان برسد به c: / sunxitools / test / اگر توجه کافی ندارید.) Sunxi-tools شامل چندین ابزار مفید است ، اما برای هدف ما فقط به یکی نیاز داریم: ابزار "fexc".

مرحله 7: افزودن فایل به پروژه

افزودن فایل به پروژه
افزودن فایل به پروژه

دقیقاً ابزار "fexc" مسئول تبدیل script.bin به فرمت متن و تبدیل برگشتی به باینری است. ضروری است که برنامه اجرایی این ابزار دارای نام "fexc.exe" باشد ، بنابراین خوب است اگر پروژه خود را "fexc" نامگذاری کرده باشید. با این وجود ، می توانید از هر نام دیگری برای پروژه استفاده کنید ، زیرا همیشه می توانید نام فایل اجرایی را پس از کامپایل تغییر دهید ، یا می توانید "Project-> Properties" را از منوی کشویی بالا انتخاب کرده و در پنجره ظاهر شده ، برگه "Build target" را کلیک کنید. و فیلد "نام فایل خروجی" را در آنجا ویرایش کنید تا نام اجرایی را نادیده بگیرید.

به پروژه تولید خودکار شما فقط باید پنج فایل منبع اضافه کنید:

  • fecc.c
  • script.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

و هفت فایل سرصفحه:

  • list.h (آن را از c: / sunxitools / include / folder / به c: / sunxitools / folder منتقل کنید)
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • نسخه. ساعت

مطمئن شوید main.c خودکار از پروژه حذف شود ، زیرا fexc.c قبلاً عملکرد "int main" را در آن دارد. (به یاد داشته باشید که هر برنامه باید فقط یک عملکرد اصلی داشته باشد؟).

همه فایلهای کد منبع ضروری در حال حاضر در زیر پوشه هستند ، جایی که کد منبع را در آن باز کرده اید. فایلهای سرصفحه مستلزم یک جفت کلمه است که آنها را از کجا تهیه کنید. "list.h" - معمولاً در زیر پوشه "include" مجموعه کدهای باز نشده قرار دارد. "version.h" - فقط خودتان آن را ایجاد کنید. رشته ای مانند زیر قرار دهید:

#تعریف نسخه "Win32"

سپس فایل را ذخیره و ببندید. (در صورت تمایل می توانید آن را با #define و #ifdef تزئین کنید.)

اگر اکنون سعی کنید پروژه را کامپایل کنید ، از خطاهای زیادی و یک پرونده مفقود شده شکایت می کند. این خطاها بیشتر به دلیل کمی آزادی بیش از حد سبک ، برنامه نویسان sunxi-tools بود که مورد استفاده قرار می گرفت و فایل مفقود شده وابستگی ای است که در بسته کد منبع گنجانده نشده است. بیایید گام به گام با این موضوع برخورد کنیم.

مرحله 8: Gcc از استاندارد زبان ISO 1999 C پیروی کنید

Gcc از استاندارد زبان ISO 1999 C پیروی کنید
Gcc از استاندارد زبان ISO 1999 C پیروی کنید

برای اینکه کامپایلر شکایت نکند ، شیوه برنامه نویسی بسیار رایگان استاندارد "с99" مجموعه را تنظیم کرده است. در بلوک های کد به منوی "Project -> Build Options" رفته و در "تنظیمات کامپایلر -> کامپایل پرچم" کادر انتخاب "Have gcc follow 1999 ISO standard standard language standard" را علامت بزنید. یا فقط می توانید "-std = c99" را به رشته گزینه های کامپایلر خود اضافه کنید. حالا اگر سعی می کنید پروژه را کامپایل کنید ، تعداد زیادی خطا باید شروع شود و شما با وابستگی از دست رفته یک به یک هستید.

مرحله 9: وابستگی گمشده را پیدا کنید

وابستگی گمشده را پیدا کنید
وابستگی گمشده را پیدا کنید

وابستگی گم شده فایل "mman.h" است - سربرگ نوعی مدیریت حافظه لینوکس. Windows C بطور طبیعی چنین فایلی ندارد ، اما خوشبختانه یک درگاه ویندوز از آن وجود دارد. برای ویندوز به https://github.com/witwall/mman-win32 بروید. تصویر فوری مخزن git را بارگیری کنید.

مرحله 10: بسته Mman را باز کنید

مرد را باز کنید
مرد را باز کنید

فایل های mman.c و mman.h را باز کنید ، آنها را در پوشه c: / sunxitools / قرار دهید.

مرحله 11: و آنها را به پروژه اضافه کنید

و آنها را به پروژه اضافه کنید
و آنها را به پروژه اضافه کنید

مرحله 12: مسیر صحیح

مسیر صحیح
مسیر صحیح

و در فایل "fex.c" raplece line:

#عبارتند از

به

#شامل "mman.h"

در این مرحله کامپایلر شما نباید از چیزی شکایت کند و fexc.exe منتظر طولانی را به عنوان خروجی دریافت خواهید کرد. زود خوشحال نشو این ابزار هنوز به طور کامل کار نمی کند. شما می توانید با رمزگشایی برخی از فایلهای معتبر script.bin به شکل متن - فایل script.fex و در نتیجه رمزگذاری مجدد فایل script.fex در script.bin از این امر اطمینان حاصل کنید. ممکن است توجه داشته باشید که اندازه script.bin حاصله کمی با اندازه script.bin اصلی تفاوت دارد. و اگر سعی کنید یکبار دیگر نتیجه را رمزگشایی کنید ، شکست می خورد. PI نارنجی با این script.bin کار نخواهد کرد. برای بدست آوردن ابزار کاربردی ، باید یک بمب کد را تخلیه کنیم ، که کسی آن را در کد منبع sunxi-tools قرار داده است. این مرحله بعدی ما خواهد بود.

مرحله 13: جن گیری

جن گیری
جن گیری

به منظور تخلیه بمب کد ، فایل کد fexc.c را باز کرده و یک رشته متنی از محتوای بعدی را در آنجا پیدا کنید:

else if ((خارج = باز (نام فایل ، O_WRONLY | O_CREAT | O_TRUNC ، 0666)) <0) {

فقط کافی است آن را با رشته بعدی جایگزین کنید:

else if ((خارج = باز (نام فایل ، O_WRONLY | O_CREAT | O_TRUNC | O_BINARY ، 512)) <0) {

اگر نه اعداد بد "666" در اولین رشته ، من فکر می کنم که برنامه نویس فقط فراموش کرده است که از پرچم O_BINARY استفاده کند. اما تعداد جانور به طور شفاف قصد خود را روشن می کند. تصور کنید ، چقدر مبتکرانه است: به دلیل تفاوت ظریف در نحوه پردازش پرونده ها در ویندوز و لینوکس ، بمب هیچ تأثیری در هنگام کامپایل و استفاده از برنامه تحت لینوکس ندارد. اما وقتی از این ابزار در ویندوز استفاده می شود ، همه چیز خراب می شود.

پس از خنثی سازی بمب ، در نهایت می توانید از ابزار fexc در رایانه رومیزی Windows خود کامپایل و با خیال راحت استفاده کنید.

مرحله 14: یادداشت ها

یادداشت
یادداشت

1) برای استفاده راحت از ابزار fexc ، باید دو فایل دسته ای دریافت کنید:

bin2fex.bat - و - fex2bin.bat.

شما می توانید آنها را از برخی از اشکال fexc.exe build برای Windows موجود دریافت کنید ، یا می توانید آنها را خودتان تایپ کنید:

  • bin2fex.bat باید حاوی "fexc -I bin -O fex script.bin script.fex" باشد
  • fex2bin.bat باید حاوی "fexc -O bin -I fex script.fex script.bin" باشد

2) اگر پیدا کردن مدیر mman برای ویندوز مشکل باشد ، می توانید از استفاده از آن به هیچ وجه خودداری کنید. با این حال ، ویرایش بسیار بیشتری از فایل fexc.c طول می کشد و حداقل به دانش c نیاز دارد. برای اطمینان شما ، من کد منبع ویرایش شده fexc را از sunxi-tools v1.4 بدون وابستگی به mman.h به همراه فایل پروژه codeblocks و با script.bin نمونه از pi pi نارنجی به اشتراک می گذارم. می توانید fexc_nomman.zip را بارگیری کنید

3) ممکن است در نسخه های بعدی ابزارهای sunxi ، وابستگی های بیشتری را نیز اضافه کنند. با خیال راحت آنها را از طریق اینترنت پیدا کرده و به پروژه تدوین خود اضافه کنید.

5) در نهایت در اینجا نسخه پیش کامپایل شده fexc.exe برای Win32 آمده است:

fexc_nomman.zip

اگر به اندازه کافی تنبل هستید ، از ver استفاده کنید. با این حال ، مراقب باشید که در صورت/زمانی که نسخه های جدیدتر SunxiTools/Windows در دسترس باشد ، به روز نمی شود. بنابراین ، فرض می کنم بهتر است نحوه جمع آوری آنها را یاد بگیرم تا اینکه به برخی از ساختارهای باینری ثابت وابسته باشم.

4) "Orange PI" ، "Code:: Blocks" ، "Windows" ، "Linux" ، "Sunxi-Tools" ، "Allwinner" و غیره … علائم تجاری مربوط به صاحبان مربوطه می باشند.

5) اگر کامپایلر شما از پیدا نکردن توابع mman شکایت می کند ، مانند:

اشاره نامشخص به '_imp_mmap'

توجه داشته باشید که دوستداران جامعه توسعه mman فراموش کرده اند که کد را می توان نه تنها به عنوان کتابخانه dll کامپایل کرد. همچنین می تواند یک کتابخانه ثابت یا یک کد مستقل باشد مانند ما در اینجا. برای رفع مشکل فایل "mman.h" را به صورت زیر ویرایش کنید:

الف) رشته ها را بیابید:

#اگر تعریف شده باشد (کتابخانه MMAN)

#تعریف MMANSHARED_EXPORT _declspec (dllexport) #دیگر #تعریف MMANSHARED_EXPORT _declspec (dllimport) #endif

ب) رشته را اضافه کنید

#تعریف MMANSHARED_EXPORT

درست زیر رشته هایی که در مرحله قبل یافت شد

توصیه شده: