Toolchain چیست؟Cross Compiler چیست؟

مجوعه ابزار Toolchainمجموعه ای از نرم افزار هاست که امکان می دهد برنامه نوشته شده، به زبان ماشین هدف تبدیل گردد.

به عبارت ساده همانطور که در میکروکنترلرهای AVR دیده ایم ما برنامه را با کمک یک نرم افزار (codevision , AVR studio,BASCOM,…) می نویسیم. سپس این برنامه را در همان محیط کامپایل می کنیم. برنامه های اشاره شده یک محیط IDE هستند که هم امکان ویرایش برنامه را می دهند و هم برنامه را کامپایل به زبان AVR می کنند. حال برنامه ای مانند WinAVR این حالت IDE را ندارد و شما برنامه را با یک ویرایشگر تایپ می کنید و سپس با WinAVR کامپایل می نمایید.

همانطور که می دانید در هنگام کامپایل کردن ابتدا برنامه نوشته شده تبدیل به فایل object می شود. اگر فایل شما از کتابخانه های مختلف دیگری استفاده نماید بعد از تبدیل فایل ها به object این فایل ها به کمک یک Linker ،لینک می شوند و در انتها فایل ها تبدیل به باینری می شود. مجموعه این ابزار ها یک Toolchain می باشد.

حال وقتی شما یک برنامه را می نویسید تا بر روی یک PC اجرا نمایید Toolchain شما، ابزاری برای کامپایل بر روی PC و تبدیل برنامه به زبان CPU ی PC شما فراهم آورده است.مثل Turbo Cیا Pascal. اما اگه قرار باشد مثل مورد اول برنامه شما روی یک میکروکنترولر اجرا شود دیگر نمی توانید برنامه ای که مثلا با زبان C نوشته اید را با کامپایلر Turbo C کامپایل و فایل باینری حاصل را به میکروکنترولر منتقل کنید. بلکه نیاز دارید از کامپایلر دیگری که برنامه را به زبان میکروکنترولر تبدیل می کند، استفاده نمایید و بعد از نوشتن برنامه بر روی PC با کمک این کامپایلر که زبان میکروکنترولر را می فهمد و بر روی PC شما نصب شده است، برنامه را تبدیل به باینری قابل فهم توسط میکروکنترولر کنید. به این کامپایلر Cross-Compiler می گویند. یعنی کامپایلری که بر روی یک ماشین میزبان(Host) می نشیند و برنامه به زبان ماشین هدف(Host) تبدیل می کند. PC مورداستفاده Host و میکروکنترولر Target است. بنابراین شما برنامه را روی Host برای Target کامپایل کردید. می توان انتظار داشت این برنامه کامپایل شده بر روی سیستم Host اجرا نشود زیرا برنامه برای زبان ماشین Target کامپایل شده است.

از جمله Cross-Compiler ها که ما نیز در آموزش های خود استفاده می کنیم Arm-Linux-GCC می باشد.ما در اینجا از ویرایش های مختلف ای کامپایلر نام خواهیم برد و هر کجا که از آن استفاده می کنیم لینک دانلود آن را نیز قرار می دهیم.برای شروع ما از جدیدترین ورژن آن یعنی arm-linux-gcc-4.3.2 استفاده می کنیم.

http://www.arm123.com.cn/linux/arm-linux-gcc-4.3.2.tgz

حجم این فایل حدود 80MB است که در CD همراه برد های ما وجود دارد.

بعد از دانلود این فایل باید یا از ادیتور های معمول برای نوشتن یا اصلاح برنامه های استفاده کنید یا از یک محیط IDE مانند eclipse که قابلیت نصب هم در محیط window و هم Linux را دارد. این IDE را در آموزش های بعد توضیح خواهم داد.

ما در اینجا از ادیتور های موجود در لینوکس استفاده می کنیم. بنابراین در ابتدا نیاز به یک سیستم عامل لینوکس بر روی PC خود هستید. ما در اینجا از Ubuntu استفاده می کنیم. بعد از دانلود cross-compiler این فایل tgz را در فولدر /usr/local/arm باز نمایید(Extract کنید).برای این کار یا از محیط X windows استفاده کنید یا به کمک خط دستور زیر در ترمینال این عمل را انجام دهید. (برای هر دو حالت نیاز دارید به root دسترسی داشته باشید. ما پیشنهاد می دهیم از ترمینال استفاده کنید)

sudo su

password:

cp arm-linux-gcc-4.3.2.tgz /usr/local/arm

tar –xvzf /usr/local/arm/arm-linux-gcc-4.3.2.tgz

rm /usr/local/arm/arm-linux-gcc-4.3.2.tgz

در خط دستور مشخص شده با رنگ سبز باید آدرسی که فایل .tgz ما وجود دارد تایپ گردد

تازه ها

شركت كاريزان ارتباط در راستاي مناقصه هوشمند سازي معابر شهري شهر گرگان به صورت آزمايشي تعدادي از ترانس هاي اين شهر را به سيستم هوشمند روشنايي معابر تجهيز ميكند.

شركت كاريزان ارتباط در زمينه طراحي و مشاوره سخت افزار بردهاي ARM   با شركت ميكروموج همكاري مي كند. اين همكاري شامل نصب نرم افزارهاي لازم براي پشتيباني پروتكل SNMP   برروي بردهاي ARM و همچنين تامين و يكپارچه سازي سيستمهاي توليدي شركت ميكروموج با اين پردازشگرهاي پيشرفته مي باشد.