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

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

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

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

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

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

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

نرم افزار های جانبی زیادی به صورت رایگان منشتر شده اند که کار پیکر بندی اولیه را انجام می دهند مثل AVRWiz

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

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

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

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

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

مساله مهم بعدی ، همانطور که در سایت خود کدویژن به آن اشاره شده است ، عدم پشتیبانی کامل از زبان C است.

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

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

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

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

حمایت از Zeus ‌

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

Zeus ‌
Zeus ‌

زئوس هستم ساکن المپ

دیدگاه ها

26 دیدگاه

  • هادی
    ۱۵ اسفند ۱۳۹۹

    سلام . دوست عزیز لطف کنید این مقاله رو با مقاله آردینو یا avr مقایسه کنید. به راحتی متوجه میشوید که این دو مقاله استدلال های همدیگرو نقض میکنن. این استدلال هایی رو که بر علیه کد ویژن استفاده کردین دقیقا بد علیه آردینو هم صدق میکنه. بلاخره برای طراحی باید درگیر جزییات بشیم یا نه؟!

    • Zeus ‌
      zeus
      ۱۷ اسفند ۱۳۹۹

      بستگی به خودون داره
      تا چه لولی میخواید طراحی انجام بدید ؟ چطور میخواید پشتیبانی انجام بدید و خیلی از این سوالات هستند که جواب شما رو مشخص میکنند.

  • علی
    ۲۵ شهریور ۱۳۹۹

    با عرض سلام
    اگر شد یه مطلب بنویسد برای اینکه تو چه وقتی هایی بهتره از avr استفاده کنیم و خیلی هم عالی میشه اگه چند تا مثال عملی بزنید.

    • Zeus ‌
      زئوس Zeus
      ۲۳ آبان ۱۳۹۹

      سلام
      این مورد خیلی میتونه وسیع باشه و هیچ پیش فرضی وچود نداره براش – خیلی پارامتر ها درگیر اون هستند و به شخصه میگم با هر ابزاری که راحت هستید بهتره با همون کارتون رو جلو ببرید چون بهش مسلط هستید و بهتر می تونید مشکلاتش رو حل کنید.

  • میر میکائیل
    ۲ اردیبهشت ۱۳۹۸

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

    • Zeus ‌
      زئوس Zeus
      ۳ اردیبهشت ۱۳۹۸

      سلام ؛ با نظر شما موافق نیستم به دو دلیل !
      مهم ترین دلیل اینه که همه مخاطب های سایت که آدم های حرفه ای نیستند ؛
      دلیل دوم این که برای این که بتونید حرفه ای بشید اول باید یه طراح عادی باشید ! پس شروع لازمه
      و اما این که میگید میکروکنترلر های پیشرفته توی بازار هست ؛ بله میکروکنترلر های خوبی الان توی بازار هست ؛ ولی واقعا افزادی که کار می کننده چقدر درک نسبت به عملکرد یک میکروکنترلر دارند ؟ در ضمن هنوز جاهایی میشه مثال زد که میکروکنترلر های دیگه توان رقابت با AVR رو ندارند ؛ عجیبه ولی واقعیه

      • میر میکائیل
        ۷ اردیبهشت ۱۳۹۸

        کاملا نظرتون رو قبول دارم
        اما شاید حرفمو بد بیان کردم
        منظور من اینه که کسی که میخواد تازه شروع کنه واقعا درگیر اینجور چیزا نباید بشه
        درست avr خیلی قابلیت ها داره و کسی منکرش نمیتونه بشه اما امروزه بازار جوری که دیگه قبولش نمیکنن(مشتری ها) مثلا شهری که من هستم برای چراغ چشمک زن هم FPGA میخوان در صورتی که با یه تاینی هم حل میشه بالاخره بازار الان جوری که میل به avr کم شده
        دلایلشم اکثرا میکرو های ارزون تر با قابلیت بیشتر و همچنین avr های وارداتی بشدت بیکیفیت و فیک تو بازار و مسیله این نسبت به هزینه(وقت انرژی و پول) چی کسب میکنم
        در هر صورت من صفحه شما رو مرتب پیگیری میکنم با این که چند سالی دارم arm کار میکنم اما از مطالبتون استفاده میکنم و سعی دارم استاندارد تر بشم
        ممنون، موفق باشید

        • Zeus ‌
          زئوس Zeus
          ۹ اردیبهشت ۱۳۹۸

          خواهش میکنم ؛ دوست عزیز
          بله متاسفانه خیلی از سفارش دهنده ها به نظر طراح اعتماد ندارند و فکر میکنند که هرچه چیپ قویتری بگذارند کار بهتر انجام میشه در صورتی که چنین نیست ؛ کی کاش نظر طراح مثل نظر پزشک دارای مقبولیت بود ؛ اون موقع خیلی از مشکلات حل میشد.

          • mahdi
            ۴ خرداد ۱۳۹۹

            با سلام در اینجور مواقع فقط کار رو تحویل بدید در مورد جزعیات نیازی به توضیح نیست چون باعث درد سر میشه به این صورت که کلمات قوی و ضعیف که مثلا ما به میکروکنترلرها میگیم معانیه دیگری در ذهن کسی که اصلا اطلاعی از میکروکنترلرها نداره ایجاد میکنه .برای حمل یک کیسه شن یک چهار چرخ کافیه گرفتن تریلی 18 چرخ هزینه اضافیه .

            0
  • هاشم زاده
    ۳۱ فروردین ۱۳۹۸

    در این دوران که هر روز یه میکروی جدید با قابلیت های بیشتر وارد بازار میشه هیچ دلیلی نداره که کاربر ذهن و وقت خودش رو درگیر این مسائل هر دمبیل بکنه- البته اصول میکرو و نحوه کار رو باید بدونه ولی اینکه رجیستر ها رو یاد بگیره خیلی مضحکه!
    شما فقط برنامه ای بنویس که کار کنه والسلام
    هر طوری دوست داری بنویس

    • Zeus ‌
      زئوس Zeus
      ۳۱ فروردین ۱۳۹۸

      موافقم که لازم نیست ذهنون رو درگیر یادگیری مسائلی کنید که توی یک پروژه بزرگ شاید یک دهم کار باشه در ضمن هر موقع لازم شد میشه به یوزر منوال مراجعه کرد ؛ توضیح دادم توی متن !
      پیشنهاد میکنم مقاله کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها رو مطالعه کنید ؛ در ضمن اگر دیدگاهتون اینه که فقط کافیه برنامه کار کنه ؛ چرا از بیس کام استفاده نمیکنید خیلی هم راحت تره ؟!
      جواب خیلی ساده است ؛ خیلی از کارها رو اصلا بیس کام قابلیت اجراشون رو نداره ؛ همین برای کدویژن هم به خوبی صادقه

    • احسان
      ۱۹ شهریور ۱۳۹۸

      این حرف رو کسی میزنه که پروژه های درست و درمون انجام نداده باشه وگر نه وقتی بحث سر ساخت بورد هایی میشه که قراره تیراژ بالا انجام بشه 100 تومن هم هزینه زیادی هست اینجاست که فرق یه مهندس که فقط برنامه مینویسه که کار کنه با مهندسی که رجیستر ها رو از بر هیت و جزئیات رو دقیق میدونه و میتونه برنامه بهینه و دقیق بنویسه مشخص میشه
      اوایل که stm رو کار می‌کردم با hal کار می‌کردم و کیوب ولی کم کم رجیستری رو شروع کردم چون یه پروژه ساخته بودم با میکرو f103c8t وقتی کد رو تو کیوب جنریت میکردم و ب ون هیچ کاری تو کیل کامپایل میکردم 70 درصد فلش و 50 درصد رم همون موقع پر میشد دیگه نمیشد خودم کد بنویسم اگر فقط قرار بود برنامه بنویسم که کار کنه باید میکرو رده بالاتر با حداقل 50 درصد قیمت بیشتر میخریدم ولی وقتی رجیستری کار کردم مشکلم حل شد

      • Zeus ‌
        زئوس Zeus
        ۱۹ شهریور ۱۳۹۸

        متشکر برای توضیح خوبتون

  • Saeed0047
    ۳۱ فروردین ۱۳۹۸

    خسته نباشید.
    کی قسمت بعدی رو قرار میدید؟من الان دچار سردرگمی شدم چون تا حالا از کدویژن استفاده میکردم.
    اگه میشه زودتر مقاله بعدی رو قرار بدید.

  • mohsen
    ۲ اردیبهشت ۱۳۹۷

    سلام قرار بود ی آموزش درباره جایگزینی gcc به جای کدویژن بزارید

    • Zeus ‌
      زئوس Zeus
      ۲ اردیبهشت ۱۳۹۷

      بله ، هنوز هم توی لیست کارها هست و به زودی انشالله منتشر خواهیم کرد.

  • علی
    ۱۳ آذر ۱۳۹۶

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

  • علی
    ۱۳ آذر ۱۳۹۶

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

    • Zeus ‌
      زئوس Zeus
      ۲۲ آذر ۱۳۹۶

      کامپایلر پیشنهادی ما GCC است که در حال آماده سازی آموزش آن هستیم.

  • Master
    ۲۸ شهریور ۱۳۹۶

    تازه سایت رسمی hpinfotech خودش گفته که تمام کسانی که با روش کرک از کدویژن استفاده کد هاشون دستکاری میشه البته از ورژن 1.35 به بعد.

    • Zeus ‌
      زئوس Zeus
      ۲۸ شهریور ۱۳۹۶

      هرچیزی امکان داره
      چون معلوم نیست دقیقا چه اتفاقی بعد از کرک کردن می افته

  • محمد
    ۱۱ اردیبهشت ۱۳۹۶

    سلام خسته نباشید .. لطفا علاوه بر معرفی یک کامپایلر مناسب ..کامپایلر اتمل استدیو رو هم بررسی کنید…; ممنون

    • Zeus ‌
      زئوس
      ۱۱ اردیبهشت ۱۳۹۶

      سلام دوست عزیز
      انشالله به زودی بهترین کامپایلر ممکن رو برای انواع دیواس ها معرفی میکنیم
      اتمل استویو در واقع یک IDE است که خود از یک کامپایلر اپن سورس استفاده می کند.

  • امیر رضا کرامتی
    ۸ اردیبهشت ۱۳۹۶

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

    • Zeus ‌
      زئوس
      ۸ اردیبهشت ۱۳۹۶

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

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

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 9 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک