اطلاعیه

Collapse
No announcement yet.

IAP-in application programming

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    IAP-in application programming

    سلام دوستان کسی در این مورد اطلاعاتی داره؟
    من میخوام بتونم با استفاده از gprs ماژول gsm میکرو رو اپدیت یا پروگرم کنم


    #2
    پاسخ : IAP-in application programming

    سلام بنظرم با ماژول gsm و میکرو به تنهایی این کار عملی نیست ، حتی اگر راهی هم باش امکان بریک شدن برد زیاده، راه بهتر اینه که شما از یه میکرو دیگه با مشخصات زیر برای این منظور استفاده کنین
    1- پایه های tx-rx ماژول gsm رو به میکرو پروگرام کننده هم وصل کنین
    2- یه سوئیچ که در حالت کارکرد عادی این پایه ها رو به میکرو اصلی وصل کنه و حین دریافت دستورات پروگرام شدن این سوئیچ ماژول رو از میکرو اصلی قطع کنه
    3- برای پروگرام کردن اگر از روش سریال استفاده کنی راحت تره،پس پایه BOOT0 و REST میکرو اصلی توسط میکرو پروگرام کننده کنترل بشه و پینهای A9-A10 میکرو اصلی رو به یکی از پورتهای سریال میکرو پروگرام کننده وصل بشه
    4- فایل HEX دریافتی از طریق GPRS رو در یه حافظه فلش مثل W25Q32 ذخیره کن و برای اطمینان بیشتر دوبار این دریافت رو انجام بده تا هر دو فایل رو باهم مقایسه کنی.
    در اخر میکرو رو ریست کن ، پایه BOOT0 رو 1 کن و شروع به پروگرام میکرو کن، این قسمت یه مقدار کار میبره، بهتون پیشنهاد میدم ابتدا روی پروگرام میکرو توسط میکرو دیگه کار کنین
    این داکیومنت ها شاید به کارتون بیاد :

    http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/application_note/DM00161366.pdf
    http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf

    دیدگاه


      #3
      پاسخ : IAP-in application programming

      امکانش هست دوست عزیز
      این کار انجام شده البته نه با gsm ولی روش پیشنهادی این هست
      1-کل برنامه رو از طریق gsm دریافت کنید و در جایی ذخیره کنید مثلا با نام prog2
      2-بررسی صحت برنامه دریافت شده (مثلا chek sum یا هر روش دیگر)
      3-چک شود که کپی برنامه در حال اجرا در محل ذخیره سازی وجود دارد یا نه؟ و همچنین صحت برنامه ؟اگر نیست یک کپی از برنامه موجود گرفته شود و مثلا با نام prog1 ذخیره شود
      4-لودر شروع به پروگرام کند
      5 - در صورت موفقیت آمیز بودن جای prog1 با prog2 عوض شود (برا بعدا)
      6- میکرو به آدرش شروع برنامه برود
      7- یکم داستان داره برای موارد غیر مطرقبه که باید بهش فکر کنی خودت و حلش کنی
      مثلا اگر پروگرام موفق نبود یا نیمه کاره بود
      لودر در شروع برنامه صحت برنامه جاری رو چک کنه و اگر درست نبود prog1 رو دوباره پروگرام کنه و مسایلی از این دست
      هميشه به ياد خدا باش !

      دیدگاه


        #4
        پاسخ : IAP-in application programming

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

        فایل .bin که ساخته مشیه رو اگه با هگز ویوور نگاه کنید میبینید بدون هیچ پسوندی مستقیم دیتا هگز برنامه است که باید روی فلش کپی بشه. فقط کافیه توسط یه سرویس ارسال یه فایل bin به صورت byte به byte انجام و بعد هم verify بشه
        داکیومنت AN4657 شرکت اس تی رو بخونید و سورسش رو امتحان کنید خیلی جالبه. فقط باید ادرس ها رو درست مدیریت کنید . میکرو با قسمت mpu که داره خیلی راحت میتونه این ادرس ها رو جابجا کنه

        حتی من واسه تست چهارتا تا برنامه مختلف روی چهار قسمت مختلف فلش ریختم و بسته به ورودی دوتا gpio ادرس شروع برنامه رو در هنگام استارت تعین کردم و خیلی قشنگ جواب داد

        دیدگاه


          #5
          پاسخ : IAP-in application programming

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

          دیدگاه


            #6
            پاسخ : IAP-in application programming

            بوتلودر رو کسی جز خودتون ننوشته
            شما دو برنامه مینویسید
            1- بوت لودر: در این برنامه شمااز یک سکتوری به بعد که خودت باید در نظر بگیری حافظه قفل حافظه فلش رو بر میداری ، کامل پاک میکنی و سپس فایل باینریتو میریزی و سپس ادرس اجرای فلش رو به ابتدای فایل باینری ریخته شده میبری

            2- برنامه عادی : شما یک پروژه عادی میسازی و مثل یک پروژه عادی برنامه مینویسی و هیچ کاری به هیچ چیزیم نداری. در نهایت فایل هگز رو میسازی و به بینری تبدیلش میکنی

            برنامه بوتلودری که خودتون نوشتید در لحظه شروع از ادرس 8000000 هگز اجرا میشه. اگه اپدیت نیاز داشت میاد سکتور هایی رو که تعیین کردید پاک و دیتای باینری رو میریزه بدون اینکه نیاز باشه بدونه ماحیتش چیه. دقیقا بایت به بایت میریزه اونجا و بعد هم میره از ابتدا اجراش میکنه
            اما اگرم نیاز به اپدیت نداشتیت میره از همون ادرس اجراش میکنه

            دیدگاه


              #7
              پاسخ : IAP-in application programming

              کاش یه نفر یه برنامه مناسب با توضیحات قرار بده تا وقت بقیه کمتر گرفته بشه

              دیدگاه

              لطفا صبر کنید...
              X