سلام
چطور میتونم بفهمم چقدر از حافظه فلش ۲۵۶ کیلوبایتی موجود در AT91SAM7X256 پر شده و اصلا چطور بفهمم برنامه ی من چقدر حافظه ی فلش نیاز داره؟
کدی که من دارم الان ۴۴ کیلو بایت حجم فایل HEX ش هست و ۱۶ کیلوبایت حجم فایل bin ش
سلام
چطور میتونم بفهمم چقدر از حافظه فلش ۲۵۶ کیلوبایتی موجود در AT91SAM7X256 پر شده و اصلا چطور بفهمم برنامه ی من چقدر حافظه ی فلش نیاز داره؟
کدی که من دارم الان ۴۴ کیلو بایت حجم فایل HEX ش هست و ۱۶ کیلوبایت حجم فایل bin ش
شما حجم فایل bin رو مد نظر داشته باش
یعنی با این اوصاف برنامه شما 16 کیلوبایت شده
سلام مهندس
از چه كامپايلري استفاده ميكني؟ Keil يا IAR يا ....؟
_____________________________________
_____________________________________
لطفا" عکسو ببین
_____________________________________
_____________________________________
دوست گرامی - این عکسی که شما گذاشتی درسته نوشته کد ولی هر برنامه ای یه سری دیتا اضافی داره که تو فلش ذخیره میشه ، یعنی شما باید 4 بخش رو با هم جمع کنید تا حجم واقعی برنامه به دست بیاد
سلام دوستان گلم.
جمع عدد اول و دوم یعنی :
code+ro data
میشه اونچه از حافظه فلش که اشغال میشه.
جمع دو تای بعدی یعنی:
rw data+zi data
میشه فضایی که از رم اشغال میشه.
موفق باشید.
حجم فایل bin من ۱۵۷۳۶ بایت هست و مجموع مقدار Code و مقدار RO-Data و مقدار RW-data جمعا میشه دقیقا ۱۵۷۳۶ بایت
۱۳۶۱۲+۲۱۰۰+۲۴
[PHP]Program Size: Code=13612 RO-data=2100 RW-data=24 ZI-data=4904 [/PHP]خوب ما الان فقط فایل bin رو به میکرو میفرستیم پس مقدار ZI-data عملا نقشی در حافظه برنامه یا رم میکروی ما نداره
ویرایش توسط beroz : 13-11-2013 در ساعت 23:07
من مطلبی که نوشتمو تو یه تاپیک فروم کیل خوندم، واسه خودمم همیشه حدودی دیدم درسته، راستش هیچوقت اینقد دقیق جمع نزده بودم ببینم چی میشه
وقتی ZI data رو به میکرو نمیفرستیم چطور خودش وارد رام میکرو میشه؟
فایل bin که به میکرو ارسال میشه شامل ZI Data نیست
در لینک زیر هم که توضیح داده موقع ای که خاسته مقدار ZI data رو تو رام نشون بده کنارش زده Clear
ROM and RAM in ARM - Stack Overflow
خوب رام طبق برنامه اشغال میشه، شما دیتایی تو رام نمیریزی، برنامته که اون دیتارو به رام اختصاص میده، یعنی مثلا یه خط برنامه که مثلا یه آرایه 1000 تایی از نوع بایت شما توش درست میکنی باعث میشه 8000 بایت از رامت پر بشه در صورتی که هیچ داده ای هنوز تو اون فضا نیست. متوجه منظورم شدی؟(رام جدا پروگرم نمیشه،شما وقتی تو کیل توی target option میری میبینی که آدرس رام و رم رو براش معلوم کردی، ولی موقع پروگرم کردن چیزی تو رم ریخته نمیشه، برنامست که موقع اجرا وقتی به خطی میرسه که قراره از رم استفاده کنه اون فضارو استفاده میکنه،این قضیرو با دیباگ کردن به وسیله jlink و 2 تا بریک پوینت به راحتی میتونی چک کنی(قبل از این که خط ساخت یه داده اجرا نشه داده ای تو رم وجود نداره!))
مثلا شما وقتی به rtx اجازه میدی برای یه تسک از 100 بایت رام استفاده کنی در واقع موقع برنامه نویسی و کامپایل اصلا داده ای وجود نداره که تو اون 100 بایت قراره ریخته بشه، شما فقط فلش میکرو رو پروگرم میکنی و وقتی برنامت اجرا میشه rtx از اون 100 بایت رامی که بهش دادی استفاده میکنه، بعد کیل آخر کامپایل کردن برنامه این فضاهای رام استفاده شده در برنامتو (اعم از داده ها، پشته ها و... که استفاده کردیو) جمع میزنه و به عنوان ro data و rw data داره نشون میده.
یه سوال
کلا RW Data وZI DataوCodeوRO Data چیه؟
هر کدوم ر واگه میشه بیشتر بازش کنید....