اطلاعیه

Collapse
No announcement yet.

فایل اکسپلورر mmc به وسیله arm

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

    پاسخ : فایل اکسپلورر mmc به وسیله arm

    اینم برنامه من که باید تو همون جایی که آقا سجاد گفتن باید بزارین :

    کد:
    	}else if (par[strlen(par)-3]=='B')  { // if file is bmp
     		index=0;
    		image_wi = 0;
    		image_hi = 0;
    		bmp_code_index = 1000; // 
    		while ((ch = fgetc (f)) != EOF ){
    			index++;
    			if (index == 11) bmp_code_index = ch;
    			else if (index == 19) image_wi += ch;
    			else if (index == 20) image_wi |= (ch<<8);
    			else if (index == 23) image_hi += ch; 
    			else if (index == 24) image_hi |=(ch<<8);
    			else if (index == 29) image_color = ch;
    			else if (index == 30) {	// end reguire description . init LCD
    
    				if (image_wi>240 | image_hi>320 | (image_color !=24 && image_color !=16)){
    					tftlcd_gotoxy(0,1);	
    					sprintf(buffer,"%i * %i 0x%xbit",image_wi,image_hi,image_color);
    					tftlcd_puts(buffer,BLACK,RED,1);
    					tftlcd_gotoxy(0,2);
    					tftlcd_putsf("This Format Not Supported",BLACK,RED,1);
    					return 0;
    				}else {
    
    					tftlcd_init_hispeed(0,image_wi-1,0,image_hi-1);
    					TFTLCD_RS_HIGH;
    				}	
    			}else if (index>=bmp_code_index) break;
    		}
    		i=0;
    		do { 
    	 		 fread (&ibuffer,1,5760,f);
    			 i++;
    			 if (image_color == 24) {
    			 		for (index=0;index<5760;) {
    						lcd_data = 	(ibuffer[index++]&0xF8)<<8; 
    						lcd_data |= (ibuffer[index++]&0xFC)<<3;	
    						lcd_data |= (ibuffer[index++])>>3;
    						TFTLCD_CS_LOW;
    						TFTLCD_WR_LOW;
    						TFTLCD_DATAPORT_CLEAR;
    						_TFTLCD_DATAPORT_SODR_ = (lcd_data << TFTLCD_DATAPORT_OFFSET);
    						TFTLCD_WR_HIGH;
    						TFTLCD_CS_HIGH;	 
    					}
    			 }
    		}while (i*5760<3*image_wi*image_hi);
    		sprintf(buffer,"%i * %i 0x%xbit",image_wi,image_hi,image_color);
    		tftlcd_gotoxy(0,19);
    		tftlcd_puts(buffer,BLACK,RED,1);	
    	}
    متغیر ibuffer هم قبل تابع main به صورت زیر تعریف شده :
    char ibuffer[5760];

    در مورد سرعت محاسباتتون درسته ولی اینم در نظر گرفتین که کلاک GPIO با کلاک CPU برابر نیست و تقسیم میشه.
    برنامه همونیه که گذاشتیم و فکر نمیکنم عامل دیگه ای توش دخیل باشه .

    دیدگاه


      پاسخ : فایل اکسپلورر mmc به وسیله arm

      سلام آقا رامین
      شما چطوری Ibuf را روی 5760 گذاشتین هنگ نمی کنه

      دیدگاه


        پاسخ : فایل اکسپلورر mmc به وسیله arm

        در مورد پخش MP3 روش کار اینوطره که فایل MP3 بایت بایت و توسط SPI به VS ارسال میشه و تو یه بافر رو VS ذخیره میشه و VS شروع میکنه به خوندن این بافر.اگر سرعت برنامه اونقدر کم باشه که نتونه اطلاعات مورد نیاز VS رو برسونه صدا قطع و وصل میشه.تو سرعت بالا هم VS یه پایه DREQ داره که با اون نشون میده بافرش پر شده و جا برای گرفتن اطلاعات نداره و میکرو باید تا یه زمان مشخص هیچ اطلاعاتی نفرسته . حالا برنامه نمایش عکسهای BMP-24 روی LCD باید تو همین تاخیر نمایش داده بشه. با توجه به فریم ریت پایینی که داریم و نیاز شدید VS به ارسال منظم اطلاعات فکر کنم کار خیلی سخت بشه.مگر اینکه یه راه حل درست حسابی پیدا کنیم. تا حالا با DMA کار کردین ؟ من خودم تجربه کار باهاشو ندارم و نمیدونم میشه ازش استفاده کنیم یا نه ولی اگه بشه کار خیلی راحت تر میشه.

        شما ibuf رو local تعریف کردین یا گلوبال ؟

        دیدگاه


          پاسخ : فایل اکسپلورر mmc به وسیله arm

          من از روزی که با c اشنا شدم با این لوکال و گلوبال مشکل داشتم ولی به صورت کلی من ابتدای تابع show_file تعریف کردم . در مورد dma هم من کار نکردم نمیشه از یک میکرو دیگه استفاده کنیم

          دیدگاه


            پاسخ : فایل اکسپلورر mmc به وسیله arm

            :biggrin:
            متغیر لوکال همونیه که شما تعریف کردین و فقط تو اون حلقه میشه بهش دسترسی داشت و متغیر گلوبال متغیریه که میشه از هر جای برنامه بهش دسترسی داشت. متغیر اگه بیرون تابع Main و اول برنامه تعریف بشه گلوباله و فکر کنم از فضای استک RTX استفاده نکنه. خوب شد یاد RTX افتادیم. هدف من از استفاده از RTX تو این پروژه این بود که کلاس پروژه یکم بره بالا و با GUI که میسازیم و فایلهایی که ساپورت میشن تقریبا یه سیستم عامل کوچولو درست بشه.ولی تا حالا نه تنها استفاده درست حسابی که ازش نکردیم هیچ ، هنگ کردنش هم شده بلای جون پروژه . برنامه رو یه بار دیگه چک میکنم اگه بشه مشکلشو حل میکنیم ولی اگه چاره ای نبود باید RTX رو بیخیال بشیم.

            برای میکرو دیگه میتونیم از LPC استفاده کنیم که سریعتره ولی هدر بردش هنوز آماده نیست . منم دارم میرم سربازی :biggrin:
            و فرصت ندارم رو سخت افزار جدید پورتش کنم. شما اگه حوصله و وقتشو دارین اینکارو کنین.

            دیدگاه


              پاسخ : فایل اکسپلورر mmc به وسیله arm

              اول خیلی مننونم از دوستان بابت برنامه
              من خیلی تلاش کردم اینو بنویسم ولی نشد (زبان c من زیاد خوب نیست )

              حالا چندتا سوال دارم
              1 - با این برنامه هم سرعت 25 تصویر در ثانیه نشد (حدود 1 ثانیه میشه ) اگه لطف کنید کل سورس رو بزارید خیلی عالی میشه
              2 - من وقتی میخوام از rtx استفاده نکنم تو برنامه تو تابع main تابع init_card رو که صدا میزنم تو همین خط گیر میکنه دلیلش چی هست ؟؟؟؟ من دقیقا ایتجوری برنامه نوشتم

              int main (void) {
              tftlcd_init();
              while (init_card ()==0)
              delay-s(2);

              while (1)
              {

              3 - اگه من بخوام برنامه ای بنویسم که همه عکسایی که توی mmc هست رو به ترتیب نشون بده باید چی کار کنم ؟؟؟

              دیدگاه


                پاسخ : فایل اکسپلورر mmc به وسیله arm

                سلام دوستان
                من دیروز با حذف کردن RTX فهمیدم که مشکل هنگ کردن احتمالا از RTX نباشه چون که باز هم دقیقا بعد از سه بار باز کردن یک فایل سیستم هنگ میکنه.
                یا علی گفتیم و عشق آغاز شد.

                دیدگاه


                  پاسخ : فایل اکسپلورر mmc به وسیله arm

                  دوستان به نظر شما میشه بدون استغاده از vs1003 یا هر ای سی دیگه فقط با خود sam7x256
                  mp3 رو decode کنیم و بعد پخش کنیم ؟؟

                  دیدگاه


                    پاسخ : فایل اکسپلورر mmc به وسیله arm

                    نوشته اصلی توسط LOG
                    اول خیلی مننونم از دوستان بابت برنامه
                    من خیلی تلاش کردم اینو بنویسم ولی نشد (زبان c من زیاد خوب نیست )

                    حالا چندتا سوال دارم
                    1 - با این برنامه هم سرعت 25 تصویر در ثانیه نشد (حدود 1 ثانیه میشه ) اگه لطف کنید کل سورس رو بزارید خیلی عالی میشه
                    2 - من وقتی میخوام از rtx استفاده نکنم تو برنامه تو تابع main تابع init_card رو که صدا میزنم تو همین خط گیر میکنه دلیلش چی هست ؟؟؟؟ من دقیقا ایتجوری برنامه نوشتم

                    int main (void) {
                    tftlcd_init();
                    while (init_card ()==0)
                    delay-s(2);

                    while (1)
                    {

                    3 - اگه من بخوام برنامه ای بنویسم که همه عکسایی که توی mmc هست رو به ترتیب نشون بده باید چی کار کنم ؟؟؟
                    تو رو خدا یکی جواب سوالای منو بده :angry: :angry:

                    دیدگاه


                      پاسخ : فایل اکسپلورر mmc به وسیله arm

                      log عزیز ببین وقتی میخوای از rtl استفاده نکنی تو تابع int-card() خط های که os_dly_wait هست رو حذف کن
                      به نظر من تنها دلیلش ابن میتونه باشه

                      دیدگاه


                        پاسخ : فایل اکسپلورر mmc به وسیله arm

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

                        دیدگاه


                          پاسخ : فایل اکسپلورر mmc به وسیله arm

                          سلام
                          دوستان تو رو خدا یکی جواب منو بده
                          من سعی کردم سیستم عامل رو از این پروژه حذف کنم و تا جاییکه می شد Task ها رو حذف کردم برنامه بدون Task ها کار میکنه ولی باز هم هنگ میکنه.
                          ولی وقتی تو قسمت Target در قسمت Configure Flash Tools
                          System Opereting رو روی None قرار میدم Error های زیر تولید میشه و دیگه کد هگزش رو تولید نمی کنه:

                          Build target 'AT91SAM7X'
                          linking...
                          File_Explorer.axf: Error: L6218E: Undefined symbol SWI_Handler (referred from sam7.o).
                          File_Explorer.axf: Error: L6218E: Undefined symbol os_clock_interrupt (referred from rtx_conf_sam7x.o).
                          File_Explorer.axf: Error: L6218E: Undefined symbol os_mut_init (referred from rtx_conf_sam7x.o).
                          File_Explorer.axf: Error: L6218E: Undefined symbol os_mut_release (referred from rtx_conf_sam7x.o).
                          File_Explorer.axf: Error: L6218E: Undefined symbol os_mut_wait (referred from rtx_conf_sam7x.o).
                          File_Explorer.axf: Error: L6218E: Undefined symbol os_tsk_self (referred from rtx_conf_sam7x.o).
                          Target not created

                          اصلا این فایل های o. چه فایلهایی هستند؟؟؟؟

                          با تشکر.
                          یا علی گفتیم و عشق آغاز شد.

                          دیدگاه


                            پاسخ : فایل اکسپلورر mmc به وسیله arm

                            سلام ببخشید من چند روزی سرم شلوغ بود نتونستم روی پروژه کار کنم . الان هم چیزی برای گفتن در جواب سوالات دوستان ندارم ولی تا آخر هفته بیشتر میتونم روی پروژه کار کنم و شاید بتونم کمک کنم . ضمن اینکه در مورد مشکل هنگ کردن باتوجه به اینکه با حذف rtx مشکل حل نمی شه احتمال داره مشکل از جای دیگه ای باشه ، اگه کسی حدسی میزنه لطف کنه بگه تا روی اون کار کنیم.


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

                            دیدگاه


                              پاسخ : فایل اکسپلورر mmc به وسیله arm

                              خیلی ممنون آقا سجاد
                              ولی من گفتم که توی قسمت تارگت وقتی kernel RTX رو None می کنم برنامه ارور می ده و در حقیقت تا حالا نتونستم بطور کامل RTX رو حذف کنم و هنوزم ممکن ایراد از اون باشه .
                              من فقط توی تابع Main ، تونستم Task ها رو حذف کنم و بدون اونا برنامه کار می کنه و لی بازم بعد از سه بار هنگ میکنه و وقتی میخوام بطور کامل RTX رو حذف کنم ارور هایی رو که در پست قبل گفتم می ده و کد هگز اصلا ساخته نمیشه.

                              من امتحان کردم که برنامه وقتی که یک پوشه رو یک بار باز میکنم درسته و تموم فایل های توش رو می آره ولی وقتی که با گزینه ROOT<<< به قسمت اصلی برمیگردم و دوباره همون پوشه رو باز میکنم واردش میشه ولی همه فایلاشو نمی آره و دیگه گزینه ROOT<<< رو هم نداره و همین جا دیگه می مونه
                              به نظرم این فانکشنی که دایرکتوری میگیره ایراد داره .

                              مثل اینکه برنامه به جز Task ها خیلی رابطه های دیگه ای هم با RTX داره .
                              ممنونم آقا سجاد چون دیگه از این تاپیک داشتم نا امید می شدم. :agree: :agree:
                              یا علی گفتیم و عشق آغاز شد.

                              دیدگاه


                                پاسخ : فایل اکسپلورر mmc به وسیله arm

                                سلام احمد آقا ممنون از لطف شما
                                خیلی دستم پر نیست ولی یه چیزهایی دارم . در مورد error های پست ابتدای صفحه باید بگم که من سعی کردم از پروژه rtx sampl1 که توی فایل های مجله هست rtx را حذف کنم وقتی task ها را حذف کردم و تو قسمت Target در قسمت Configure Flash Tools
                                System Opereting رو روی None قرار دادم با error های مشابه روبرو شدم و تونستم این خطاها را با حذف کردن فایلهای مربوط به rtx از قسمت project کیل از بین ببرم و بایک سری خطای جدید روبرو بشم. بنابراین شما در قسمت سمت چپ پنجره کیل روی فایل rtx_conf_sam7x راست کلیک کنید و گزینه remove file " rtx_conf_sam7x .c" را انتخاب کنید و بعد کمپایل کنید ببیند چی میشه، احتمالا بایک سری خطا جدید روبرو خواهید شد . خطا های جدید را مطرح کنید تا ببینیم میتونیم از دست این rtx راحت بشیم یا نه
                                درمورد مشکل با پوشه ها توضیح بدید که توی پوشه ای که روتین هست باز هم پوشه دارید یا نه و کلا چند تا فایل توی اون هست چون من چک کردم و چنین مشکلی نبود البته من فقط 4 تا فایل توی پوشه دارم و توی پوشه ، دوباره پوشه نیست.

                                دیدگاه

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