اطلاعیه

Collapse
No announcement yet.

بوت لودر

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

    بوت لودر

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

    #2
    پاسخ : بوت لودر

    شما اول باید روی میکروتون یه برنامه ی بوت لودر بریزید بعد با استفاده از پورت سریال (یا هر رابط دیگه ای)می تونید برنامه ی اصلی میکرو تون رو تغییر بدید.
    برنامه ی مگالودر یکی از برنامه های رایگان برای پدیت برنامه از طریقRS232 هست.البته این برنامه ها چیز خاصی نداره و فقط فایل هگز رو به پورت سریال می فرستند.
    http://www.4shared.com/file/jGzJ6Z35...urcepmm67.html
    توی این فایل یه سری نمونه کد دیگه هم برای میکرو هست.
    منبع:http://www.iranmicro.ir/forum/showthread.php?t=2835
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

    دیدگاه


      #3
      پاسخ : بوت لودر

      راهی هست که یه فایلexe باشه که که با کلیک روی اون بشه میکرو رو پدیت کرد .
      منظورم در دسترس نبودن فایل hex هستش

      دیدگاه


        #4
        پاسخ : بوت لودر

        منظورتون اینه که به جای فایل هگز فایل exe رو انتقال بدیم؟
        اگه بخاطر مسائل امنیتی و حفظ کد میگید که ایده ی جالبیه!برای پدیت دستگاه فقط فایل exe رو در اختار دیگران میزارید. برای این کار باید با یکی از زبون های برنامه نویسی تا حدودی آشنا باشید.فایل هگز رو توی یه آرایه قرار میدید تا از طریق پورت سریال به میکرو بفرسته.البته اینجوری با یکی شیطنت :twisted:میشه بازم کد رو بدست آورد.
        واسه همین بهتره یه کدینگ خاص در نظر بگیرید.مثلا به تمام اعدادی که توی فایل هگز هستند یه واحد اضافه کنیدو بعد توی برنامه ی بوت لودر میکرو از دیتای دریافتی یه واحد کم کنید.این جوری ارتباط امن تره!!!!این یکی از ساده ترین روش ها برای کد کردن بود.با یکم فکر روی این موضوع میشه یه شیوه ی خیلی بهتر پیدا کرد :agree:
        [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

        دیدگاه


          #5
          پاسخ : بوت لودر

          دقیقاً
          چون الان بیشتر چیزهایی که استفاده یمشند بوسیله میکرو هستند .
          بر فرض دستگاهی داریم که بعد از یک سال یه الگوریتم بهتر و یا اینکه حتی یک باگی از اون رفع شد !
          میشه با یه فراخوانی و دادن یک فایل Exe به همه بگیم که می تونین دستگاه خودتون رو پگیریت کنین .
          البت طرح ابتکاری نیست چون همه جا به غیر ما دارند استفاده می کنند ! انواع گو.شی های موبایل و بایوس کامپیوتر و دستگاه های خانگی و ....

          دیدگاه


            #6
            پاسخ : بوت لودر

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

            دیدگاه


              #7
              پاسخ : بوت لودر

              ساختار برنامه و برخی قسمتهای اون برای من نامفهومه آخه من میخوام برنامه قبلی هم رویاون بتونه کار کنه نه اینکه همواره منتظر یک پگریت باشه تا کار کنه .

              دیدگاه


                #8
                پاسخ : بوت لودر

                دورود بر دوستان این تاپیک
                آیا امکان داره که فایل hex رو از روی mmc لود کنه
                معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                دیدگاه


                  #9
                  پاسخ : بوت لودر

                  به ن من اینجا دو مساله وجود دارد یکی اینکه برنامه همیشه از روی mmc اجرا شود یا اینکه برنامه مثل یک برنامه معمولی همیشه از روی فلش میکرو اجرا بشه و اگر خواستی روزی برنامه رو تغییر بدی بتونی اون فلش میکرو رو با یک وسیله ارتباطی مثل mmc یا پورت سریال rs232 تغییر بدی
                  البته من دنبال همین دومی هستم
                  اگر دوستان کمکم کنند مننون میشم بسیار بسیار زیاد

                  دیدگاه


                    #10
                    پاسخ : بوت لودر

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

                    تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                    دیدگاه


                      #11
                      پاسخ : بوت لودر

                      نوشته اصلی توسط john lock
                      دورود بر دوستان این تاپیک
                      آیا امکان داره که فایل hex رو از روی mmc لود کنه
                      مهم نیست از کدوم رابط استفاده میکنید.اگه توی برنامه ی قسمت بوت توابع mmc رو اضافه کنید تا ارتباط برقرار شه دیگه مشکلی نیست :nice:
                      نوشته اصلی توسط داریوش عباسی
                      به ن من اینجا دو مساله وجود دارد یکی اینکه برنامه همیشه از روی mmc اجرا شود یا اینکه برنامه مثل یک برنامه معمولی همیشه از روی فلش میکرو اجرا بشه و اگر خواستی روزی برنامه رو تغییر بدی بتونی اون فلش میکرو رو با یک وسیله ارتباطی مثل mmc یا پورت سریال rs232 تغییر بدی
                      البته من دنبال همین دومی هستم
                      اگر دوستان کمکم کنند مننون میشم بسیار بسیار زیاد
                      برنامه که هیچ وقت نمیتونه از روی mmc اجرا بشه .avr فقط می تونه از فلش خودش بوت شه.اگه می خواید از mmc اجرا کنید باید اول با بوت لودر اون فایل هگز رو روی فلش پروگرم کنید و بعد استفاده کنید.اما با توجه به عمر فلش میکرو کار زیاد جالبی نیست.من یه توضیح کلی در مورد بوت لودر بدم:
                      شما با فیوز بیت های بوت لودر حجم حافظه ی بوت رو مشخص می کنید.توی فضای application برنامه ی اصلی میکرو تون رو مینویسید.هر جای این برنامه که لازم بود به قسمت حافظه ی بوت میکرو می پرید. در قسمت بوت با استفاده از ریجستر Z و بافر موقت ,یک صفحه(اندازه هر صفحه بستگی به حافظه ی میکرو داره)رو توی بافر موقت کپی میکنید. بعد با دستور spm بافر موقت رو روی فلش کپی میکنید.تمام این کار ها حتی پروگرم فیوز بیت ها از طریق ریجستر SPMCR انجام میشه.یه نگاهی به صفحه 250 تا 262دیتاشیت میکرو بکنید.اونجا کامل تر این ریجستر رو توضیح داده.
                      تازه نمونه کد هم داره(البته با اسمبلی)
                      این لینک هم یکی از بحث های قدیمیه.
                      http://www.eca.ir/forum2/index.php/topic,5114.0.html
                      این هم یه نمونه برنامه ی دیگه (این کد ها از کتاب مرجع AVR کپی شده و فقط برای آموزش نوشتن در فلش میکرو.)
                      کد:
                      #include <mega8.h>
                      #include <stdio.h>   
                      
                      register unsigned int data @2 ;
                      register unsigned int address @4 ;
                      unsigned int address_page,address_home,ProgramSize=100;
                      #define ZPAGELSB 6  
                      #define PageSize 32  
                      #define ProgramSize 500  
                      
                      //------------------------------------------
                      void BootLoad(unsigned int *buffer)
                      { 
                        unsigned int i,j;
                      	for(i=0;i<ProgramSize;i++){  
                      			address_page=i;
                        		address_home=0;
                        		address=(address_page << ZPAGELSB) | (address_home<<1);                   		
                      			#asm
                      			  MOVW R30,R4  
                      			  LDI R16,3
                      			  OUT 0x37,R16
                      			  SPM
                      		  #endasm   
                      		  while (SPMCR&1);  
                        	for(j=0;j<PageSize;j++){  
                        		address_page=i;
                        		address_home=j;
                        		address=(address_page << ZPAGELSB) | (address_home<<1);                 
                        		data=*buffer++;  
                      		   
                      		  #asm 
                      			  MOVW R30,R4
                      			  MOVW R0, R2   
                      			  LDI R16,1
                      			  OUT 0x37,R16
                      			  SPM  
                      		  #endasm
                      	   while (SPMCR&1);    	   
                         }   
                         	address_page=i;
                        		address_home=0;
                        		address=(address_page << ZPAGELSB) | (address_home<<1);            
                           #asm 
                      			  MOVW R30,R4
                      			  LDI R16,$05
                      				 OUT 0x37,R16
                      				 SPM
                      				 NOP
                      			  LDI R16,$11
                      			  OUT 0x37,R16
                      			  SPM   
                      			#endasm
                      			 while (SPMCR&1);
                         }
                                   
                      }
                      //--------------------------
                      char program[ProgramSize];
                      void main(void)
                      {   
                       int i;                     
                       for(i=0;i<=ProgramSize;i++)
                       	 program[i]=0x55;
                      
                        BootLoad(program); 	
                       
                        while(1);
                       
                      }
                      [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                      دیدگاه


                        #12
                        پاسخ : بوت لودر

                        من دقیقا می خوام فایل hex رو کپی کنم روی mmc و بعد میکرو اون فایل اجرا کنه
                        ولی یه چیزی میکرو که بدوا معنی Fat رو نمی دونه که ؟؟؟
                        معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                        دیدگاه


                          #13
                          پاسخ : بوت لودر

                          منظور من هم از اینکه با mmc ارتباط برقرار کنه این بود که بتونه یه فایل رو بخونه!
                          [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                          دیدگاه


                            #14
                            پاسخ : بوت لودر

                            خوب فکر میکنم شما باید یه برنامه اصلی داشته باشین که hex رو از mmc بخونه و بریزه رو flash میکرو و بعد بحث بوت لودر . اما با این حساب هم فکر کنم باید از یه میکرو با فلش بالا باید استفاده کنید

                            دیدگاه


                              #15
                              پاسخ : بوت لودر

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

                              دیدگاه

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