اطلاعیه

Collapse
No announcement yet.

کنترل Ram

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

    کنترل Ram

    سلام.
    1. ببخشید میخاستم ببینم چجوری میتنم از داخل برنامه ببینم چقدر از حافظه Ram پر شده ؟ مثل کاری که میشه تو ویندوز کرد :smile:
    2. چجوری میشه کاری کرد که با پر شدن Ram میکرو ریست بشه ( بدون استفاده از watch dog ) :redface:
    غفلت از یار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بی افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

    #2
    پاسخ : کنترل Ram

    نوشته اصلی توسط mohammadali1375
    سلام.
    1. ببخشید میخاستم ببینم چجوری میتنم از داخل برنامه ببینم چقدر از حافظه Ram پر شده ؟ مثل کاری که میشه تو ویندوز کرد :smile:
    2. چجوری میشه کاری کرد که با پر شدن Ram میکرو ریست بشه ( بدون استفاده از watch dog ) :redface:
    منظورتون از این که از داخل برنامه چک کنیم اینه که در حین اجرای برنامه متوجه بشیم؟
    یا نه این که بعد کامپایل از توی keil ببینیم چقدر رفته؟
    در مورد دوم انتهای کامپایل خوردش توی گزارش کامپایل کردن میگه چه حافظه ای رفته
    زندگی یعنی امید و حرکت
    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
    سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

    دیدگاه


      #3
      پاسخ : کنترل Ram

      خیلی دوست دارم بدونم که چرا می خوایید اینکارو بکنید؟ این یه مشق شب هستش :biggrin: یا می خوایید مشکلی رو حل کنید؟

      دیدگاه


        #4
        پاسخ : پاسخ : کنترل Ram

        نوشته اصلی توسط علی ایمانی فر
        منظورتون از این که از داخل برنامه چک کنیم اینه که در حین اجرای برنامه متوجه بشیم؟
        یا نه این که بعد کامپایل از توی keil ببینیم چقدر رفته؟
        در مورد دوم انتهای کامپایل خوردش توی گزارش کامپایل کردن میگه چه حافظه ای رفته
        نه. همون مورد اول :smile:
        نوشته اصلی توسط Rohalamin
        خیلی دوست دارم بدونم که چرا می خوایید اینکارو بکنید؟ این یه مشق شب هستش :biggrin: یا می خوایید مشکلی رو حل کنید؟
        نه مشق شب چیه . میخام بتونم هواشو داشته باشم دیگه. مثلا چک کنم کجا های برنامه پرش میکنه یا ... :read:
        غفلت از یار, گرفتار شدن هم داد
        از شما دور شدن, زار شدن هم دارد
        هرکه از چشم بی افتاد, محلش ندهند
        عبد آلوده شدن, خوار شدن هم دارد
        عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

        دیدگاه


          #5
          پاسخ : کنترل Ram

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

          دیدگاه


            #6
            پاسخ : کنترل Ram

            نوشته اصلی توسط علی ایمانی فر
            این که میگی هواشو داشته باشم وقتی که بخای آرایه پویا استفاده کنی به کارت میاد که اونم وقتی بیشتر از فضای موجود باشه NULL برمیگردونه و مشکلت برطرف میشه.
            در بقیه مواردم توی خود کامپایل کردن متوجه میشه که فضا به اندازه هست یا نه مگر این که متغییرای محلی توی توابع مختلف به صورت تو در تو هی بوجود بیان و این یکی رو نمیدونم باید چه کنی
            غیر از اون برای وقتی یه نمونه از یه کلاس میسازیم " new Class() " خیلی به درد میخوره. چون اگه از دستور delete استفاده نکنیم پاک نمیشه و فضای زیادی رو اشغال میکنه حتی اگه کلا از تابع و جایی که توش هست بیایم بیرون بازم پاک نمیشه. حالا یه سوال دیگه این که تراشه SDRAM همون Ram هست دیگه ؟ یعنی مثل تراشه flash میمونه ولی برای Ram ? :read:
            غفلت از یار, گرفتار شدن هم داد
            از شما دور شدن, زار شدن هم دارد
            هرکه از چشم بی افتاد, محلش ندهند
            عبد آلوده شدن, خوار شدن هم دارد
            عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

            دیدگاه


              #7
              پاسخ : کنترل Ram

              سلام اول از همه شما وقتی برنامرو کامپایل میکنی میتونی متوجه بشی چقدر از ram مورد استفاده قرار میگیره.برای این کار کافی هست توی keil مقدار zi-data , rw-data که پس از کامپایل به اون زیر نمایش میده رو با هم جمع برنی

              برنامه ای که رم بیشتر اشغال کنه اصلا کامپایل نمیشه و ارور میده


              ram کلا سه نمونه هستند sram,dram,sdram که توان مصرفی و بازده و اطمینانشون با هم فرق میکنه.dram توان مصرفیش پایین هست sram اطمینان پذیر تره. در کل با قطع برق تمامی اطلاعات از روشون پاک میشه و هیچ شباهتی به حافظه های فلش ندارن

              دیدگاه


                #8
                پاسخ : کنترل Ram

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

                دیدگاه


                  #9
                  پاسخ : کنترل Ram

                  در اصل این طور نیست. ببینید zi-data مخفف zero init هست یعنی چی؟
                  یعنی اینکه این تعداد بایت از ram که جز heap size هستند با مقدار صفر پر شن.
                  حالا اگر نشد ممکن باعث بوجود اومدن یک داده نا معتبر بشن
                  این چیزی که شما میگی با فشار دادن یک کلید یک کلاس درست بشه متین.اما کامپایلر با توجه به سورس اون مقدار از ram رو براش init میکنه حالا به وجود بیاد یا نیاد دیگه به کامپایلر ربطی نداره.

                  پس همه اینا حساب شدست (همون موقع کامپایل) نه اینکه یه هوی بیاد یه تیکه از ram رو بگیره بعدشم هو تو تو

                  دیدگاه


                    #10
                    پاسخ : کنترل Ram

                    نوشته اصلی توسط mohammadali1375
                    ببینید فرض کنید یه کلید گزاشته باشیم و هر وقت فشارش میدیم یه نمونه از یه کلاس بسازه . خوب اینو که دیگه کامپایلر نمیتونه تشخیص بده
                    اگه اشتباه نکنم، این قضیه، یا همون تخصیص حافظه پویا، مربوط به Heap میشه. مقدار Heap هم که قبل از کامپایل تو تنظیمات پروژه میشه تغییر داد (کامپایلرِ Keil). اگه درست می گم ادامه بدیم. اگه نه که هـــیـــچ!
                    بیایید با Google آشتی کنیم!

                    دیدگاه


                      #11
                      پاسخ : کنترل Ram

                      نوشته اصلی توسط محمد رستمی
                      اگه اشتباه نکنم، این قضیه، یا همون تخصیص حافظه پویا، مربوط به Heap میشه. مقدار Heap هم که قبل از کامپایل تو تنظیمات پروژه میشه تغییر داد (کامپایلرِ Keil). اگه درست می گم ادامه بدیم. اگه نه که هـــیـــچ!
                      نه حرفتون درست هست.در اصل ram خودش قسمت های متفاوتی داره که مهمترین اونا همون رجیستر های میکرو هستند که از قبل برای cpu تعریف شدند. سپس حافظه های stack,heap ,fram ,.... که بسته به نیاز در ایسی طراحی شدند وجود دارند که هر کدوم برای یه قسمت خاصی هستند.

                      خود ram به صورت سخت افزاری معمولا از چند بانک مختلف تشکیل شده که حالا به اونا کاری نداریم

                      ما میتونی تعیین کنیم که cpu چه مقدار از این حافظه رو به heap تخصیص بده و چقدرو به stack و... بعضی از قسمت ها مثل همون رجیستر ها ثابت هستند و فضاشون قابل تغییر نیست
                      اگه ما برناممون بیش از اندازه heap تعریف شده بخواد از حافظه heap استفاده کنه باعث هنگ میشه که میشه heap رو زیاد کرد اما تا یه حدی

                      در کل اگر بیشتر از حد مجاز بشه که کامپایلر ارور میگیره
                      اگر ما هیپ رو هم درست تنظیم نکرده باشیم اما بیشتر از ram موجود تراشمون که در keil هم مشخص شده به ram نیاز داشته باشیم بازم کامپایلر ارور میده.

                      دیدگاه


                        #12
                        پاسخ : کنترل Ram

                        خوب بود مرسی
                        www.eplan-training.ir
                        www.projectmatlab.ir

                        دیدگاه

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