اطلاعیه

Collapse
No announcement yet.

کتابخانه های فایل سیستم در STM32

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

    کتابخانه های فایل سیستم در STM32

    با سلام خدمت دوستان عزیز،
    برای کاربردی بنده نیاز دارم SDکارتی که روی میکروم میذارم رو بتونم روی رایانه هم باز کنم و فایل (مثلاً متنی) موجود رو توی رایانه هم باز کنم.
    به همین منظور باید از فایل سیستم Fat (مثلاً) استفاده کنم.
    یکی از کتابخونه هایی که در سطح اینترنت معروفه برای این کار RL-Flash-FS هست که توی راهنمای نرم افزار Keil هم آموزشاش هست و از توابع و کتابخونه های خود این نرم افزاره.
    یکی دیگه از کتابخونه ها، کتابخونه موسوم به ChaN Fat-FS هست که برای میکروکنترلر های متعدد و مختلف نوشته شده و مثالهاش موجوده!
    به گفته خودش:
    FatFs is a generic FAT file system module for small embedded systems. The FatFs is written in compliance with ANSI C and completely separated from the disk I/O layer. Therefore it is independent of hardware architecture. It can be incorporated into low cost microcontrollers, such as AVR, 8051, PIC, ARM, Z80, 68k and etc..., without any change.
    http://elm-chan.org/fsw/ff/00index_e.html

    خب تا اینجای کار فهمیدم که از این دو کتابخونه می تونم استفاده کنم، میکروی مدنظر من STM32F103RBT6هست و SDIO رو جزو امکاناتش نداره، پس ناچاراً مجبورم از SPI برای برقراری ارتباط با SD Cardام استفاده کنم!

    در این تاپیک قصد دارم گام به گام پیش برم و کاربردی که مد نظرم هست رو راه بندازم و در نهایت یک متن آموزشی هم بوجود میاد که واسه تازه کارهایی مثل خودم شاید بدرد بخوره و از اساتید هم خواهش میکنم اگر وقت کردن و اینجا رو دیدن مارو از نظرات و تجربیاتشون بهره مند کنن.

    برای استفاده از RL-Flash-FS نرم افزار کیل، یک مثال کاربردی برای میکروهای سری STM32 داره که میتونید از لینک زیر بهش دسترسی پیدا کنید:
    http://www.keil.com/support/man/docs/rlarm/rlarm_fs_flashfs.htm

    و همچنین برای ChAN Fat-FS هم مثال زیر آورده شده:
    http://siwawi.bauing.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html#chanfat_stm32
    که البته برای کمپایل کردنش نیاز به Codesourcery's G++ For ARM هست که از لینک زیر میشه دریافت کرد:
    https://sourcery.mentor.com/GNUToolchain/release1803

    همچنین در همین مورد تاپیک های زیر هم میتونه کارساز باشه:
    کتابخانه Flash-FS برای LPC
    http://www.eca.ir/forum2/index.php?topic=74453.0

    آموزش استفاده از FatFs در پروژه ها

    http://azarmicro.blogsky.com/1392/05/31/post-4/آموزش-استفاده-از-FatFs-در-پروژه-ها

    اپلیکیشن نوت ارتقای برنامه های FS-Flash به کیل 4.2 به بالا
    http://www.keil.com/appnotes/files/apnt222.pdf


    خب برای شروع من خودم خواستم با کتابخونه FS-Flash کار رو شروع کنم که به مشکلات زیر برخوردم:

    نوشته اصلی توسط کنجکاو!
    سلام دوستان عزیز،
    من وقتی کمپایل میکردم برناممو با این اخطار ها مواجه میشدم!
    کد:
    ..\Source\SD\File_Config.c(150): error: #77-D: this declaration has no storage class or type specifier
      DEVCONF const FlashDev [1] = {0,0};
    ..\Source\SD\File_Config.c(150): error: #65: expected a ";"
      DEVCONF const FlashDev [1] = {0,0};
    ..\Source\SD\File_Config.c(169): error: #77-D: this declaration has no storage class or type specifier
      DEVCONF const SpiDev [1] = {0,0};
    ..\Source\SD\File_Config.c(169): error: #65: expected a ";"
      DEVCONF const SpiDev [1] = {0,0};
    ..\Source\SD\File_Config.c(211): error: #77-D: this declaration has no storage class or type specifier
      DEVCONF const RamDev [1] = {0,0};
    ..\Source\SD\File_Config.c(211): error: #65: expected a ";"
      DEVCONF const RamDev [1] = {0,0};
    ..\Source\SD\File_Config.c: 0 warnings, 6 errors
    توی انجمن جستجو کردم دیدم تو یه تاپیک یه AppNote از سایت کیل گذاشته شده با مزمون Migrating FlashFS projects to MDK-ARM v4.20 و طبق راهنمای اون پیش رفتم، اما الان این اخطار رو میده:
    کد:
    C:\Keil\ARM\RV31\INC\File_lib.c(22): error: #35: #error directive: FlashFS does not work with MicroLIB
      #error FlashFS does not work with MicroLIB
    کسی قبلاً به این مشکل خورده؟ میدونین چطور میشه حلش کرد؟ :cry2:
    با تشکر
    و این پاسخی بود که دریافت کردم:
    نوشته اصلی توسط علی ایمانی فر
    فک کنم مشکل از لایسنست هست. برای FS باید لایسنس جداگانه نصب کنی. میدونستی؟
    و بعد از اون:

    نوشته اصلی توسط کنجکاو!
    فک کردم چون همراه با خود Keil نصب شده نیاز به نصب لایسنس نداره دیگه!
    آخه از تو منوی License Management هم که میرم فقط گزینه MDK-Lite رو داره و اصلاً گزینه ای واسه FS نیس اونجا! :|
    فک کنم روی نسخه Lite نصب نمیشه خود FS! باس نصبش کنم؟ (اما آخه گزینه FS توی پوشه ی نصب کیل بود!)

    - - - - - - = بعد از ویرایش = - - - - - -
    تیک گزینه MicroLib رو از توی تنظیمات پروژه برداشتم اون اخطار رفع شد و الان این خطاها رو میده:
    کد:
    .\prj.axf: Error: L6218E: Undefined symbol mmc_DevCtrl (referred from file_config.o).
    .\prj.axf: Error: L6218E: Undefined symbol mmc_Init (referred from file_config.o).
    .\prj.axf: Error: L6218E: Undefined symbol mmc_ReadInfo (referred from file_config.o).
    .\prj.axf: Error: L6218E: Undefined symbol mmc_ReadSector (referred from file_config.o).
    .\prj.axf: Error: L6218E: Undefined symbol mmc_UnInit (referred from file_config.o).
    .\prj.axf: Error: L6218E: Undefined symbol mmc_WriteSector (referred from file_config.o).
    .\prj.axf: Error: L6218E: Undefined symbol _BASE_ADR (referred from fs_finit.o).
    .\prj.axf: Error: L6218E: Undefined symbol _CPU_CLK (referred from fs_finit.o).
    .\prj.axf: Error: L6218E: Undefined symbol _MC_CSIZE (referred from fs_fat.o).
    .\prj.axf: Error: L6218E: Undefined symbol mc_cache (referred from fs_fat.o).
    .\prj.axf: Error: L6218E: Undefined symbol spi_hi_speed (referred from fs_mmc.o).
    .\prj.axf: Error: L6218E: Undefined symbol spi_init (referred from fs_mmc.o).
    .\prj.axf: Error: L6218E: Undefined symbol spi_send (referred from fs_mmc.o).
    .\prj.axf: Error: L6218E: Undefined symbol spi_ss (referred from fs_mmc.o).
    .\prj.axf: Error: L6218E: Undefined symbol FlashDev (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol RamDev (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol SpiDev (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol _BlockFREE (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol _FlashNumSect (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol _RamNumSect (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol _SpiBlFREE (referred from fs_lib.o).
    .\prj.axf: Error: L6218E: Undefined symbol _SpiNumSect (referred from fs_lib.o).
    Not enough information to list image symbols.
    Finished: 1 information, 0 warning and 22 error messages.
    ".\prj.axf" - 22 Error(s), 0 Warning(s).
    و پاسخ آقای ایمانی فر:
    نوشته اصلی توسط علی ایمانی فر
    شما باید Real time OS رو نصب کنی
    اون وقت ی لایسنس دیگه کنار MDK میزاره برات
    و اما من هنوز نتونستم لینکی برای دانلود RTOS پیدا کنم که بعد برم لایسنسشم نصب کن :|
    من از uVision4.73 استفاده میکنم با اطلاعات زیر:
    Tool Version Numbers:
    Toolchain: MDK-Lite Version: 4.73.0.0
    Toolchain Path: C:\Keil\ARM\ARMCC\bin\
    C Compiler: Armcc.Exe V5.03.0.76 [Evaluation]
    Assembler: Armasm.Exe V5.03.0.76 [Evaluation]
    Linker/Locator: ArmLink.Exe V5.03.0.76 [Evaluation]
    Librarian: ArmAr.Exe V5.03.0.76 [Evaluation]
    Hex Converter: FromElf.Exe V5.03.0.76 [Evaluation]
    CPU DLL: SARMCM3.DLL V4.73.0.0
    Dialog DLL: DARMSTM.DLL V1.64.0.0
    Target DLL: UL2CM3.DLL V1.150.17.0
    Dialog DLL: TARMSTM.DLL V1.64.0.0

    توی راهنمای کیل هم برای نسخه LITE گزینه/امکان RTX رو تیک زده ولی RL-FlashFS رو نه! یعنی نصب نیست؟
    ولی توی پوشه ARM موجود در مسیر نصب Keil فایلهای مربوط به کانفیگ و درایور Flash-FS رو دارم!


    کسی راه حلی به ذهنش میرسه؟ یا قبلاً همچین مشکلی رو داشته؟

    این مشکل حل بشه بریم سراغ ادامه کار :(

    با تشکر

    «پشتکار» «پشتکار» «پشتکار»

    #2
    پاسخ : کتابخانه های فایل سیستم در STM32

    سلام

    در درجه اول موفق باشی .
    در درجه دوم اگر از لایبرری keil استفاده نکنی خیلی بهتره واقعا مشکل داره
    (یک موردش بعضی وقتا دو تا فایل هم نام درست میکنه . ......)
    *توصیه یکی از دوستان باتجربه انجمن هم همین بود آقای lord ادامه اسمشون یادم نیست .
    **خودم هنوز از همین کتابخانه کیل استفاده میکنم .

    برای لایسنس هم:
    RL-Arm و MKD-ARM

    رو به لایسنس منجر بده .

    ولی مشکل شما فکر نمیکنم به لایسنس ربطی داشته باشه .
    از جمله ی رفتگان این راه دراز
    باز آمده ای کو که به ما گوید راز
    هان بر سر این دو راهه از روی نیاز
    چیزی نگذاری که نمی آیی باز

    دیدگاه


      #3
      پاسخ : کتابخانه های فایل سیستم در STM32

      سلام و ممنون از پاسخت دوست عزیز
      در درجه دوم اگر از لایبرری keil استفاده نکنی خیلی بهتره واقعا مشکل داره
      آره، خودمم سعی ام به همینه! و بیشترم با CMSIS کار می کنم.

      برای لایسنس هم:
      RL-Arm و MKD-ARM

      رو به لایسنس منجر بده .

      ولی مشکل شما فکر نمیکنم به لایسنس ربطی داشته باشه .
      همین کارو کردم و به قول شما مشکل به اونم ربطی نداشت چون حل نشد!

      مشکل بعدی ام اینکه Codesourcery رو دانلود و نصب کردم و از منوی Components, Environments, Books تنظیمات مربوط به کمپایلر رو روی Use GCC گذاشتم و مسیر درست رو بهش دادم ولی بازم این خطا رو میده:
      کد:
      compiling main.c...
      --- Error: failed to execute 'arm-none-eabi-gcc'
      "main.c" - 1 Error(s), 0 Warning(s).
      با تشکر

      «پشتکار» «پشتکار» «پشتکار»

      دیدگاه


        #4
        پاسخ : کتابخانه های فایل سیستم در STM32

        نوشته اصلی توسط کنجکاو!
        مشکل بعدی ام اینکه Codesourcery رو دانلود و نصب کردم و از منوی Components, Environments, Books تنظیمات مربوط به کمپایلر رو روی Use GCC گذاشتم و مسیر درست رو بهش دادم ولی بازم این خطا رو میده:
        کد:
        compiling main.c...
        --- Error: failed to execute 'arm-none-eabi-gcc'
        "main.c" - 1 Error(s), 0 Warning(s).
        با تشکر

        من در رابطه با کتابخانه ChaN اطلاعاتی ندارم .
        از جمله ی رفتگان این راه دراز
        باز آمده ای کو که به ما گوید راز
        هان بر سر این دو راهه از روی نیاز
        چیزی نگذاری که نمی آیی باز

        دیدگاه


          #5
          پاسخ : کتابخانه های فایل سیستم در STM32

          نوشته اصلی توسط meerkat

          من در رابطه با کتابخانه ChaN اطلاعاتی ندارم .
          در مورد Flash-FS چی؟ کار کردید باهاش؟
          به مشکلاتی که من برخوردم نرسیدین؟

          با تشکر از پاسختون

          «پشتکار» «پشتکار» «پشتکار»

          دیدگاه


            #6
            پاسخ : کتابخانه های فایل سیستم در STM32

            طبق همین پست http://www.eca.ir/forum2/index.php?topic=74453.0 پیش برید .
            هر مشکلی بود مطرح کنید .
            از جمله ی رفتگان این راه دراز
            باز آمده ای کو که به ما گوید راز
            هان بر سر این دو راهه از روی نیاز
            چیزی نگذاری که نمی آیی باز

            دیدگاه


              #7
              پاسخ : کتابخانه های فایل سیستم در STM32

              طبق همون پست رفتم و به این مشکلات بر خوردم! :|
              ممنون

              «پشتکار» «پشتکار» «پشتکار»

              دیدگاه


                #8
                پاسخ : کتابخانه های فایل سیستم در STM32

                فایل برنامه را پ کن
                از جمله ی رفتگان این راه دراز
                باز آمده ای کو که به ما گوید راز
                هان بر سر این دو راهه از روی نیاز
                چیزی نگذاری که نمی آیی باز

                دیدگاه


                  #9
                  پاسخ : کتابخانه های فایل سیستم در STM32

                  ممنون از پاسخت
                  این یه برنامه بود که دیدم یکی از دوستان روی اینترنت گذاشته بود و واسه تست دانلود کردم ببینم چطوره ولی خب کمپایل نشد...
                  http://cld.persiangig.com/download/ZmbkIFfYwY/First%20Flash-fs.rar/dl
                  علاوه بر این هم حتی برنامه های مثال های کیل هم که یه نمونه برای STM32 داره رو هم خواستم کمپایل کنم اونم نشد!!!

                  شما خودتون یه برنامه واسه استفاده از Flash-FS ندارین؟ (ترجیحا با CMSIS)

                  با تشکر

                  «پشتکار» «پشتکار» «پشتکار»

                  دیدگاه


                    #10
                    پاسخ : کتابخانه های فایل سیستم در STM32

                    C:\Keil\ARM\Boards\Keil\MCBSTM32\RL\FlashFS\SD_Fil e
                    از جمله ی رفتگان این راه دراز
                    باز آمده ای کو که به ما گوید راز
                    هان بر سر این دو راهه از روی نیاز
                    چیزی نگذاری که نمی آیی باز

                    دیدگاه


                      #11
                      پاسخ : کتابخانه های فایل سیستم در STM32

                      نوشته اصلی توسط meerkat
                      C:\Keil\ARM\Boards\Keil\MCBSTM32\RL\FlashFS\SD_Fil e
                      ممنون ولی:
                      علاوه بر این هم حتی برنامه های مثال های کیل هم که یه نمونه برای STM32 داره رو هم خواستم کمپایل کنم اونم نشد!!!

                      «پشتکار» «پشتکار» «پشتکار»

                      دیدگاه


                        #12
                        پاسخ : کتابخانه های فایل سیستم در STM32

                        من از 4.72 استفاده میکنم با این لایسنس منجر :



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

                        دیدگاه


                          #13
                          پاسخ : کتابخانه های فایل سیستم در STM32

                          نوشته اصلی توسط meerkat
                          من از 4.72 استفاده میکنم با این لایسنس منجر :



                          و فایلی که آدرس دادم را بدون مشکل کامپایل میکنم .
                          منم از همون لایسنس ها استفاده میکردم و کار نمیکرد!

                          کلاً Keil رو پاک کردم با تموم پوشه ها و فایل هایی که ساخته بود و مجدداً همون 4.73 رو نصب کردم و این بار بدون مشکل اون مثال خود Keil کمپایل شد.
                          حالا دارم سعی میکنم تنظیمات و پیکربندی همونو تو پروژم انجام بدم ببینم جواب میده یا نه؟

                          ممنون

                          «پشتکار» «پشتکار» «پشتکار»

                          دیدگاه


                            #14
                            پاسخ : کتابخانه های فایل سیستم در STM32

                            با سلام خدمت اساتید محترم
                            من از هدر برد stm32f103ret6 و microsd هم از kingmax 2GB استفاده می کنم تو اینترنت خیلی سرچ کردم مثال های زیادی برای راه اندازی sd card با ارتباط sdio پیدا کردم و تست کردم و جواب نگرفتم .
                            مدار رو مطابق شماتیک موجود تو اینترنت بستم sd رو با fat فرمت کردم اما جوابی از طرف کارت sd نمیاد.
                            از کامپایلر keil4.7 استفاده می کنم و با flash loader میکرو رو پروگرم میکنم آیا امکانش هست که مشکل از کامپایلر باشه؟ من چه چیزه دیگه ای رو باید تست کنم؟؟؟
                            ممنون میشم ازتون اگه راهنماییم کنید.

                            دیدگاه


                              #15
                              پاسخ : کتابخانه های فایل سیستم در STM32

                              پایه کلاک و پایه cmd رو روی اسکوپ چک کردم خروجی درست می دن.

                              دیدگاه

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