اطلاعیه

Collapse
No announcement yet.

آموزش پروگرام و قفل کردن برنامه LPC17XX

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

    آموزش پروگرام و قفل کردن برنامه LPC17XX

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



    به طور کلی برای پروگرام کردن میکروکنترلرهای سری LPC17xx سه راه اصلی وجود دارد

    1 – پروگرام کردن توسط پروتکل JTAG توسط پروگرامرهای J-Link ، ,ULINK و Wiggler :
    پروگرام کردن میکروکنترلر از این روش نیازمند تهیه پروگرامر مجزا میباشد . به طور مثال پروگرامر J-Link از طریق پورت USB و نرم افزار jlink به کامپیوتر متصل و شناسایی میشود ولی پروگرامر Wiggler از طریق پورت پرینترLPT و نرم افزار H-JTAG . هر دوی این پروگرامر ها قادر است به پروگرام وعیب یابی میکروکنترلر میباشند.
    2 – پروگرام کردن توسط بوت لودر ISP از طریق پورت سریال و نرم افزار Flash –Magic :
    این بوت لودر توسط شرکت سازنده بر روی حافظه ROM میکروکنترلر ریخته میشود و قادر است ازطریق پورت سریال 0 و نرم افزار Flash-Magic حافظه Flash میکروکنترلر را از طریق دستورات استاندارد ISP-Commands پروگرام نماید . استفاده از این روش نیازمند پروگرامر مجزا ندارد و کافی است پورت سریال 0 توسط مداری مشابه شکل زیر به پورت COM کامپیوتر وصل شود.




    3 – پروگرام کردن از طریق بوت لودر ثانویه USB :
    علت نام گذاری این بوت لودر به عنوان بوت لودر ثانویه این میباشد که گر چه این بوت لودر توسط شرکت سازنده توسعه داده شده است ولی به صورت پیش فرض روی میکروکنترلرها پروگرام نمیشود. ویژگی اصلی این بوت لودر فراهم کردن امکان پروگرام میکروکنترلر به صورت مستقیم و بدون واسطه توسط پورت USB و کلاس استاندارد USB Mass Storage میباشد . در این روش برای بار اول بوت لودر توسط یکی از دو روش قبلی روی میکروکنترلر پروگرام میشود و بعد از آن زمانیکه میکروکنترلر توسط USB به کامپیوتر وصل شود به عنوان یک حافظه ذخیره سازی شناخته میشود و پروگرام کردن میکرو به سادگی کپی، پیست کردن فایل BIN برنامه داخل این حافظه میباشد.

    قفل کردن برنامه :
    برای حفاظت از برنامه های پروگرام شده روی میکروکنترلر و جلوگیری از کپی شدن آن میبایست حافظه کد یا همان ROM برنامه قفل شود. با انجام این کار حافظه ROM برای پروگرامر غیر قابل دسترس میشود و تنها امکان پاک کردن حافظه و برنامه ریزی مجدد آن وجود دارد.
    در میکروکنترلرهای AVR با استفاده از فیوز بیت ها به راحتی میشد برنامه های پروگرام شده روی میکرو را قفل کرد. ولی در میکروکنترلرهای آرم فیوز بیتی وجود ندارد و تمام تنظیمات مربوط به منابع کلاک و قفل حافظه توسط برنامه نوشته شده توسط کاربر تعیین و پس از اجرا فعال میشود.
    به طور کلی برای تنظیمات حفاظتی 4 سطح مخلتف تعیین شده است که با قرار گرفتن میکروکنترلر در هر یک از این حالت ها سطح امنیتی تعریف شده برای آن سطح فعال میشود. توجه کنید که برای اعمال تغییر سطوح میکروکنترلر میبایست یک بار ریست شود.

    سطح 0 یا بدون قفل : در این سطح هیچ محدودیتی برای پروگرام ، بازنگری و خواندن حافظه توسط پروتکل JTAG و ISP وجود ندارد. این سطح به صورت پیشفرض فعال میباشد.
    سطح 1 : در این سطح پروتکل JTAG به صورت کامل غیر فعال میشود و پروگرام کردن میکروکنترلر تنها از طریق ISP میسر میباشد. همچنین دستورات ISP مربوط به خواندن و مقایسه حافظه نیز غیر فعال میشود. ولی همچنان امکان پاک کردن تک تک سکتورهای حافظه و برنامه ریزی مجدد آن وجود دارد. این روش مناسب مواقعی میباشد که برنامه های پروگرام شده نیاز به پدیت داشته باشد.
    سطح 2 : این سطح تقریبا شبیه سطح 1 میباشد با این تفاوت که در این سطح دستورات ISP مربوط به نوشتن در حافظه RAM و کپی از ROM به Flash نیز غیر فعال میشود و تنها امکان پاک کردن یکباره کل حافظه و برنامه ریزی مجدد آن وجود دارد.

    سطح 3 : این سطح مشابه سطح 2 میباشد با این تقاوت که در این سطح در صورتی که برنامه ی معتبری در سکتور 0 حافظه فلش وجود داشته باشد پروتکل ISP نیز غیر فعال میشود. یعنی اگر این سطح فعال شود هر گونه پروگرام کردن میکروکنترلر از طریق ISP و JTAG غیر فعال فعال میشود ، مگر اینکه برنامه معتبری روی میکروکنترلر پروگرام نشده باشد. پس برنامه پروگرام شده با این سطح امنیتی آخرین برنامه ای خواهد بود که روی میکرو پروگرام میشود و تنها در صورتی از آن استفاده کنید که نیازی به پدیت نداشته باشید.

    فعال کردن هر یک از این سطوح توسط تغییر فایل startup_LPC17xx.s انجام میشود. توسط خود کیل یا نرم افزار Notepad این فایل را باز کنید و به دنبال عبارت CRP_Key بگردید.
    CRP_Key DCD 0xFFFFFFF
    هر یک از سطوح دارای یک کلید 32 بیتی میباشند که میبایست با عدد هگز 0xFFFFFFF که مربوط به کلید سطح 0 میباشد جایگزین شوند.
    کلید سطح 0 : 0xFFFFFFF
    کلید سطح 1 : 0x12345678
    کلید سطح 2 : 0x87654321
    کلید سطح 3 : 0x43218765

    پس از تغییر کلید موبوطه تغییرات را ذخیره نموده ، برنامه را مجددا کامپایل و پروگرام نمایید .




    #2
    پاسخ : آموزش پروگرام و قفل کردن برنامه در میکروکن

    این IC SP3232 معدل همون max232 هست و میشه از مکس بجاش استفاده کرد یا اینکه حتما باید همین IC باشه؟

    دیدگاه


      #3
      پاسخ : آموزش پروگرام و قفل کردن برنامه در میکروکن

      نوشته اصلی توسط pswin
      این IC SP3232 معدل همون max232 هست و میشه از مکس بجاش استفاده کرد یا اینکه حتما باید همین IC باشه؟
      شبیه MAX232 هست ولی با خارن های عدسی کار میکنه . اگه بخواین با MAX232 جایگزین کنین از خازن الکترولیتی استفاده کنین.

      دیدگاه


        #4
        پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

        با تشکر از آقای جعفرپور
        یعنی ما فقط یه آیسی بخریم میتونیم با روش ISP و بدون نیاز به جی تگ پروگرامش کنیم؟
        یا علی گفتیم و عشق آغاز شد.

        دیدگاه


          #5
          پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

          نوشته اصلی توسط ahmad2000
          با تشکر از آقای جعفرپور
          یعنی ما فقط یه آیسی بخریم میتونیم با روش ISP و بدون نیاز به جی تگ پروگرامش کنیم؟
          با سلام
          اره این روش خیلی خوبیه ... متاسفانه من خودم jlink گرفتم بعد این روش رو فهمیدم
          اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
          هيتلر

          دیدگاه


            #6
            پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

            خوب J-Link امکانات خیلی بیشتری داره مثلا باهش میشه عیب یابی هم کرد ، یا اکثر خانواده های ARM رو پشتیبانی میکنه ولی این روش تو تعداد محدودی از میکروکنترلرهای NXP جواب میده .

            دیدگاه


              #7
              پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

              نوشته اصلی توسط رامین جعفرپور
              خوب J-Link امکانات خیلی بیشتری داره مثلا باهش میشه عیب یابی هم کرد ، یا اکثر خانواده های ARM رو پشتیبانی میکنه ولی این روش تو تعداد محدودی از میکروکنترلرهای NXP جواب میده .
              اره اگه توانایی مالیشو داری بگیر چون منم الان با jlink خیلی راحترم..اگرم توانایی مالی نداری اما پورت پارالل داری jtag بگیر اگه نه توانایی مالی داری نه پورت پارالل :mrgreen:یه header lpc2368 بگیر با max پروگرم کن من رو lpc2368 جواب گرفتم روش max رو
              اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
              هيتلر

              دیدگاه


                #8
                پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

                با سلام خدمت دوستان عزیز
                امکانش هست شماتیک (قابل اطمینانی از)پروگرمر Wiggler برای میکروکنترلر آرم (فیلیپس) قرار بدید

                دیدگاه


                  #9
                  پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

                  نوشته اصلی توسط mir elk
                  با سلام خدمت دوستان عزیز
                  امکانش هست شماتیک (قابل اطمینانی از)پروگرمر Wiggler برای میکروکنترلر آرم (فیلیپس) قرار بدید

                  دیدگاه


                    #10
                    پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

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

                    من برنامه خود را کامپایل می کنم، اما بعد از قرار دادن فایل bin در بوت لودر، برنامه من اجرا نمی شود؟
                    پاسخ: شما می بایست برنامه خود را از آدرس ۰×۲۰۰۰ شروع نمایید.
                    این یعنی چی ؟

                    دیدگاه


                      #11
                      پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

                      نوشته اصلی توسط رامین جعفرپور
                      سلام
                      ممنون از بابت نقشه؛من یه شماتیک از همین نوع پروگرمر منتها برای آرم اتمل پیدا کردم.مقایسشون کردم یه مقدار جرئی باهم فرق داشتن.(بخش تبدیلRST به NRST و مقدار بعضی از مقاومت ها)
                      می خواستم بپرسم این تفاوت باعث می شه که لگه یه موقع احیانا بجای هم استفاده کنیم؛ میکرو درست پروگرم نشه؟به عبارتی از یکی، برای پروگرم کردن همه ی آرما استفاده می شه کرد؟
                      [/quote]
                      نوشته اصلی توسط رامین جعفرپور

                      2 – پروگرام کردن توسط بوت لودر ISP از طریق پورت سریال و نرم افزار Flash –Magic :
                      این بوت لودر توسط شرکت سازنده بر روی حافظه ROM میکروکنترلر ریخته میشود و قادر است ازطریق پورت سریال 0 و نرم افزار Flash-Magic حافظه Flash میکروکنترلر را از طریق دستورات استاندارد ISP-Commands پروگرام نماید . استفاده از این روش نیازمند پروگرامر مجزا ندارد و کافی است پورت سریال 0 توسط مداری مشابه شکل زیر به پورت COM کامپیوتر وصل شود.
                      این روش برنامه ریزی برای همه ی خانواده های آرم جواب میده؟

                      دیدگاه


                        #12
                        پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

                        سلام
                        دوستان، کسی ایده ای، نظری نداره؟؟؟
                        باتشکر

                        دیدگاه


                          #13
                          Re: آموزش پروگرام و قفل کردن برنامه LPC17XX

                          سلام.
                          فکر کنم فقط برا? خانواده ف?ل?پس جواب بده.

                          Sent from my E15i using Tapatalk

                          دیدگاه


                            #14
                            پاسخ : Re: آموزش پروگرام و قفل کردن برنامه LPC17XX

                            نوشته اصلی توسط M3R
                            سلام.
                            فکر کنم فقط برا? خانواده ف?ل?پس جواب بده.

                            Sent from my E15i using Tapatalk
                            چرا
                            میشه دلیلشو توضیح بدید.

                            دیدگاه


                              #15
                              پاسخ : آموزش پروگرام و قفل کردن برنامه LPC17XX

                              سلام
                              امکانش هست کسی یه جواب برای این سوال بده؟
                              یعنی واقعا میشه ؟ :cry:

                              دیدگاه

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