اطلاعیه

Collapse
No announcement yet.

مثال برای SD file در IAR

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

    مثال برای SD file در IAR

    سلام
    من یک برنامه برای lpc23xx نوشتم که توش از کتابخانه flash_fs نرم افزار keil هم استفاده شده
    اما حجم کدم زیاد شده (فعلا 92k فایل هگزمه) و به نظر میرسه که کامپایلر کم اورده. با تعریف کردن یک متغیر جدید میکرو هنگ میکنه

    برای همین می خوام کامپایلرم رو به IAR تغییر بدم
    مثالی با این کامپایلر سراغ دارید که توی اون با حافظه SD کار کرده باشه؟
    ممنون

    #2
    پاسخ : مثال برای SD file در IAR

    سلام.
    کمپایلر کم آورده oo: چه چیزا!!
    شما خودت جواب سوال خودتو دادی.
    وقتی با تعریف متغییر جدید میکرو هنگ میکنه واسه اینه که رم زیادی اشغال شده.و نه ربطی به حجم اشغال شده فلش داره نه کمپایلر.
    که با مدیریت رم در برنامه میتونی به هدفت برسی.
    مثلا رم کمتری به فایل سیستم اختصاص بدی یا کلا ندی :biggrin:
    برای کاهش متغییر ها هم میتونی از پوینتر ها استفاده کنی.
    و...
    حالا بریم سر سوال اصلی:
    مثالی با این کامپایلر سراغ دارید که توی اون با حافظه SD کار کرده باشه؟
    نه :biggrin:
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

    دیدگاه


      #3
      پاسخ : مثال برای SD file در IAR

      یعنی 64 کیلو رم 2388 تموم شد؟
      من سه تا آرایه 512 بایتی دارم، یک آرایه 1024 بایتی به صورت لوکال که هر 15 دقیقه استفاده میشه و وقتی حافظه SD رو میخونم استفاده میشه
      دو تا هم آرایه 440 تایی و یک سری متغیر دیگه که سر انگشتی و دست بالا حساب کردم شده بود حدود 720 بایت
      هر چقدر هم زور بزنه اینها از 6 کیلو هم بیشتر نمیشه چه برسه به 64 کیلو!
      Heap Size هم 0x800 هست که میشه 2 کیلو
      بقیش چی میشه؟
      فضای دیگه ای استفاده میشه که من خبر ندارم؟

      دیدگاه


        #4
        پاسخ : مثال برای SD file در IAR

        والا چی بگم.
        رم 2388 هم که 98 کیلو هست!

        این مشکل واسه من تو کار با PIC با کمپایلر mplab پیش اومده.
        که با حذف همه متغییر های پابلیک مشکلم حل شد.
        شاید مشکل از کیل باشه.
        حالا شما از ورژن بالاتر استفاده کن شاید این مشکلو نداشته باشه.
        من تو کیل تا حالا به این مشکل نخوردم.
        تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

        دیدگاه


          #5
          پاسخ : مثال برای SD file در IAR

          IAR نسخه 6.50.3 رو نصب کردم برای SD هم مثال داشت. اما سبک برنامه ها با کیل خیلی فرق می کرد تبدیل برنامم زمان می بره
          شما تا حالا با کیل 4.7 با SD کار کردی؟

          یک خطا میده:



          توی ورژن 4.7 این خط از برنامه در فایل File_lib.c به صورت زیره
          کد:
          static U32 mc0_cache[(MC0_CASZ+1) * 256 + MC0_FSJ * 128] __AT_MC0;
          و توی ورژن 4.2 این خط از برنامه در فایل File_lib.c به صورت زیره
          کد:
          static U32 mc0_cache[(MC0_CASZ+1) * 256] __AT_MC0;
          به جز پاک کردن اون عبارت راه حلی به ذهنتون نمیرسه؟
          MC0_FSJ چی باید باشه؟

          دیدگاه


            #6
            پاسخ : مثال برای SD file در IAR

            با 4.7 هم حل نشد. با همون 4.2 چند تا از آرایه هامو کوچیکتر کردم فعلا درست شد.
            ولی برنامه هنوز نیاز به توسعه داره و تعریف متغیرهای جدید! :cry:

            دیدگاه


              #7
              پاسخ : مثال برای SD file در IAR

              سلام.
              شما مگه از سمپل خود کیل تو این مسیر استفاده نمیکنی؟
              C:\Keil\ARM\Boards\Keil\MCB2300\RL\FlashFS\SD_File
              من همچین فایلی تو این سمپل ندیدم.
              تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

              دیدگاه


                #8
                پاسخ : مثال برای SD file در IAR

                چرا ولی مال 4.2 بود که چیزای اضافه رو پاک کرده بودم و کدهای دیگه ای برای بقیه برنامم بهش اضافه کرده بودم
                یک بار دیگه سمپل خود کیل توی ورژن 4.7 رو برداشتم و همین کارا رو انجام دادم. دیگه اون ارور رو نداد. ولی همچنان Watchdog میکرو رو ریست می کنه
                ولی همین کدی که الان با 4.2 کار می کنه با 4.7 کار نمی کنه و دائم میکرو ریست میشه

                دیدگاه


                  #9
                  پاسخ : مثال برای SD file در IAR

                  آخرین خبر
                  جای یکی از متغیرهای حساس رو عوض کردم فعلا درسته
                  احتمالا مشکل همون رم باشه
                  ولی چرا و چه باید کرد نمی دونم

                  دیدگاه


                    #10
                    پاسخ : مثال برای SD file در IAR

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

                    دیدگاه


                      #11
                      پاسخ : مثال برای SD file در IAR

                      شاید یک راه حل این باشه که وقتی یک متغیر تعریف می کنیم خودمون بگیم تو چه آدرسی قرار بگیره و موضوع رو به کامپایلر واگذار نکنیم
                      توی کیل چطور میشه این کار رو انجام داد؟
                      توی IAR چطور؟

                      دیدگاه


                        #12
                        پاسخ : مثال برای SD file در IAR

                        نوشته اصلی توسط محمد جواد بابایی
                        شاید یک راه حل این باشه که وقتی یک متغیر تعریف می کنیم خودمون بگیم تو چه آدرسی قرار بگیره و موضوع رو به کامپایلر واگذار نکنیم
                        توی کیل چطور میشه این کار رو انجام داد؟
                        جوابشو خودم بدم شاید به درد بقیه بخوره
                        http://www.keil.com/support/man/docs/armlink/armlink_BABDJCAA.htm

                        Placing functions and data at specific addresses

                        دیدگاه

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