چرا کدویژن نه؟!

1
729
چرا کدویژن نه؟!
چرا کدویژن نه؟!
نرم‌افزار کدویژن
نرم‌افزار کدویژن

کدویژن و AVR

اگر اسم AVR را شنیده باشید، قطعا اسم کدویژن را هم شنیده‌اید، کدویژن یکی از محبوب ترین و شناخته‌شده‌ ترین کامپایلرهای AVR است که در ایران مورد استفاده قرار می‌گیرد، به نحوی که هرکسی قصد استفاده از میکروکنترلر AVR را داشته بادش، حتما اسم آن را شنیده است و چه بسا آن را نصب و از آن استفاده کرده است.

کامپایلرِ معروف

اما چه چیزی این کامپایلر را تا این حد از معروفیت رسانده است؟نخستن نکته کلیدی در ماجرای معروفیت کدویژن این است که ما در ایران قانون کپی رایت را رعایت نمی‌کنیم و به راحتی میتوانیم از نسخه قفل شکسته این نرم افزار تجاری استفاده کنیم و این خود یکی از اصلی‌ترین عواملی است که باعث معروفیت این کامپایلر شده است. شاید اگر مجبور بودید برای استفاده از این نرم‌افزار ۲۰۰ یورو یا حدود ۱ میلیون تومان پول پرداخت کنید، آن وقت دیگر این نرم‌افزار را به چشم یک نرم‌افزار رایج نگاه نمی‌کردید همانطور که واقعا نرم‌افزار معروفی نیست.

محبوبیت کدویژن

آمار محبوبیت کدویژن در کشورهای مختلف
آمار محبوبیت کدویژن در کشورهای مختلف

همانطور که در آمار بالا مشاهده می‌کنید، بیشترین بازدیدهای صورت گرفته از سایت نرم‌افزار (hpinfotech.ro ) از ایران بوده است که نشان دهنده میزان محبوبیت این نرم‌افزار در ایران و البته فقط ایران است.

مسئله بعدی که موجب محبوبیت این نرم‌افزار شده است، وجود کدویزارد می باشد. کدویزارد بخشی از این نرم‌افزار می‌باشد که به شما اجازه می‌دهد پیکربندی اولیه میکروکنترلر را به صورت گرافیکال و ویژوال انجام دهید و نیازی به انجام این پیکربندی‌ها به صورت دستی و کدی نداشته باشید.

کدویزارد و پیکربندی اولیه میکروکنترلر
کدویزارد و پیکربندی اولیه میکروکنترلر

قطعا این قابلیت جذابیت ویژه‌ای برای افراد مبتدی و حتی حرفه‌ای دارد، وقتی که به‌راحتی و با چند کلیک درگاه SPI یا UART یا I2C را پیکربندی می‌کنید بدون اینکه درگیر رجیسترها و بیت‌ها شده باشید، در نگاه اول این فرآیند بسیار فریبنده است و آدم خیال می‌کند که از شر رجیسترها و دست کاری بیت‌ها راحت شده است اما واقعیت چیز دیگری است، چرا که تجربه ثابت کرده در مسیر توسعه برنامه نیاز خواهید داشت که با تک تک بیت‌ها دست‌و پنجه نرم کنید و کدویزارد کمکی به شما نمی کند. نرم افزار های جانبی زیادی به صورت رایگان منتشر شده‌اند که کار پیکربندی اولیه را انجام می دهند مثل AVRWiz

AVRwizard و پیکربندی اولیه میکروکنترلر
AVRwizard و پیکربندی اولیه میکروکنترلر

اما دو نقص اساسی داشته‌اند؛ اول اینکه تمام پیکربندی‌ها رو به صورت جامع و متمرکز انجام نمی‌دهند و یا اینکه از تمام خانواده AVR پشتیبانی نمی‌کنند و البته این که خروجی تولید شده بیشتر منطبق بر کامپایلر رایگان و قدرتمند GCC است. همین عوامل باعث عدم استقبال کاربرهای ایرانی از این نوع نرم افزارها شده است. از دیگر موارد محبوبیت کامپایلر کدویژن وجود کتابخانه‌های آماده آن است که کاربر را در راه‌اندازی دستگاه‌های کناری یاری می کنید مثلا برای راه‌اندازی یک ال‌سی‌دی کارکتری جز اینکه کاربر در کدویزارد چند کلیک کند و پیکربندی اولیه را انجام دهد، کار دیگری لازم نیست و خود کدویژن کتابخانه مربوطه رو در برنامه صدا میزند و کار پیکر بندی را برای شما انجام می دهد.

کاربرد نداشتن کدویژن

حالا آنچه که باعث می شود خیلی از افراد تمایلی به استفاده از کدویژن نداشته باشند چیست ؟
آیا تا به‌حال به این مسئله فکر کرده‌اید که چه چیزی باعث می‌شود کاربران سراسر جهان ترجیح دهند راه حل دیگری را جایگزین استفاده از کدویژن کنند؟ در کنار تمام مزایای نام‌برده شده از این نرم‌افزار، معایبی وجود دارد که قابل چشم‌پوشی نیست. اولین و مهم‌ترین مسئله این است که کدویژن ساختار یک کامپایلر استاندارد را دارا نمی‌باشد و از آن پشتیبانی نمی‌کند. در یک کامپایلر استاندارد ابتدا فایل‌ها به‌ صورت مجزا به فایل آبجکت تبدیل می‌شوند و بعد از آن با استفاده از یک دستورالعمل به هم لینک می‌شوند و فایل خروجی برنامه حاصل می‌شود.

کامپایل‌ استاندارد در کدویژن
کامپایل‌ استاندارد در کدویژن

این ساختار علاوه بر اصولی بودن مزایای خیلی زیادی دارد که بعنوان نمونه میتوان به سرعت کامپایل اشاره کرد، زیرا که فقط فایل‌های تغییر کرده نیاز به کامپایل مجدد دارند و نیاز نیست کل فایل‌ها کامپایل شوند(بر خلاف چیزی که در کدویژن اتفاق می افتد) یا اینکه وقتی شما بتوانید فایل‌ها به صورت مجزا کامپایل کنید یعنی در واقع می‌توانید کار گروهی بهتری در روال انجام پروژه داشته باشید، یا اینکه میتوانید به راحتی از کتابخانه‌های آماده‌ای که دیگران نوشته‌اند بدون کمترین تغییری استفاده کنید، برنامه شما میتواند ترکیبی از فایل های اسمبلی و C و C++ باشد.
مساله مهم بعدی ، همانطور که در سایت خود کدویژن به آن اشاره شده است، عدم پشتیبانی کامل از زبان C است.

 

عدم پشتیبانی کدویژن از زبان C
عدم پشتیبانی کدویژن از زبان C

 

همانطور که گفته شد فقط با ANSI C هماهنگی دارد نه اینکه آن را به صورت کامل پشتیبانی می‌کند، همانطور که می‌دانید خود ANSI C اولین ورژن استاندرد زبان C است که در سال 1972 استاندارد سازی شد. بعدها ورژن‌های کاملتری از زبان سی ارائه شد مثل C98,C90,C95,C99,C11 که کدویژن هیچ کدام از آنها را پشتیبانی نمی‌کند. در واقع وقتی از کدویژن استفاده میکنید مجبورید از نسخه‌ی اولیه‌ی زبان C بهره ببرید که همین امر باعث میشود خیلی از کتابخانه‌های آماده موجود برای شما غیرقابل استفاده شوند.

در واقع کدویژن از تمام قابلیت‌های زبان ANSI C هم استفاده نمی کند، بعنوان مثال شما در کدویژن قادر به تعریف اشاره‌گر به یک فانکشن نیستید(البته شاید در نسخه های جدید اضافه شده باشد).

مساله حائز اهمیت بعدی، وجود خطاها و باگ‌های اساسی در این برنامه است که معلوم نیست به دلیل کرک شدن به وجود امده‌اند یا به دلیل خطای برنامه‌نویسی، باگ‌هایی که گاهاً کلافه‌کننده و سرگردان‌کننده هستند، بعنوان مثال شاید ساعت‌ها و روزها با برنامه کلنجار رفته باشید و بعد فهمیده باشید که خطا از برنامه نیست و از کامپایلر است، هیچ چیز به این اندازه کلافه‌کننده نخواهد بود. وقتی شما از کدویژن استفاده می کنید، مجبورید که از ویرایشگر کد خود کدویژن استفاده کنید و قادر نخواهید بود که از ویرایشگرهای پیشرفته‌ای مثل نت بینز یا ایکلیپس استفاده کنید. وقتی از ویرایشگرهای پیشرفته استفاده می کنید هم توسعه برنامه خیلی سریعتر خواهد بود و هم پیدا کردن خطاهای احتمالی برنامه راحت تر خواهد بود.
نقاط قوت و ضعف دیگری که در خصوص این نرم‌افزار وجود دارد که مجال پرداختن به همه آنها از حوصله‌ی این مقاله خارج است، ما فقط سعی در بررسی نکات مهم و کلیدی آن داشتیم.
سوالی که همچنان باقی می‌ماند این است که اگر کدویژن نه، پس از چه جایگزینی میتوانیم استفاده کنیم؟ پاسخ این سوال مهم را در مقاله “کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها ” خواهیم داد

 

 

منبع: سیسوگ

مطلب قبلیقفلی امن برای میکروکنترلرهای STM32
مطلب بعدیجنگ پردازنده‌ها

1 نظر

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید