اطلاعیه

Collapse
No announcement yet.

میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

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

    میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

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

    من دارم روی یک پروژه که از at91sam7x256 استفاده میکنه کار میکنم برنامه م هم جواب گرفته و آماده ست منتها میخوام ببینم چقدر از منابع میکرو مصرف شده که ببینم میتونم یه میکرو ساده تر استفاده کنم یا نه ....

    این اطلاعات یعنی چی که توی خروجی میده :
    Program Size: Code=22760 RO-data=1832 RW-data=68 ZI-data=11620

    بعد یه سوال دیگه من خواستم keil رو تست کنم ببینم میفهمه یا نه یه آرایه کارکتری با طول 1000000 گذاشتم که خب از رم میکرو بیشتر میشد خیلی ریلکس کامپایل کرد و پروگرمم کرد!! البته بعدش با ریتم قشنگ 6 و 8 tft شروع به بالا پایین پردیدن کرد!! که من سریع برنامه هه رو برگردوندم...

    واقعا کیل با این باحالی و با عظمتیش چک نمیکنه ببینه رم زیادی نکشیه باشیم؟!

    #2
    پاسخ : میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

    code مقدار فضای گرفته شده از فلش میکروت. Ro data فضای گرفته شده از رمت. اینم که گفتین یه آرایه با طول زیاد تعریف کردین.keil میفهمه. وقتی فضای ram به اون مقدار نرسه یه مقدار پیش فرض و خیلی کمتر از اون به اون اختصاص میده. تو برنامه بزرگ این جور اشتباها باعث میشه برنامه جواب نده. حالا برای برنامه ساده شما جواب میده دلیل بر این نیست که keil نمیفهمه !!! :eek: :eek: :eek:

    دیدگاه


      #3
      پاسخ : میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

      در برنامه ساده من هم جواب نداد البته !! بعد به اخطار هم باید حداقل میداد که اینکار رو کرد اصلا به روی خودشم نیاورد!!
      دوستان میدونید این RO و RW و ZI مخفف چیه؟

      دیدگاه


        #4
        پاسخ : میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

        جالبه که الان چک کردم وقتی طول آرایه رو زیاد میکنم این 4تا عدد هیچ تغییری نمیکنه oo: حتی وقتی مقدار دهی هم بیشتر میکنم به آرایه که طولش بیشتر شه بازهم هیچ تغییری نمیکنه این چهار تا عدد :cry:

        دیدگاه


          #5
          پاسخ : میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

          بالاخره این کامپایلرا همه چیز تموم نیستن، یه خورده ضعف دارن تا بیان معروف بشن و ضعفاشون برطرف بشه طول میکشه. اگه از Win AVR استفاده کرده باشین کوچکترین تغییز سایز متغیرا و یا برنامه رو بهتون نشون میده. حتی اگه آرایه با طول بیش از حد معرفی کنین(مثل CodeVision)، برنامه رو کامپایل نمیکنه. اینم به این خاطره که این کامپایلرا مدت زیادی دارن استفاده میشن و خیلی از عیب و ایراداشون برطرف شده.

          دیدگاه


            #6
            پاسخ : میزان رم و فلش مصرفی رو در keil چجوری بفهمیم؟

            نوشته اصلی توسط shampoo
            جالبه که الان چک کردم وقتی طول آرایه رو زیاد میکنم این 4تا عدد هیچ تغییری نمیکنه oo: حتی وقتی مقدار دهی هم بیشتر میکنم به آرایه که طولش بیشتر شه بازهم هیچ تغییری نمیکنه این چهار تا عدد :cry:
            سلام ولی من داخل برنامه هام بارها دیده ام که اگر مقداری بیشتر از رم میکرو بریزم داخلش کامپایلر کیل error می دهد مثل ریختن عکس ها داخل رم :nerd:
            در مورد ZI_data هم متن زیر را بخوانید
            How to prevent uninitialized data from being initialized to zero
            Home > Compiler Coding Practices > How to prevent uninitialized data from being initialized to zero

            The ANSI C specification states that static data that is not explicitly initialized, is to be initialized to zero. Therefore, by default, the compiler puts both zero-initialized and uninitialized data into the same ZI data section, which is populated with zeroes at runtime by the C library initialization code.
            معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
            اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
            آموزش Modelsim

            دیدگاه

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