اطلاعیه

Collapse
No announcement yet.

مشکل در نوشتن فایل بر روی sd کارت

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

    مشکل در نوشتن فایل بر روی sd کارت

    سلام به همه دوستان

    من امروز داشتم با sd کارت و lpc1768 سر و کله میزم. تو اموزشهای اقای زرکوب دیدم که از کتابخونه های چان و فلش اف اس استفاده کردن.

    من هم تصمیم گرفتم که از کتابخونه چان استفاده کنم.

    پیکره بندی و شماتیک کاملا درست بسته شده چون توابعی مثل disk_read و disk_write که مخصوص نوشتن روی سکتورهاست درست کار میکنه.

    حتی از توابع مربوط به f هم تابع ساختن دایرکتوری مثل نمونه زیر درست کار میکنه

    کد:
    [left]res = f_mkdir("dir1");[/left]
    اما برای ساختن فایل و خوندن و نوشتن فایلها کلا یا خطا میده یا برنامه قفل میشه.
    به عنوان نمونه کد زیر رو در نظر بگیرید

    کد:
    [left]  f_mount(0, &fs);
      
      res = f_open(&fsrc, "0:prj01_file_1.txt", FA_CREATE_ALWAYS | FA_WRITE);
      if(res)  die(res);
      
      res = f_write (&fsrc, string1, sizeof(string1), &bw);
      if(res)  die(res);
      f_close(&fsrc);
    [/left]
    اینجا یا معمولا میره تابع die رو اجرا میکنه یا اینکه اگه اون شرط های مربوط به اجرای die رو برداریم موقع اجرای تابع f_write قفل میکنه و فایلی هم ساخته نمیشه.

    میشه راهنماییم کنید که مشکل کار کجاست

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

    من سعی کردم که کتابخونه رو اپدیت کنم اما پروژه ایرادهای زیادی پیدا میکنه . مثلا تابع f_convert انگار اصلا وجود نداره.

    خلاصه گیر کردم اساسی.
    لطفا من رو راهنمایی کنید.

    ممنون

    #2
    پاسخ : مشکل در نوشتن فایل بر روی sd کارت

    سلام.......0
    اگه برنامت روی تابع f_write گیر میکنه ممکنه به خاطر مقدار ندادن به حافظه heap باشه تو تنظیمات میکرو (startup) یه نگاه بنداز اگه مقدار نداشت یه 0x800 جلوش بنویس
    http://www.eca.ir/forum2/index.php/topic,10159.0.html
    Engineering is the art of making what you want from things you can get.
    اموزش DSP ...........................
    http://www.eca.ir/forum2/index.php?topic=29824.0
    http://www.eca.ir/forum2/index.php?topic=32324.0

    دیدگاه


      #3
      پاسخ : مشکل در نوشتن فایل بر روی sd کارت

      ممنون علی جان
      گاهی تو f_open گیر میکنه و گاهی تو f_write . الان این نکته شما رو بررسی میکنم . امیدوارم موثر باشه.

      دیدگاه


        #4
        پاسخ : مشکل در نوشتن فایل بر روی sd کارت

        افاقه نکرد علی جان.
        کلا 2 تا خط نوشتم

        کد:
        [left]f_mount(0, &fs);
        res = f_open(&fsrc, "dir1/prj01_file_1.txt", FA_CREATE_ALWAYS | FA_WRITE);
        if(res)	die(res);
        [/left]
        مساله اینجاست که خط اول اجرا میشه. اما در خط دوم مقدار 0x00000006 در متغیر res قرار میگیره و بعدش هم با توجه به شرط تابع die اجرا میشه.
        تا اونجا که سرچ کردم تابع f_open در صورت موفقیت امیز بودن باید مقدار 0 رو بریزه تو res که اینجا اینطور نمیشه.

        دیدگاه


          #5
          پاسخ : مشکل در نوشتن فایل بر روی sd کارت

          با راهنمایی اقای زرکوب مساله حل شد. مشکل اصلی اسم فایل بود که خیلی بلند بود. فکر میکنم (مطمئن نیستم) اسم فایل نباید بیشتر از 8 کاراکتر باشه.

          دیدگاه


            #6
            پاسخ : مشکل در نوشتن فایل بر روی sd کارت

            درسته اسم فایل باید فرمت 8.3 باشه فقط من نمیفهمم اگه بخوایم مثلا با یه فرمتی که پسوندش 4 حرفی کار کنیم چیکار باید کرد :eek: oo:
            http://www.eca.ir/forum2/index.php/topic,10159.0.html
            Engineering is the art of making what you want from things you can get.
            اموزش DSP ...........................
            http://www.eca.ir/forum2/index.php?topic=29824.0
            http://www.eca.ir/forum2/index.php?topic=32324.0

            دیدگاه

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