رفتن به مطلب
انجمن توسعه دهندگان موبایل

مبحث پارتیشن . اسکاتر


ارسال های توصیه شده

حرف شما متین اگر گفته شما صادق باشد چرا گوشی که فول اریز میکنیم با فایل فلش 1.2g بالا میاد؟

 

توی نوکیا که اینطور نیست وبعد از فول ایریز نیاز به رایت ار پی ال و پی ام هست که البته ار پی ال رو ندید میگیریم چون خودش بخشی از فایل پی ام هست و توی این مدلها هخم تا جایی که من میدونم و سر در میارم با ایریز قسمت ان وی هم ایریز میشه و نتیجش پریدن سریال و دردسر های دیگه هست و تها با رایت فایل فلش مشکل رفع نمیشه؟

لینک ارسال
  • پاسخ 21
  • ایجاد شد
  • آخرین پاسخ

مبحث اسکاتر فقط مربوط به پردازنده های ام تی کا نمیشه .

حتی تو ای سی هاینسل اویه AVR هم اسکاتر وجود داره .

اما عموم تعمیرکاران فکر میکنند که فقط قایل اسکاتر مال پردازنده مدیا تک هستش .

صحیحتر این جمله اینه :

تو دنیای تعمیرات موبایل ، فایل اسکاتر عموما برای پردازنده های ام تی کا در دسترس عموم قرار گرفته .

 

اجازه بدید اول یکم با مثال راحت تر کنیم کار رو .

انگار یک ایسی داریم که پشتش هیچ پایه ای نداره .

حالا خودمون میتونیم پشتش هرچند تا که بخوایم پایه بزاریم . ( تا حدی که جا باقی بمونه پشت ای سی )

یکی میاد ایسی رو 2 پایه میکنه . یکی میاد 10 پایه میکنه یکی .....

اسکاتر در اصل یه مثل یه شابلون نرم افزاری عمل میکنه .

 

فرض کنید ما یک ای سی داریم با حافظه 20

شما میتونید هرجور که دلتون بخواد برای این ایسی شابلون (اسکاتر ) ایجاد کنید . ( به شرط اینکه ای سی پشتیبانی بکنه )

برای مثال میتونید

2 قسمت 10 تایی

4 قسمت 5 تایی

یک قسمت 10 تایی و 3 قسمت 3 تایی و 1 قسمت 1 تایی ایجاد کنید .

 

فقط تنها اصولی که باید رعایت بشه اینه که خطای overflow رخ نده

یعنی دیتا سرریز نشه .

 

هنگامی یک نرمافزار با سرریز پشته مواجه میشود، که حافظهای بیش از پشته فراخوانی را مورد استفاده قرار دهد. پشته ی فراخوانی حجم مشخصی از حافظه را در اختیار دارد که عموماً هنگام شروع نرم افزار مشخص میگردد. این حجم به عوامل مختلفی از جمله معماری کامپیوتر، زبان برنامه*نویسی و چندنخی بودن نرم افزار بستگی دارد.

 

 

فراخوانی بازگشتی بینهایت

 

یکی از معمول ترین دلایل اتفاق افتادن سرریز پشته، تعداد بی شمار فراخوانی بازگشتی است، که منجر به پر شدن و سرریز پشته ی فراخوانی می شود.

 

نمونه کد سی که این خطا را ایجاد می کند:

int foo() {

return foo();

}

 

 

 

متغیر بسیار بزرگ

 

یکی دیگر از دلایل معمول بروز سرریز پشته، ساخت متغیری است که حافظه ای بیش از ظرفیت پشته داشته باشد.

 

نمونه کد سی که منجر به بروز این خطا می شود:

int foo() {

double x[1000000];

}

لینک ارسال

پیرانها از قسمتهای خالی هم بکاپ میگیرد

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

همیشه انقدر خوبی کن که وظیفه نشه لطف باشه

لینک ارسال

به این مورد دقت کنید

PROTECT_F

file_name: NONE

is_download: false

type: NONE

linear_start_addr: 0xf00000

physical_start_addr: 0x0

partition_size: 0xa00000

region: EMMC_USER

پارتیشن ادرس فیزیکی داره ولی روی گوشی فلش نمیشه همچنین دو نوع ادرس شروع براش تعریف میشه ادرس خطی و ادرس فیزیکی................

لینک ارسال

سلام مجدد

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

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

ممنون از همه دوستانی که در این بحث شرکت کردند و اطلاعاتشون بع اشتراک گذاشتند

لینک ارسال

قسمتی از اسکاتر y511

part ANDROID linear_start_addr: 0x3d40000

partition_size: 0x28a00000

جمع ایندو دقیقا میشه استارت پارت بعدی

CACHE linear_start_addr: 0x2c740000

partition_size: 0x17800000

و جمع حجم پارتیشن cache با استارت همین پارتیشن مشه استارت پارت بعدی:

USRDATA linear_start_addr: 0x43f40000

البته دقت کنید ماشین حساب در حالت hex باشه وگرنه جواب نخواهد داد

لینک ارسال

PRELOADER linear_start_addr: 0x0 partition_size: 0x600000

MBR linear_start_addr: 0x600000

partition_size: 0x80000

 

EBR1 linear_start_addr: 0x680000

partition_size: 0x80000

 

PRO_INFO linear_start_addr: 0x700000

partition_size: 0x300000

 

NVRAM linear_start_addr: 0xa00000

partition_size: 0x500000

 

PROTECT_F linear_start_addr: 0xf00000

partition_size: 0xa00000

 

PROTECT_S linear_start_addr: 0x1900000

partition_size: 0xa00000

SECCFG

linear_start_addr: 0x2300000

partition_size: 0x20000

 

UBOOT linear_start_addr: 0x2320000

partition_size: 0x60000

 

BOOTIMG linear_start_addr: 0x2380000

partition_size: 0x600000

RECOVERY linear_start_addr: 0x2980000

partition_size: 0x600000

SEC_RO

linear_start_addr: 0x2f80000

partition_size: 0x40000

MISC linear_start_addr: 0x2fc0000

partition_size: 0x80000

ANDROID linear_start_addr: 0x3d40000

partition_size: 0x28a00000

CACHE linear_start_addr: 0x2c740000

partition_size: 0x17800000

USRDATA linear_start_addr: 0x43f40000

partition_size: 0x52c00000

FAT linear_start_addr: 0x96b40000

partition_size: 0x0

BMTPOOL linear_start_addr: 0xFFFF00a8

partition_size: 0x1500000

لینک ارسال
قسمتی از اسکاتر y511

part ANDROID linear_start_addr: 0x3d40000

partition_size: 0x28a00000

جمع ایندو دقیقا میشه استارت پارت بعدی

CACHE linear_start_addr: 0x2c740000

partition_size: 0x17800000

و جمع حجم پارتیشن cache با استارت همین پارتیشن مشه استارت پارت بعدی:

USRDATA linear_start_addr: 0x43f40000

البته دقت کنید ماشین حساب در حالت hex باشه وگرنه جواب نخواهد داد

 

این اعداد و ارقام دقیقا درست در میاد واتفاقا این همون سوالی بود که بنده ابتدای کار پرسیدم چون من یه فایل بک اپی که گرفته بودم رو تست کردم جور در نمیومد که این سوال رو پرسیدم .اگر وقت کنم اون فایل رو پیدا میکنم و نمونشو میذارم.

لینک ارسال

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.


×
×
  • اضافه کردن...