اطلاعیه

Collapse
No announcement yet.

مشکل با توابع fat

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

    مشکل با توابع fat

    سلام به همه دوستان
    من میخوام با استفاده از توابع fat یه فایل باز کنم وتوش بنویسم ولی در انتهای برنامه که این دستور رو برای بستن درایو مینویسم
    f_mount(0, NULL);
    از NULL ارور میگیره که تعریف نشده!!!
    مشکل چیه؟؟
    من مبتدی ام و اولین باره که میخوام با FAT کار کنم!!!
    لطفا کمک کنید

    #2
    پاسخ : مشکل با توابع fat

    کامپایلرت چیه؟
    در ضمن نیازی برای بستن درایو نیست.

    دیدگاه


      #3
      پاسخ : مشکل با توابع fat

      من از keil استفاده میکنم
      آخه وقتی این خط حذف میکنم این ارورها رو میگیره:
      [left]sd2.axf: Error: L6218E: Undefined symbol disk_initialize (referred from ff.o).
      sd2.axf: Error: L6218E: Undefined symbol disk_ioctl (referred from ff.o).
      sd2.axf: Error: L6218E: Undefined symbol disk_read (referred from ff.o).
      sd2.axf: Error: L6218E: Undefined symbol disk_status (referred from ff.o).
      sd2.axf: Error: L6218E: Undefined symbol disk_write (referred from ff.o).[/left
      لطفا کمک کنید

      دیدگاه


        #4
        پاسخ : مشکل با توابع fat

        سلام مجدد
        متوجه شدم مشکل از کجا بود :smile:
        هدر diskio رو اضافه نکرده بودم
        ولی الان دوباره داره ارور میگیره از هدرفایلی که تو هدر diskio تعریف شدن!!!
        "usbdisk.h" و "atadrive.h" و "sdcard.h"
        اگه کسی این هدرها رو داره برام بذاره ممنون میشم
        ضمنا من از lpc1768 استفاده میکنم
        لطفا کمک کنید

        دیدگاه


          #5
          پاسخ : مشکل با توابع fat

          به نتایج جدیدی رسیدم
          :applause:
          یه هدرفایل diskio برای lpc1700 پیدا کردم که دیگه اون هدرها( "usbdisk.h" و "atadrive.h" و "sdcard.h&quot توش نیست
          ولی الان از این خط هدر diskio


          BOOL assign_drives (int argc, char *argv[]);
          ارور میگیره oo:
          ارورشم اینه که BOOL تعریف نشده!!!
          BOOLباید چطور تعریف شه؟؟؟
          لطفا راهنمایی کنید

          دیدگاه


            #6
            پاسخ : مشکل با توابع fat

            بنویس

            #define BOOL unsigned char

            دیدگاه


              #7
              پاسخ : مشکل با توابع fat

              ممنون که جواب دادید
              کاری که گفتید رو انجام دادم ولی باز کلی ارور میده!!!

              sd2.axf: Error: L6218E: Undefined symbol get_fattime (referred from ff.o).
              sd2.axf: Error: L6218E: Undefined symbol ATA_disk_initialize (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol ATA_disk_ioctl (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol ATA_disk_read (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol ATA_disk_status (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol ATA_disk_write (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol MMC_disk_initialize (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol MMC_disk_ioctl (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol MMC_disk_read (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol MMC_disk_status (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol MMC_disk_write (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol USB_disk_initialize (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol USB_disk_ioctl (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol USB_disk_read (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol USB_disk_status (referred from diskio.o).
              sd2.axf: Error: L6218E: Undefined symbol USB_disk_write (referred from diskio.o).
              لطفا کمک کنید

              دیدگاه


                #8
                پاسخ : مشکل با توابع fat

                سلام مجدد
                این ارورها رو هم با یکم تلاش رفع کردم :wow:
                فقط الان یه ارور باقی مونده که از خط مربوط به f_write میگیره!!!
                این main برناممه:
                int main (void)
                {



                FATFS fs[1];
                FIL amal;
                unsigned char data[10]="salam";
                FRESULT res ;
                UINT br , bw;
                GPIO_SetDir(1,(1<<21),1);
                SystemInit();
                SystemCoreClockUpdate();

                res=f_mount(0,fs);
                if (res !=FR_OK);

                res=f_open(&amal,"0:amalfile.txt",FA _OPEN_EXISTING | FA_WRITE);
                if (res !=FR_OK);


                res=f_write(&amal,data[],10,&bw);

                if (res || bw< br);

                {
                GPIO_SetValue(1, (1<<21));
                delay();
                GPIO_ClearValue(1, (1<<21));
                delay();
                }
                f_close(&amal);



                while(1){

                }

                }
                اروری که میده اینه:
                sd2.c(38): error: #29: expected an expression
                مشکل چیه؟؟
                لطفا کمک کنید

                دیدگاه


                  #9
                  پاسخ : مشکل با توابع fat

                  چرا نوشتی data[] .
                  data خالی باید بنویسی

                  دیدگاه


                    #10
                    پاسخ : مشکل با توابع fat

                    وقتی data خالی میزارم کلی ارور میده :
                    sd2.axf: Error: L6218E: Undefined symbol get_fattime (referred from ff.o).
                    sd2.axf: Error: L6218E: Undefined symbol ATA_disk_initialize (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol ATA_disk_ioctl (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol ATA_disk_read (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol ATA_disk_status (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol ATA_disk_write (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol MMC_disk_initialize (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol MMC_disk_ioctl (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol MMC_disk_read (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol MMC_disk_status (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol MMC_disk_write (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol USB_disk_initialize (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol USB_disk_ioctl (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol USB_disk_read (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol USB_disk_status (referred from diskio.o).
                    sd2.axf: Error: L6218E: Undefined symbol USB_disk_write (referred from diskio.o).

                    لطفا کمک کنید :cry2:

                    دیدگاه


                      #11
                      پاسخ : مشکل با توابع fat

                      اولا چرا شما آخر این خط ; گذاشتی؟
                      if (res || bw< br);

                      ثانیا احتمال میدم یه جا آکولادی سمی کالنی چیزی کم گذاشتی که این خطا ها رو میده که احتمالا تو diskio هست

                      ثالثا چرا از لایبی استفاده کردی که ATA و USB رو هم ساپورت میکنه ؟ مگه با اونا کار داری؟
                      بهتره از یه لایب سبکتر استفاده کنی.

                      دیدگاه


                        #12
                        پاسخ : مشکل با توابع fat

                        این خط میاد چک میکنه تعداد بایتهای نوشته شده در sd رو .وقتی هم حذفش میکنم باز همین ارورها رو میده!!!!
                        اگه سیمی کلن کم میذاشتم که ارور میداد سیمی کلن بذار!!!!
                        این تنها لایبرری diskio بود که برای lpc1700پیدا کردم ،
                        شما لایبری دیگه ای دارید که به قول خودتون سبکتر باشه؟؟؟

                        دیدگاه


                          #13
                          پاسخ : مشکل با توابع fat

                          http://elm-chan.org/fsw/ff/00index_e.html

                          و این فایل رو دانلود کن(از همین سایت)
                          http://elm-chan.org/fsw/ff/ffsample.zip

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

                          دیدگاه

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