PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اشکال تابع fflush در کتابخانه keil



alitaroosheh
25-08-2012, 01:08
با سلام

توی یکی از تاپیکهای دیگه اشاره کردم ولی گفتم موضوع جدید باز کنم

توی همه ورژنهای rl-arm یه مشکلی توی ذخیره سازی فایلها هست که وقتیfflush lیزنید میگه انجام شد ولی نمیکنه و اگه fclose بعدش نیاد فایل کرش میکنه و ظرفیت 0 بایت نشون میده ولی توی properties ظرفیت استفاده شده رو خیلی بالا مینویسه همون اندازه که با میکرو نوشتیم

من مدارم ممکنه تغذیش ناگهانی قطع بشه واسه همین باید تا اون لحظه لاگ رو داشته باشه و حداقل کرش نکنه چون اینطوری باید مموری رو فرمت کنم

توی ورژن 4.13 که keil کتابخونه رو توی ستاپ جدا میداد کد لایبری باهاش بود من توشو نگاه کردم یه جایی از زیر برنامه های fflush نوشته بود اگه درایو از نوع mci یا usb بود return کن و هیچ کاری نمیکرد

یکی از دوستان توی همین سایت گفتن این مشکل نیست کامپایلرهایی مثل borland هم همینطوری هستن

من تابحال کار نکردم با اینا ولی bascom و vs2008 , vs2005 کلا محصولات مایکروسافت اینطوری نبودن و حین رایت کردن اگه fflush کنیم ذخیره میشه و اینو میشه با ظرفیت فایل و نرم افزارهایی مثل notepad++ دید ... دائما میگن فایل از بیرون به روزرسانی شده میخوای دوباره لود کنم

اگه چیزی از این موضوع میدونید به من بگید ممنون میشم

موفق باشید

agape
26-08-2012, 00:25
سلام دایی جان - ببینید چون که کیل از بافر برای رید و رایت استفاده میکنه حتما برای اطمینان از این که بافر کاملا رایت شده باید از fflush استفاده کنید. روند نوشتن رو برای این روش مثال میزنم - فرض کنید که بافر شما 4096 بایت هست ، شما تا 4096 بایت رو که رایت کنی - هیچی به کارت حافظه منتقل نمی شه و همه تو بافر نوشته میشه حالا فرض کنیم شما یه بایت دیگه مینویسی - کیل میآد و 4096 بایت رو منتقل میکنه به کارت حافظه و بافر رو خالی میکنه - این روش باعث افزایش سرعت نوشتن داده ها میشه و بدیی هم که داره اینه که اگر در انتهای فایل شما fflush نکنید ، ممکنه مقداری داده از دست بره چرا که تو بافر نوشته شده و نه مموری ! اما در مورد بتن فایل - کیل اول میآد و فضای خالی پیدا میکنه و ولی هدر فایل رو درش قرار نمیده ، و سکتور سکتور داده ها رو مینویسه و در انتها وقتی شما فایل رو می بندی - اون هدر فایل رو قرار میده !

agape
26-08-2012, 00:37
در ضمن اگر از fatfs استفاده کنی این مشکل رو نداری - من مثال پورت کردش رو برای کیل میذارم - البته من برای میکروی آتمل پورت کردم - ولی خوب چون سازگارش کردم با کیل - شما میتونی به راحتی برای هر میکرویی ازش استفاده کنی

Boodaghi
16-06-2013, 12:12
سلام
من برای راه اندازی FAT 32 از کتابخانه rl-arm استفاده کردم. ولی یک مشکلی که وجود داره اینه که وقتی برنامه رو با یک کامپیوتر دیگه کامپایل و پروگرم می کنم درست پروگرم نمیشه در حالی که در خود Keil هیچ خطا یا هشداری که مربوط به این موضوع باشه نمیده. ولی با کامپیوتر خودم هیچ مشکلی نداره. در ضمن لایسنس rl-arm روی هر دو کامپیوتر نصب شده است.
کسی هست که بتونه منو راهنمایی کنه.
ممنون