AVR, توصیه شده, مقاله

کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها

قبلاً در مقاله‌ای تحت عنوان “چرا کدویژن نه!” به بررسی شبه کامپایلر کدویژن و ناکارآمدی آن پرداختیم. مقاله مذکور بیش‌تر با محوریت قابلیت‌های استاندارد یک کامپایلر بود که کدویژن آنها را نداشت و به عملکرد واقعی کدویژن پرداخته نشده بود.

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

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

در ادامه به بررسی دو کامپایلر Codevision و GCC خواهیم پرداخت. پس با سیسوگ همراه باشید.

سخت‌افزار

برای انجام تست‌ها نیاز به یک سخت‌افزار پایه است که کدهای ایجادشده توسط هر کامپایلر را بر روی آن پروگرام کرد و بتوان نتیجه آن را مشاهده کرد. برای همین منظور ما از برد آردوینو Nano به‌عنوان سخت‌افزار استفاده کردیم.

این برد از پردازنده Atmega328p استفاده می‌کند که توسط کریستال 16 مگاهرتز کلاک آن تأمین می‌شود. برای این‌که بتوان نتیجه را ملموس‌تر احساس کرد، فرکانس کاری میکرو را با تقسیم فرکانس ورودی بر 16 به یک مگاسیکل کاهش دادیم. در تمام برنامه‌ها برای اندازه‌گیری سرعت اجرای برنامه، به کمک یک لاجیک آنالایز، سرعت صفر و یک شدن پایه PORTB.4 را اندازه‌گیری می‌کنیم که درواقع ملاکی از سرعت اجرای برنامه است؛ هرچه این پایه با سرعت بیشتری صفر و یک شود یعنی سرعت اجرای برنامه بیشتر و عملکرد کامپایلر در کامپایل کد بهتر است.

کامپایلرها

ما برای انجام این تست از کامپایلر کدویژن ورژن 3.12،


و از کامپایلر GCC ورژن 3.5 به‌عنوان کامپایلر GCC استفاده کرده‌ایم.

 

شرایط یکسان برای کامپایلرها

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

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

برنامه تست اول:

در این برنامه خروجی Toggle شده و از هیچ تأخیری هم استفاده نشده است.
دقت داشته باشید که دو خط اول برنامه برای تنظیم تقسیم‌کننده‌ی ورودی است که فرکانس 16 مگاهرتز را به 1 مگاهرتز کاهش دهد.

برنامه تست دوم:

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

برنامه تست سوم:

در این برنامه علاوه بر تغییر وضعیت خروجی، یک سری عملیات ریاضی و منطقی بر روی متغیرهای 32 بیتی انجام‌شده به همراه فراخواندن یک متد.

برنامه تست چهارم:

این برنامه همانند برنامه سوم است، با این تفاوت که عملیات ریاضی و منطقی بر روی متغیرهای 64 بیتی انجام شده است.

برنامه تست پنجم :

در این برنامه یک سری عملیات ریاضی بر روی متغیرها انجام‌ شده و هم زمان خروجی تغییر وضعیت داده شده است.

نتایج:

حجم برنامه:

 

 

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

دقت داشته باشید شبه کامپایلر کدویژن اصلاً قادر به کامپایل کد نمونه 4 نبود. چراکه این شبه کامپایلر، از متغیرهای 64 بیتی پشتیبانی نمی‌کند.

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

سرعت اجرا :

نمودار آبی مربوط به کامپایلر GCC و نمودار نارنجی مربوط به شبه کامپایلر کدویژن است. جواب‌ها، فرکانس ایجادشده بر روی خروجی است و واحد آن کیلوهرتز است. جواب برنامه‌های 2 و 3 و 4 در 10 و 100 ضرب شده‌اند تا در نمودار به خوبی مشخص باشند. هرچه مقدار این نمودار بیشتر باشد، نشان‌دهنده‌ی عملکرد بهتر کامپایلر است چراکه قادر است در واحد زمان تعداد کدهای بیشتری را اجرا کند.

توضیح در خصوص جواب برنامه 5 و اختلاف فاحش آن :

کامپایلر GCC دارای هوشمندی زیادی در اپتیمایز کد است. این کامپایلر با تشخیص قسمت‌های غیرضروری در برنامه و حذف آن‌ها، هم سرعت اجرا بالا می‌برد و هم در حافظه‌ی برنامه صرفه‌جویی می‌کند. اگر دقت کنید در برنامه شماره 5 یک سری عملیات ریاضی روی سه متغیر aaa و bbb و ccc انجام شده است که نتیجه عملیات فوق هیچ جا مورداستفاده قرار نگرفته است؛ به همین دلیل کامپایلر این عملیات را غیرضروری فرض و تمام روال آن را از برنامه حذف کرده است. به همین دلیل سرعت و حجم برنامه شماره 5 و 1 یکی است. اما شبه کامپایلر کدویژن دارای این هوشمندی نیست و نمی‌تواند قسمت‌های غیرضروری برنامه را تشخیص دهد و آن‌ها را حذف کند.

نتیجه‌گیری:

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

توصیه می‌کنم اگر از کدویژن استفاده می‌کنید، آن را کنار بگذارید و برای حرفه‌ای‌تر شدن، با GCC شروع به کد نویسی کنید.

نوشته های مشابه

24 دیدگاه در “کامپایلر Codevisionavr در مقابل کامپایلر GCC و مقایسه تخصصی آنها

  1. محمد گفت:

    سلام مهندس مقاله ی مفیدی بود واقعا..مهندس قطعا IDE توی نوشتن کد برا من مهمه میشه بگید برا GCC چه IDE رو پیشنهاد میکنید؟

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز ، من سالهاست که از Eclipse استفاده میکنم ؛ اما اتمل استودیو هم پیشنهاد خوبیه ؛ نحوه کار با اتمل استودیو رو قبلا توی سایت آموزش دادیم

  2. اسماعیل گفت:

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

    در مورد حجم کد تولیدی مواردی هست که به اون اشاره نشده
    یکی از مواردی که به اون اشاره نشده و شخصا در کدهای اسمبلی تولید شده در کدویژن مشاهده کردم کدهایی برای اینشیالایز کردن حافظه وجود دارد جهت مقدار دهی اولیه به حافظه که در مبحث هنگ کردن میکرو و ریست شدن آن توسط واچ داگ می تواند بسیار مفید باشد
    که از دید مقایسه شما این حجم اضافی تلقی می شود
    در کل هر ابزاری یکسری مزایا و یکسری معایب دارد که یک کارشناس با تجربه باید نقد را از هر دو منظر انجام دهد
    تعصبی به کدویژن ندارم چون معایب متعددی دارد مانند نداشتن قابلیت کامل کردن کد به صورت خودکار و …
    در ضمن با نظر کاملا شخصی و مقرضانه شما هم موافق نیستم

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

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز 🙂 اگر با اتمل استودیو شروع کردید و با کدویژن ادامه دادید ، باید بگم که خوب شروع کردید و بد ادامه دادید خخخ (شوخی میکنم ؛ هر کسی دیدگاه و انتخاب خودش رو داره قطعا) ترجیه من اینه که لینوکس و نرم افزار های آزاد استفاده کنم و برای کار های شخصی خودم از تمام ابزار های متن باز بهره میبرم !
      آخر نفهمیدم معتقد به اختراع چرخ هستید یا خیر ؟ یک جا هستید و یک جا نیستید ظاهرا ! ولی سورس های خیلی خوبی برای بهره بردن از GCC وجود داره که حتی خود کدویژن توی ورژن های جدیدش به کتابخونه هاش اظافه کرده مثل همین کتابخونه فت فایل سیستم ! پس همیشه کدهای متن باز نیست ، البته منکر این نیستم که کدهای بد هم وجود داره ولی کد های خوب تعدادشون خیلی بیشتره و میشه ازشون الگو گرفت یا مستقیما ازشون استفاده کرد.
      قطعا این بخش درون GCC هم وجود داره ولی خیلی لایت تر و بهینه تر ؛ شاید در مطلبی به این مهم بپردازیم !
      ببینید این مقاله یک مقاله علمی است و با استناد به مواردی که تکرار اونها توسط هر شخصی امکان پذیر است به مقایسه بین دو نرم افزار میپردازه ، مهم نیست نظر من چیه در هر صورت حرف های مقاله با توجه به یک مقایسه ساده گفته شده و هر کسی هم میتونه خودش این تست ها رو بگیره البته منکر این نیستم که از کدویژن حمایت نمیکنم ولی این تنها نظر شخصی است و در مقاله هیچ دخلی نداره نظر شخصی من !
      این که میگید نظر مقرضانه کاملا بی انصافی است ؛ کدام یک از موارد مطرح شده در مقاله خارج از چارچوب علمی و خارچ از واقعیت بوده و کجا سعی کردم واقعیت رو کتمان کنم ؟

      + مورد جالبی است – حتما به این مساله (هنگ میکروکنترلر) خواهیم پرداخت و نحوه یافتن خطا رو آموزش خواهیم داد. مخصوصا توی میکروکنترلر های ARM که هندل های خیلی خوبی برای این مساله داره.

  3. جعفر گفت:

    بنده قبلا آشنایی خوبی با C داشتم ( به خصوص کامپایلر GCC) و با کدویژن شروع کردم. بعضی وقتا کدهایی که با برنامه های دیگه C مینوشتم تو کدویژن جواب های دیگه میداد (portability). این باعث شد سوییچ کنم به atmel studio. درسته باید رجیستر رو تو atmel studio باید دستی بنویسی ولی همه دوستان میدونن اینکار فقط یک بار صورت میگیره و در پروژه های بعدی این تنظیمات رو می تونید به صورت کتابخانه در بیارید . به نظر من این ارزششو داره

    1. زئوس Zeus زئوس Zeus گفت:

      منم دقیقا همین مشکل رو داشتم ؛ بعد توی ورژن های اولیه اش بود نیاز به محاسبات اعداد ممیز شناور داشتم که اصلا پشتیبانی نمی کرد ، این شد که کوچ کردم مستقیم روی WIN-AVR هنوز اتمل استودیو از C پشتیبانی نمی کرد توی ورژن 4 بود فکر کنم!
      همونطور که قبلا گفتم اصلا کانفیگ سخت افزار شاید یک درصد از زمان پروژه نباشه (پروژه های برزگ منظوره ).

  4. احسان گفت:

    با سلام و عرض ادب
    ممنون از مقاله با ارزشی که نوشته بودید. لازم دیدم مواردی را اشاره کنم. که از دیدگاه این مقاله و مقاله قبلی با نام”چرا کد ویژن نه” مورد توجه اصولی قرار نگرفته بودند. در مقاله قبلی گفته بودید که میشه قابلیت حمل کد را با gcc بالا برد ولی با کدویژن نمیشه. مثلا از avr به arm میشه منتقل کرد. من نمیدونم دانش فنی شما در خصوص نوشتن کدهای آرم در چه حدی هست اما خوب میدونم که حداقل در سطح توابع کرنل و توابع سخت افزار به هیچ وقت کدهای avr برای arm استفاده ندارن چون اصلا رجیسترها متفاوت هست و نحوه کانفیگ پین ها و رجیسترها فرق داره. در پروژه های مختلف کاملا اینو حس کردم. پس اگه میخواید از قابلیت حمل صحبت کنید لطفا دقیق صحبت کنید که افراد مبتدی به خطا افتاده نشن.
    اشاره کردید که کدویژن از سی به صورت کامل پشتیبانی نمیکنه و مواردی را فرمودید. قبلش این سوال را بهتر بود میپرسیدید که اون امکانات اضافه که ما میخوایم چند جا استفاده دارن؟ آیا هدف اینه که یک ابزاری داشته باشیم که پر از امکانات باشه حتی اگه امکاناتشو سالی یه بار هم استفاده نکنیم یا هدف کار آمدی ابزار هست؟
    بنده خودم مدتهای طولانی با AVR STUDIO کد نویسی کردم و تجربه فراوانی در مورد اون دارم و بسیار کدهای خوبی هم تولید میکنه اما یه اشکال عمده داره. اونم اینکه شماباید همه چیز را از پایه بنویسی. اینو کسی که دانشجو هست و اطلاعات مختصری از برنامه نویسی داره درک نمیکنه. اما کسی که سال ها کدنویسی صنعتی میکنه میدونه که برای نوشتن هر پروژه وقتی قرار همه چیزو از پایه کار کنی و برای یه تست ساده کلی کد بنویسی چقدر زحمت اضافه متحمل میشی و سرعت کارت پایین میاد.
    در مورد اینکه گفتید رجیسترهای میکرو زیاد نیست باید بگم که نوع نگاهتون به مسئله را قبول ندارم. باشه تعداد رجیسترها اصلا کم هست. چه دلیلی داره من برای انجام هر پروژه مدام کار تکراری بکنم و از پایه کدهای تکراری بزنم تا سطح رجیستر و اولیه برنامم جواب بده؟ شما به راحتی با ویزارد یه کد پایه میزنی از امکاناتی که لازم داری و بعد هر کدوم را لازم داری اصلاح میکنی بدون اینکه 100 خط اول برنامه روبشینی دونه دونه بنویسی و مدام دستت به کتابا بند باشه تا رجیسترها رو پیدا کنی.
    بله gcc خیلی قوی عمل میکنه و چند درصدی بالاتر هست ولی سوالم اینه که چه تعداد پروژه صنعتی کار کردید؟ آیا هدفتون ساختن مریخ پیما هست؟ برای یه دانشجو خوندن این مطلب جوری وانمود میکنه کدویژن کدهای بسیار بدی تولید میکنه ولی به هیچ وجه اینطور نیست. اون چند درصد بهتر بودن gcc واقعا دیده نمیشه. شما سعی دارید پشت اون چند درصد بهتر بودن gcc این مطلب را قرار بدید که کدویژن به درد نمیخوره. سوال دیگه ای دارم. چرا آردوینو رشد کرد؟ درسته اپن سورس هست ولی دلیل رشد اصلی اپ سورس بودن نیست چون در اون صورت فقط تعدادی متخصص میرفتن سراغش ولی اغلب استفاده کننده ها که توسعه دهنده نیستن پس چرا رفتن سراغش؟ دلیلش راحتی استفاده و تلف نشدن وقت به خاطر نوشتن یه پروژه ساده بوده. چون شما را تا حد زیادی از سطح سخت افزار و کرنل جدا کرده. دقیقا کدویژن هم خیلی از این مشکلات را حل کرده. الکترونیک از زمانی رشدش شدید شد که از سطح سخت افزار و کرنل خودشو بالاتر اورد. یادتونه وقتی اردوینو نبود برای راه اندازی یه lcd رنگی چقدر وقت هدر میدادیم چون هیچ کدی پیدا نمیشد؟ کدهای انطباق نداشت و روزها وقتمون میرفت تا 1 کار ساده را انجام بدیم.
    این ها مواردی بود که به نظرم رسید. البته ببخشید اگه کمی ادبیاتم تند بود. چون در مقایسه شما انصاف جاش کمرنگ بود و صرفا تلاش شده بود یه عقیده شخصی تحمیل بشه. امیدوارم یه مقاله در سایتتون بنویسید و مقایسه عملی و واقعی از این دو کامپایلر داشته باشید و اشاره کنید که برای کارهای واقعی هم این مقایسه ها اونقدر خودشو نشون میده یا نه. منتظر مطالبتون هستم.
    موفق و پیروز باشید.

    1. زئوس Zeus زئوس Zeus گفت:

      بذارید اینطور شروع کنم ، انصاف شما کجاست وقتی که از نرم افزار قفل شکسته استفاده می کنید ؟ اگر واقعا فکر میکنید کدویژن خوبه ، چرا با خرید لایسنس به رشدش کمک نمی کنید
      من هیچ منفعتی از تبلیغ GCC و یا CodeVision نمی برم ، تمام مسائلی که در این مقاله و مقاله چرا کدویژن نه ذکر شد ، تنها حقایقی بود که با مدرک و دلیل و استدلال به مخاطب ارائه داده شد و این مخاطب است که انتخاب می کند چه راهی را بپیماید.
      در مورد قابلیت حمل کد ، برداشت میکنم که هیچ برنامه گسترده ای ننوشته اید که آنقدر پیچیده باشد که متوجه این موضوع مهم شده باشید. منظور من حمل کد یک برنامه چشمک زن نیست ، منظورم برنامه های پیچیده است که فارغ از لایه های سخت افزاری توابع پیچیده ای دارند. فرض کنید قصد دارید توابعی که عملیاتی بر روی متغیر های 64 بیتی را انجام می دهد در کدویژن پیاده سازی کنید ؟ ، اصلا امکانش وجود ندارد ، این میشود نوعی قابلیت حمل کد که در GCC به سادگی ممکن است.
      در مورد امکانات کدویژن ، متاسفانه یکی از اشتباهات فاحش فضای دانشگاهی کشور بسنده کردن به ناچیز هاست ، وقتی فرض کنیم دانشجویی نخواهد توانست مریخ نورد بسازد ، آموزش های سطح پایینی دریافت خواهد کرد ، ولی از کجا مشخص است که کدام دانشجو در آینده چه کاری انجام خواهد داد ، پس بهتر نیست با توجه به این که این مهم را نمی توان مشخص کرد ، بهترین ها را معرفی و عرضه کرد ؟
      اگر مدت طولانی با AVR Studio کار کرده باشید ، باید متوجه باشید که 90 درصد سورس های منتشر شده در بستر اینترنت با استفاده از GCC تهیه شده اند و هیچ نیازی نیست از صفر شروع کرد. در صورتی که برای کار با کدویژن نیاز است ابتدا کدهای GCC را برای کدویژن قابل فهم کنید که همیشه هم شدنی نیست بعد استفاده کنید.
      واقعا در یک پروژه چند درصد وقتتون صرف پیکر بندی سخت افزار میشه ، برای من کمتر از 1 درصد از تایم ، چرا که اولا لازم نیست از صفر شروع کرد ، با مراجعه به کتابخانه های آماده و سورس هایی که از قبل از نوشته اید می توانید به راحتی کانفیگ سخت افزار را انجام دهید.
      پیکر بندی سخت افزار برای هر پروژه که مداما تغییر نمی کند که اینچنین نگران زمان آن باشیم.
      واقعا برتری GCC خیلی بیشتر از چند درصد است ، شما مختارید که از هر پلتفرمی که دوست دارید استفاده کنید ، اما به نظر من GCC و codevision اصلا قابل مقایسه نیستند. اتفاقا من سعی نمی کنم دارم مستقیم و با تکیه بر شواهد و دلایل کاملا مستدل میگم کدویژن بدرد نمی خوره 🙂
      بله آردوینو به دلیل سادگی رشد کرد ، نه به اون سادگی که مد نظر شماست! ، اولا لازمه بدونید که آردوینو هم از GCC استفاده می کند . دوم این که اگر کدویژن بهتر و ساده تر بود آردوینو چرا از اون استفاده نکرد ؟
      آردوینو امکان لذت بردن از الکترونیک را به تمام افراد داد ، فرض کنید شما برنامه نویس کامپیوتر بودید و میخواستید کمی کنجکاوی کنید و فلان مساله را با استفاده از یک سخت افزار کوچک حل کنید ، اگر دانش الکترونیک نداشتید این کار برای شما خیلی دشوار و گیج کننده بود ولی آردوینو با حذف پیچیدگی الکترونیک و مدارت مربوطه و ارائه ماژول ها این کار رو انجام داد و این باعث استقبال فراوان از اون شد.

  5. علی گفت:

    سلام نمیشه از gcc روی ویژوال استودیو استفاده کرد؟؟

    1. زئوس Zeus زئوس Zeus گفت:

      IDE چندان مهم نیست ، بله میشه از IDE ویژوال استودیو استفاده کرد و فکر نمی کنم مشکلی داشته باشد.

  6. عرفان گفت:

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

    1. متشکرم از شما
      اشاره مناسبی بود

  7. dehghan گفت:

    سلام و خسته نباشید. اگر سورس بوت لودر avr که در کدویژن دادید را برای gcc بدید خیلی ممنون میشم

    1. زئوس Zeus زئوس Zeus گفت:

      فکر نمیکنم نیاز به تغییر خاصی وجود داشته باشه ، همین رو با GCC کامپایل کنید 🙂

  8. mahdi.7 گفت:

    سلام
    ممنون از مطالب فوق العاده و همچنین نگرش دنیای ازادتون که واقعا نمونش کم پیدا میشه توی جامعه ما
    همونطور که خودتون هم گفتید اقبال ایرانی ها به کدویژن بیشتر (90% مواقع حتی) برای کدویزاردش هست. در این که کامپایلر GCC بهتره اصلا شکی نیست اما خیلی مقواقع برای کار های نچندان ضروری هم واقعا برای طراح زوره که بیاد تک تک با رجیستر ها سروکله بزنه و همش دستش به دیتاشیت میکرو مورد نظرش بند باشه. برای GCC ابزاری به یکپارچه گی و کاربر پسند بودن کدویژن هم هست اصلا؟
    و این که منابع اموزشی فارسی غالبا برای کدویژن هست ممنون میشیم سلسه اموزش هایی برای اتمل استدیو تدارک ببینید.
    موفق باشید

    1. زئوس Zeus زئوس Zeus گفت:

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

      1. علی گفت:

        کم نیست?
        من مبتدی ام این ریجستر های uart که خیلی زیاده
        اگه این سادست پس برا پردازنده های arm اتمل چه خبره?

        1. زئوس Zeus زئوس Zeus گفت:

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

  9. سیما درزی علی گفت:

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

    برای من که با بسکام کار می کنم و با زبان C یه آشنائی ساده دارم کوچ کردن بسیار مشکل و زمان بره. من کلی توی سایت های ایرانی گشتم ولی آموزش دقیق و خوبی راجع به AVR GCC نبود. هرچی بود بسیار بسیار کوتاه و ناقص.

    خوشحال میشیم که یه مقاله مفصل (مثل تمامی مقاله ها و آموزش هاتون) منتشر کنید.

    با تشکر

    1. زئوس Zeus زئوس Zeus گفت:

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

  10. هادی گفت:

    با سلام …
    مقاله جالبی بود،
    فقط برای کسانی که دارند از کدویژن استفاده میکنند ، آموزش هایی برای یادگیری و انتقال به GCC هم معرفی می کنید ؟
    پیروز باشید .

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      در حال آماده سازی ابزارهای مورد نیاز هستیم ، تا دوستان بتوانند با کمترین دردسر از بستر GCC استفاده کنند.
      به زودی مطلبی در همین راستا منتشر خواهیم کرد.

  11. امیر رضا کرامتی گفت:

    سپاس.
    سودمند بود.

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *