آموزش برنامه نویسی ماژول MC60, اینترنت اشیاء, توصیه شده, کویکتل

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

تا الآن چند قسمت آموزش برای کار با ماژول mc60 رو توی سایت قرار دادیم و برنامه‌های مختلفی رو براش نوشتیم، اما توی این قسمت میخوایم که نحوه کدنویسیمون رو بهتر کنیم و از یک IDE مناسب برای این کار استفاده کنیم، توی قسمت دوم ادیتور vs code معرفی شد که اون صرفاً ادیتور بود و برای دیباگ کردن و پیدا کردن ارور ها کمی مشکل داشتیم، اما حالا با کمک eclipse هم مراحل کامپایل و خروجی گرفتنمون راحت‌تر میشه و هم توی نوشتن کد میتونیم ارور هامون رو ببینیم و برطرف کنیم. پس با سیسوگ همراه باشید که بریم سراغ راه اندازی ایکلیپس…

 

مرحله اول نصب JRE

اول از همه باید jre یا Java Runtime Environment رو نصب کنیم که بتونیم از ایکلیپس که توسط جاوا نوشته شده استفاده کنیم. برای اینکار نسخه 32 بیتی اون رو دانلود می‌کنیم، دقت کنید 32 بیتی به دلیل اینکه نسخه ایکلیپس ما هم 32 بیتی هست. با سرچ “دانلود jre 8 32bit” میتونید از سایت‌های داخلی اون رو دانلود کنید.

بعد از نصب جاوا با اجرای دستور

در cmd میتونیم از نصب اون مطمئن بشیم .

 

مرحله دوم نصب کامپایلر

کامپایلر موردنیاز رو میتونید از این لینک دانلود کنید. بعد از دانلود اگر که ویندوزتون بالای 7 بود، مثلاً ویندوز 10 دارید ، برای اجرای نصب کننده لازم هست که اول روی اون راست کلیک کرده و گزینه properties رو انتخاب کنید. بعد از اون توی تب compatibility بخش compatibility mode تیک Run this program in compatibility mode for رو بزنید و ویندوز 7 رو انتخاب کنید (مثل تصویر پایین).

بعد از اون هم تغییرات رو ذخیره و نصب کننده رو اجرا می‌کنیم و مرحله طاقت‌فرسای next زدن رو انجام میدیم? (ترجیها تنظیمات رو تغییر ندید که بعد با مشکل مواجه نشید مخصوصا مسیر نصب رو).
بعد از نصب با اجرای دستور پایین در cmd میتونید از نصب صحیح کامپایلر اطمینان حاصل کنید.

 

مرحله سوم نصب Eclipse

حالا باید ایکلیپس رو از این لینک دانلود و نصب کنید. دقت کنید که eclipse یک ide متن‌باز هست و برای کاربردهای مختلف، مثل برنامه‌نویسی MC60 شخصی‌سازی میشه، بنابراین همین نسخه فقط قابل‌استفاده هست و اگر نسخه دیگه ای برای کاربرد دیگه ای روی سیستمتون دارید نمیتونید از اون استفاده کنید.

ایکلیپس نیازی به نصب نداره و فقط کافیه فایل زیپ رو توی یه پوشه استخراج کنید، چه بهتر که اون رو توی پوشهProgram Files (x86) قرار بدید و یک شورتکات برای استفاده ازش درست کنید.

 

مرحله چهارم پیکربندی Eclipse برای MC60

بعد از باز کردن نرم افزار پروژه خودمون رو ایمپورت میکنیم (فایل پروژه رو از این لینک میتونید دانلود کنید)، برای این کار از منوی file گزینه import رو انتخاب کرده و بعد از قسمت general گزینه Existing project into Workspace رو انتخاب می‌کنیم.

بعد از اون هم پروژمون رو انتخاب می‌کنیم.

 

حالا باید چیزی شبیه این داشته باشید:

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

و حالا چند تنظیم دیگه که باید انجام بشه

1- گزینه project -> build configurations -> set Active -> Release رو انتخاب می‌کنیم (اگر گزینه فعال نیست اول از بخش project explorer پروژتون رو روش کلیک کنید تا انتخاب بشه)

2-تنظیم کامپایلر:

روی پروژتون راست کلیک کرده از properties توی بخش C/C++ Build از قسمت Enviroment محل gcc رو مشخص کنید. (البته اگر محل نصب پیش‌فرض رو تغییر نداده باشید نیازی نیست کاری بکنید)

 

کامپایل کردن پروژه

برای این کار از منوی project گزینه build project رو انتخاب می‌کنیم.

لازم هست که قبل از آپلود فایل خروجی روی ماژول یکسری اطلاعات هم اضافه بشه به فایل خروجی که برای این کار باید از منوی project-> make target گزینه build رو انتخاب کنیم.

حالا فایل خروجی ما توی پوشه Release هست.

برای پروگرام کردم ماژول از نرم‌افزار Qflash استفاده می‌کنیم. این نرم‌افزار داخل پوشه tools در sdk که دانلود کردید هست.

بعد از باز کردن نرم‌افزار با انتخاب load FW Files فایل app_image_bin.cfg رو انتخاب می‌کنیم.

حالا گزینه start رو می‌زنیم (قبل از اون باید ماژول رو توسط یک واسط usb به ttl به سیستم وصل کنید و پایه‌های سریال main رو به واسط متصل کنید) بعد از زدن گزینه start لازم هست که دکمه power ماژول رو نگه داشت تا نرم‌افزار qflash ماژول رو شناسایی کنه و شروع به پروگرام کنه. بعد از شروع پروگرام میتونید دکمه power رو رها کنید.

و در صورت پروگرام موفقیت‌آمیز، با پیغام بالا مواجه میشید.

خرید برد و ماژول MC60 از فروشگاه سیسوگ:

https://shop.sisoog.com/wp-content/uploads/2022/05/EB_MC60_1-2.png

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

بازگشت به لیست

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

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

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

50 دیدگاه در “کار با ماژول تمام عیار mc60 – قسمت هشتم – کدنویسی با Eclipse

  1. مریم موحد گفت:

    سلام و عرض ادب
    من بر روی میکرو M66 برنامه MC60 را ریختم و الان دیگر ماژولم کار نمی کند،آیا ماژولم را میتوانم آپدیت کنم؟و چگونه؟

    1. Mahdi.h   گفت:

      سلام.
      توی این لینک فایل فریمور مرتبط با m66 موجود هست
      https://sisoog.com/2021/12/15/%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%d9%85%d8%a7%da%98%d9%88%d9%84-m66-%d9%82%d8%b3%d9%85%d8%aa-%d8%a7%d9%88%d9%84-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-opencpu/
      فریمور m66 رو تلاش کنید با qflash بریزید روی ماژول . اگر که نرم افزار شروع به پروگرام نمیکنه احتمالا دیگه ماژولتون قابل استفاده نیست.

  2. sisoog user گفت:

    سلام وقت بخیر و تشکر بابت آموزش های خوبتون
    چندتا سوال داشتم ، هر بار برای نوشتن یک برنامه ی جدید ، باید فایل main.c رو باز کنیم؟ و اینکه آیا میشه نام فایل خروجی رو از app_image_bin به چیز دیگه ای تغیر داد یا توی هر بار خروجی گرفتن دوباره روی app_image_bin ذخیره میشه و قابل تغیر نیست؟
    راجع به کد هایی که توی سایت میزارین ، وقتی مثلا میگین این سه خط رو به فایل custom_task_cfg.h اضافه کنید ، باید یه پروژه ی جدا باز کنیم و اینارو ذخیره کنیم یا وقتی main رو باز کردیم بقلش میشه custom_task_cfg.h رو باز کرد؟
    آخرین سوال اینه که وقتی Build project رو بزنیم و از پروژه خروجی بگیریم از کل چیزایی که توی پروژه باز کردیم همزمان خروجی میگیره؟
    ببخشید سوالام زیاد شد ولی ممنون میشم پاسخ بدین

    1. Mahdi.h   گفت:

      سلام. خواهش میکنم
      برای هر پروژه ای که میخواید انجام بدید باید یک پوشه sdk داشته باشید.
      همچنین هر پروژه فقط یک فایل main.c داره.
      زمانیکه build project رو میزنید ، فایل های پروژتون کامپایل میشه !

  3. طاهره گفت:

    سلام وقتتون بخیر
    من یک برد ردیاب طراحی کردم و ساختم. متاسفانه در فیکس شدن سیگنالهای gps خیلی مشکل دارم. عملکرد مدارم اینجوریه که مثلا پشت پنجره زیر آسمون سه ساعت طول میکشه تا سیگنال های gps معتبر دریافت کنم. یک ساعت وصله بعد هی قطع و وصل میشه، اخرشم کامل قطع میشه. مدل آنتن از اون آنتن اکتیو مربعی سرامیکی کوچیکا هست و مسیر تغذیه هم گذاشتم براش. کانکتور آنتن ufl هست. مسیر سیگنال آنتن در pcb کاملا صاف و بدون شکستگی رسم شده. تغذیه بخش gsm و gps هر دو ۳.۷ هست. همه چی ظاهرا درسته ولی نمیدونم چرا خوب کار نمیکنه. ممنون میشم اگر نکته ای به ذهنتون میرسه راهنمایی بفرمایید.

    1. Mahdi.h   گفت:

      اگر به صورت openCpu کد نویسی میکنید ، پیشنهاد میکنم اول فریمور at command رو بارگرازی کنید و به صورت at command وضعیت gps رو تست کنید که اول از سخت افزارتون مطمئن بشید
      بهتر هست آنتن های دیگه رو هم تست کنید ، مثلا همین آنتن های اکتیو که سیم بلند با کانکتور sma دارند
      مکان دیگه ای هم اگر تست کنید خوب هست
      هیچ نکته خاص دیگه ای نداره
      برای اطمینان بیشتر هم میتونید یک برد آماده تهیه کنید و آنتن رو با اون تست کنید

      1. طاهره گفت:

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

        1. Mahdi.h   گفت:

          خواهش میکنم
          سرویس Location در گوشی ها برای مکان یابی فقط از gps استفاده نمیکنه ، بلکه از gps ، دکل های bts و wifi برای مکان یابی کمک میگیره (اگه از چیزای دیگه هم استفاده نکنه?‍♂️) ، پس بهتره که تنظیمات گوشی رو برای فقط gps تغییر بدید و مقایسه کنید یا از ماژول های gps مشابه استفاده کنید.

  4. محمد جواد گفت:

    سلام و وقت به خیر
    برای بارگذاری مثال ها چیکار باید کرد ؟ امکانش هست توضیح بدین ؟

    1. Mahdi.h   گفت:

      سلام
      اگر از sdk معمولی استفاده کنید با تغییر خط
      C_PREDEF=-D __CUSTOMER_CODE__
      در فایل
      make\gcc\gcc_makefile
      میتونید example مربوطه رو کامپایل کنید

      برای eclipse یکم کار سخت تر هست
      باید وارد قسمت properties پروژتون بشید و در قسمت
      C/C++ Build -> Setting -> Tool settings -> Arm Windows GCC C Compiler -> Preprocessor
      اول __CUSTOMER_CODE__ رو حذف کنید و بعد define مربوط به example رو اضافه کنید

  5. Ali گفت:

    سلام
    ممنون از سایت خوبتون
    از sdk mc60 برای mc65 میشه استفاده کرد
    چون من موفق نمیشم کد باینری که از sdk mc60 گرفتم روی mc65 اپلود کنم روشی هست که بشه اپلود
    فایل sdk mc65 روی eclipse نمیشه import کرد راه حلی براش دارین؟
    ممنون

    1. Mahdi.h   گفت:

      سلام
      خواهش میکنم
      خیر نمیشه از sdk mc60 برای mc65 استفاده کرد ولی میتونید کدی که برای mc60 نوشتید داخل sdk mc65 هم استفاده کنید.
      از طرف کوییکتل هم متاسفانه sdk مناسب برای eclipse ارائه نشده ، ما هم اینکار رو انجام ندادیم.

      1. zahra گفت:

        سلام
        چرا استفاده از sd card براز ذخیره اطلاعات gps مناسب نیست ؟

        1. Mahdi.h   گفت:

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

  6. Ali گفت:

    سلام
    ممنون از راهنمایی هاتون مشکل کامپایلر حل شد
    روی فایل های sdkکه قرار دادین build projectانجام میدم موفقیت امیز
    فایل با پسوندelfمیسازه برام
    اما زمانی که ازبرنامهqflashفایل هارو انتخاب میکنم هیچکدوم قبول نمیکنه
    به طور مثال با انتخاب app_image_bin
    ارورfail_eror rom4,0x10000000
    لطف کنید راهنمایی کنید
    ممنون

    1. Zeus ‌ گفت:

      این خطا میتونه به دلیل این باشه که کتابخانه به درستی لینک نشده باشه و باینری در آدرس درستی ایجاد نشده باشه
      دقیقا چه اقدامی انجام دادید که مشکل حل شد

  7. Ali گفت:

    سلام هنگام build project با دو تا خطا روبرو میشم
    Program arm-none -eabi-gcc not found in path
    و
    ril/src/Ril_dtmf.o error
    راه حل چیه؟ با تشکر

    1. Mahdi.h   گفت:

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

      1. Ali گفت:

        سلام
        دوبار uninstallو installکردم کماکان ارور
        Program arm-none -eabi-gcc not found in path میده

        1. Zeus ‌ گفت:

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

  8. طاهره گفت:

    سلام وقتتون بخیر
    من در مرحله کار با q flash مشکلی دارم. وقتی که load FW files را میزنم، با این ارور مواجه میشم: Fail, error rom 4 , 0x10000000
    در ضمن گزینه start هم اصلا فعال نمیشه. با چند تا ماژول هم تست کردم همه همین مشکلو دارن. بنظرتون مشکل از چیه؟ ممنون

    1. Ali گفت:

      سلام لطف میکنید توضیح بدهید این مشکل چگونه رفع کردید

      1. Mahdi.h   گفت:

        بخش make target رو دوباره با دقت بیشتری انجام بدید (کاملا مطابق آموزش) مشکلتون رفع میشه

        1. طاهره گفت:

          سلام آقای مهدی شما برای پروگرام کردن از چه ویندوزی استفاده کردید؟

          1. Mahdi.h   گفت:

            من از ویندوز 10 استفاده می کنم

      2. طاهره گفت:

        سلام . مشکل من در ویندوز ۱۰ و ۱۱ حل نشد. رفتم سراغ ویندوز ۷ و در اون هیچ مشکلی وجود نداشت و راحت میشد پروگرام کرد.

        1. Mahdi.h   گفت:

          توی ویندوز 10 هم نباید مشکلی باشه(و نیست!).
          احتمالا هنگام کار با ویندوز 7 نکته ای رو رعایت کردید که قبلا نکرده بودید

      3. طاهره گفت:

        سلام
        من بالاخره تونستم مشکل این ارور را برطرف کنم و برنامه روی ویندوز ۱۰ هم به خوبی کار کرد.
        باید این دو مورد را دانلود و نصب کنید
        Microsoft visual C++ 2010 Redistributable (x86)

        Microsoft visual C++ 2010 Redistributable (x64)
        دقت کنید حتما باید ورژن 2010 باشه.
        بعد از نصب این دو تا، حتما دوباره برنامه تون را build کنید. در واقع اگر این دو تا نصب نباشند برنامه به درستی build نمیشه و به همین دلیل qflash اونو نمیشناسه.
        پیشنهاد میکنم با توجه به اینکه این قضیه مشکل بعضی دوستان بوده و از این به بعد هم ممکنه باز سوال بشه، به متن این پست اضافه بشه تا همه دوستان بتونن استفاده کنند.
        ممنون

        1. Mahdi.h   گفت:

          سلام
          تبریک میگم
          ممنون از اشتراک گذاشتن تجربتون
          احتمالا شما هنگام کامپایل ارور داشتید و گرنه اگر که مشکلی باشه فایل خروجی تولید نمیشه ، همونطور که گفتم ممکنه تو مرحله gen bin header مشکل داشتید.

          1. طاهره گفت:

            سلام وقت بخیر
            بله با vs code و بیلد دستی به ارور میخورد و میگفت نمیتونه فایل msvcr100.dll را پیدا کنه و راه حل این ارور نصب visual c++ 2010 بود.
            اما من اول که با ایکلیپس میرفتم و تمام مراحلم انجام میدادم، فایل cfg تولید میشد. اما تو qflash وقتی فایل را وارد میکردم اون ارور rom 04 را میدیدم. که با سرچ بسیار متوجه یک فروم در سایت کویکتل شدم که یه نفر با visual C++ 2010 مشکلو حل کرده بود و دیگه مطمین شدم راه حلش همینه. :))

  9. طاهره گفت:

    سلام من تو مرحله ای که میخوام فایل sdk را import کنم با این ارور در بالای پنجره import مواجه میشم و گزینه finish غیر فعال هست.
    no projects are found to import
    بنظرتون مشکل چیه؟ ایا باید اون پوشه sdk را در محل خاصی کپی کرد؟

    1. Zeus ‌ گفت:

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

      1. طاهره گفت:

        سلام مجدد
        من در بخشی از متن که درباره “مرحله چهارم پیکربندی Eclipse برای MC60” است، از اون لینکی که قرار دادید فایل zip با نام “MC60_OpenCPU_GS3_SDK_V1.7” را دانلود کردم. سپس این فایل را در درایو C قرار دادم و اکسترکت کردم. بعد از گزینه import پنجره import را باز کردم و پوشه اکسترکت شده را انتخاب کردم اما اون ارور را میبینم. ایا در مراحل اشتباهی انجام دادم؟

      2. طاهره گفت:

        سلام . بنظرم لینک دانلود در سایت اشتباه قرار داده شده. باید لینک دانلود MC60_OpenCPU_GS3_SDK_V1.7_Eclipse قرار بگیره ولی لینک دانلود MC60_OpenCPU_GS3_SDK_V1.7 قرار گرفته. من از سایت کویکتل اولی را دانلود کردم و مشکلم حل شد. ممنون

        1. Mahdi.h   گفت:

          سلام
          لینکی که داخل باکس دانلود هست درسته، اما مثل اینکه لینک داخل مطلب اشتباه هست.
          ممنون از تذکرتون. لینک اصلاح شد.

          1. طاهره گفت:

            ممنون از شما و زحماتتون ?

        2. Zeus ‌ گفت:

          سلام
          ممنونم که اطلاع دادید
          و خوشحالم که مشکل حل شده

  10. طاهره گفت:

    سلام، من مدتی درگیر نرم افزار ایکلیپس بودم و حتی زبان c بهش اضافه نمیشد تا یاد سایت شما افتادم و در کمال خوشحالی دیدم همه مراحلو نوشتید و تازه فهمیدم باید ایکلیپس مخصوص ماژول mc60 نصب میکردم.
    مرسی که انقدر زحمت میکشید خدا قوت بهتون ??

    1. Mahdi.h   گفت:

      سلام.
      خواهش میکنم .خوشحالیم که تونستیم به شما کمک کنیم?

  11. میلاد گفت:

    فایل های SDK ، کامپایلر و … رو میشه برای ماژول MC65 هم استفاده کرد یا متفاوت هستش؟

    1. Sisoog Os گفت:

      سلام دوست عزیز
      نه کاملا متفاوت هست

  12. محمد گفت:

    سلام
    باتشکر از وقتی که بابت این مطالب میزارین
    برای لاگ گیری از gps در صورتی که اینترنت قطع بشه و ارسال به سرور نداشته باشیم به غیر از sd card چه چیزی پیشنهاد میکنین؟
    تراشه های AT45Db چه طور هستن؟میشه به جای SDCard استفاده کرد؟
    چون مثل اینکه sd ها خیلی مناسب نیستن برای این کار

    1. Mahdi.h   گفت:

      سلام خواهش میکنم?
      بله مطمئنا sd مناسب نیست و راه مناسبش همین حافظه های فلش هستند
      این چیپ رو چک نکردم اما چیپ w25q32 رو تست کردم و جواب گرفتم (البته فکر نمیکنم راه اندازیشون تفاوتی داشته باشه).
      راه اندازیش توی example های همراه sdk هست.

  13. ahmad گفت:

    سلام با تشکر از این آموزش که مثل همیشه عالی بود. مشکلی که من بهش برخوردم این هست که بعد از ایمپورت کردن پروژه و بیلد کردن وقتی make target رو میزنم هیچ گزینه ای برای انتخاب وجود نداره. وقتی هم یک تارگت به همین اسمی که توی شکل بالا هست میسازم و مجدد make target رو میزنم خطای No rule to make target رو میده

    1. Mahdi.h   گفت:

      سلام
      دقت کنید که لازم هست قبل از انجام هر کاری اعم از بیلد کردن یا make target از قسمت ProjectExplorer پروژتون رو انتخاب کنید.
      اون make target هم نیازی نیست خودتون بسازید و نباید بسازید چون اون پشتش یکسری کد هست و حتما باید مال خودش رو انتخاب کنید

      1. ahmad گفت:

        ممنوون از راهنماییتون. مشکلم حل شد. روی خود پروژه راست کلیک کردم و build project و build target رو زدم و اوکی شد.

  14. mehran گفت:

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

    موقع اینپورت کردن sdk که در باالا لینکش رو گزاشتین،خطای <>رو دریافت میکنم
    ولی وقتی sdk که در پست دوم <> هست انتخاب میکنم خطایی دریافت نمیکنم.

    1. mehran گفت:

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

    2. Mahdi.h   گفت:

      خواهش میکنم.
      نظر لطفتون هست.