عرض مشاركة واحدة
قديم 30/6/2005, 05:00 AM   رقم المشاركة : ( 9 )
sayed ismael
بـاشـمهندس


الملف الشخصي
رقم العضوية : 1299
تاريخ التسجيل : Jun 2005
العمـر :
الجنـس :
الدولـة :
المشاركات : 62 [+]
آخر تواجـد : ()
عدد النقاط : 39
قوة الترشيـح : sayed ismael يستاهل التميز

 الأوسمة و جوائز
 بينات الاتصال بالعضو
 اخر مواضيع العضو

sayed ismael غير متصل

افتراضي مشاركة: $#@$الجيتاج من الالف الى الياء$#@$

نعود مرة أخرى أعزائي الكرام ونكمل الطريق إلى هذا العالم الجديد بالجزء الثاني من الشرح ونتعرض لجزء مهم قبل أن نبدأ في المرحلة الثانية من الحالات الثلاثة السابقة والتي شرحنا منها المرحلة الأولى وهذا الجزء المهم هو الفلاش ميموري نفسه من حيث التكوين الداخلي وتنظيمه وسوف نأخذ مثالا نوع من أنواع هذه الفلاشات ونرفق لكم أيضا ملف Datasheet ونقوم بالشرح مثلما سبق في شرح البروسيسور:
" الفلاش ميموري عبارة عن وحدة تخوين دائمة ذات حجم محدد من مضاعفات الرقم 2 لها بداية عنوان وهو 000000h ينتهي ال عنوان معين حسب الحجم فمثلا لدينا هذه الفلاشة M29W160ET كما ذكرنا مسبق هــــي عبارة عن 2 ميجا بايت أو 2097152 Bytesويكون النهاية هي 1FFFFF وهذا مهم جدا في وجه نظري لأننا سوف نحتاج فيما بعد بتعديل ملف الـ Jkeys.def ووضع فلاشة جديدة لم تكن معرفة لدينا من قبل أو هي حديثة في أجهزة الريسيفر ويمتاز هذا البرنامج عن غير من برامج المبرمجات الخارجية التي تتطلب انتظار نسخة احدث مدعمة بهذه الفلاشة الجديدة ولكننا هنا يمكن إضافتها مباشرة ونتعامل معها بصورة عادية جدا.

" يدل الحرف M علي الشـــركــــة المصنعـــة وهي ST micro والرقم 29 علي سلسلة من الفلاش أما الرقم 160 يدل علي السعة والحرف E يدل علي إصدار معين من الفلاش أما الحرف T فيدل علي Top boot block أي أن منطقة البوت في أعلي الفلاش ميموري وهذا مهم جدا فمثلا لدينا أيضا من هذه الفلاشة M29W160EB نلاحظ التغيير الوحيد في الحرف B وهو يرمز إلى Bottom أي أن منطقة البوت في الجزء الأسفل من الفلاش ولا يجوز تركيب الفلاشة الثانية مكان الأولى أو العكس وإلا فلن يعمل الريسيفر بسبب عدم الوصول إلى منطقة البوت .

" لدينا الآن ملف datasheet لهذه الفلاشة وهذا كمثال عام يهمنا ان نستخلص منه الآتي:
1- لكل فلاش ميموري رقم يسمي Device code وفي هذه الحالة هو 22C4 للفلاشة الأولى ويوجد أيضا كود الشركة المصنعة وهو 20h وهذا يميز كل فلاشة عن أي فلاشة أخرى لدي البرنامج ويتم التعرف عليها بصورة صحيحة.
2- يمكنكم الآن فتح الصفحة رقم 8 وهي توضح تركيب الفلاش الداخلي وهو أشبه بمستطيل تم تقسيمه إلى عدة شرائح أو Blocks وهي عبارة عن 2×64 ك من الأسفل في حالة البوت العلوي أو الـ Top Boot ولاحظوا انه معكوس وهذا صحيح ففي العد يكون الصفر هو البداية أو الأعلى وتكون منطقة البوت عبارة عن 128 ك بايت ويكون مجموع البلوكات ذات السعة 64 هي 31 بلوك تبدأ من 00000 ولدينا بعد ذلك 1 بلوك بحجم 32 ك. بايت تبدأ من 1F0000 و 2 بلوك بحجم 8 ك. بايت يبدأ الأول منها عند 1F8000 والثاني يببدأ من 1FA000 وأخيراً 1 بلوك بحجم 16ك. بايت يبدأ من العنوان 1FC000 ولاحظوا أنني قمت بكتابة البداية فقط لان النهاية يتم تحديدها تلقائيا أثناء العد .
3- ألان يمكن أن نتخيل الشكل الداخلي للفلاش ميموري ويمكن أيضا معرفة أي تنظيم لأي فلاشة مثل الفلاشة الحالية موضوع الشرح عن طريق النظر في ملف الـ Datasheet للفلاشة المراد معرفة التنظيم الداخلي لها ويمكنكم أن تجدوا ملفات الـ Datasheet علي الرابط التالي :
http://www.datasheetarchive.com/


يفيدنا ما سبق شرحة عن الفلاش ميموري معرفة أين يوضع البوت أو اللودر في الفلاش ميموري وكيفية تحديثه ويفيد بصورة مهمة في إضافة التعريف في ملف الـJkeys.DEF واليكم المثال التالي لإضافة الفلاشة موضوع الشرح :

1- قم بفتح الملف السابق بواسطة المفكرة واذهب الي الفلاش رقم 28ولاحظوا معي كيف تم إضافة هذه الفلاشة:
Flash, 28, "M29W160ET", 0x22C4, 0x200000, 1, 1, 0, 1, 35, 1
Sector, 28, 31,0x0 , 0x10000 // 64 KByte 31 sectors
Sector, 28, 1, 0x1F0000, 0x8000 // 32 KByte 1 sector
Sector, 28, 1, 0x1F8000, 0x2000 // 8 KByte 1 sector
Sector, 28, 1, 0x1FA000, 0x2000 // 8 KByte 1 sector
Sector, 28, 1, 0x1FC000, 0x4000 // 16 KByte 1 sector

واليكم الشرح:
تدل كلمة flash علي ان التعريف سيكون لفلاش ميموري والرقم 28 يدل علي ترتيب الفلاشة في الملف وتم كتابة رقم الفلاشة داخل علامة التنصيص " M29W160ET " وهذا سوف يظهر في البرنامج ثم بعد ذلك يكتب كود الفلاشة 0x22C4 وبعد ذلك نكتب سعة الفلاشة 0x200000 وكما ذكرنا من قبل فالرقم 200000 يدل علي حجم الفلاش وهو 2 ميجا ثم الرقم 1 يدل علي 8 بت في نقل البيانات والرقم التالي 1 يدل علي 16 بت في نقل البيانات أيضا والرقم 0 التالي يدل علي عدم إمكانية 32 بت في نقل البيانات والرقم 1 التالي يستخدم في حالة الفلاشات التي تبدأ بـ 29 أو 39 أو 49 وفي حالة الفلاشات التي تبدأ بـ 28 مثل INTEL يكتب الرقم 2 اما الرقم 35 فهو عدد البلوكات الموجودة في الفلاش ميموري وقد ذكرنا أهمية ذلك من قبل هذا موضح في الصورة السابقة أما الرقم 1 الأخير يحدد مسح الفلاش بلوك تلو الاخر ام لا .

ملحوظة:
معظم الارقام بعد الرقم 200000 ثابتة بخلاف الرقم الدال علي 29-39-49 في الفلاش ميموري والرقم الذي يدل علي عدد البلوكات أو بمسمي اخر القطاعات أو Sectors يتغير تبعا للتنظيم الداخلي للفلاش ميموري .

- بعد ذلك يكتب التنظيم الداخلي للفلاش ونبدأ من اسفل الي اعلي ونكتب عدد القطاعات أو البلوكات بالترتيب ثم نكتب فقط بداية العنوان Start Address وحجم القطاع اما الكتابة بعد العلامة // فهي غير مهمة في البرنامج وانما كتبتها لمعرفة الحجم الدال علي الرقم الاخير بالـ ك. بايت .
- واليكم مثال اضافة فلاشة جديدة للرقم M29w160EB:

Flash, 29, "M29W160EB", 0x2249, 0x200000, 1, 1, 0, 1, 35, 1
Sector, 29, 1, 0x0 , 0x4000 // 16 KByte 1 sector
Sector, 29, 1, 0x4000 , 0x2000 // 8 KByte 1 sector
Sector, 29, 1, 0x6000 , 0x2000 // 8 KByte 1 sector
Sector, 29, 1, 0x8000 , 0x8000 // 32 KByte 1 sector
Sector, 29, 1, 0x10000 , 0x10000 // 64 KByte 31 sectors

وهكذا بكل بساطة يمكن إضافة أي فلاشة لديكم في ملف Jkeys.def .

الان عرفنا جيدا ما هي الفلاش ميموري بصورة مبسطة وعرفنا في الجزء الاول كيفية القراءة من الفلاش ميموري في حال الريسيفر سليم ويعمل بصورة جيدة ونعود الي الحالة الاولي ومثلها الحالة الثانية وهي اذا قمنا بتركيب فلاشة جديدة Blank flash memory أي لم يتم عليها الكتابة من قبل او ممسوحة بواسطة مبرمجة خارجية واليكم الخطوات :

1- نقوم بتوصيل الـ Jtag بالريسيفر والكمبيوتر ونفتح برنامج Jkeys ثم نشغل الريسيفر ونضغط Detect فيتم التعرف علي البروسيسور كما سبق شرحه في الجزء الأول .
2- نضغط بعد ذلك علي Flash Programming فتظهر أمامنا النافذة التالية:


3- نفصل الريسيفر عن التيار الكهربائي ثم بع ذلك نعيد التوصيل وبعد ثلاثة ثواني تقريبا وهي فترة البوت ويمكنكم ضبط هذه الفترة حسب خبرتكم نضغط علي زر موافق فتظهر لكم الرسالة التالية:



4- نجد ان البرنامج قام بالتعرف علي رقم الفلاش واسم الشركة المصنعة وكتب لنا الـDevice ID في مربع Flash info .
5- الآن يجب أولا اختيار موديل الريسيفر من مربع IRD وفي هذه الحالة نختار إما 4900 أو ODS3000FL ولنجعل لكل الانواع التي تحمل البروسيسور Sti5518 الاختيار 4900 هنا يصلح هذا الاختيار بخلاف الشرح السابق في الجزء الاول لان عملية الكشف الالي علي الفلاش هي التي تحدد طريقة التعامل مع الفلاش أما الموديل يحدد لنا Start Address فقط ثم نضغط علي detect الموجودة في مربع Flash info مرة أخرى.



6- ألان يجب علينا معرفة جزء مهم جدا وهو بالنسبة للـ Jtag في أهمية ملف الفلاش نفسه وهو Check EMI وذلك بالضغط عليه سوف نجد الآتي وطبعا تختلف القراءة من جهاز لاخر وذلك حسب الموديل :



7- هذه الصورة يجب أن تأخذ وتخزن مع ملف الفلاش الذي تمت قراءته بنفس الاسم لأننا سوف نحتاج الي هذا الجزء في الرحلة التالية.
8- يمكن أيضا قراءة الفلاش من هنا بالضغط علي Read وهو مثل الطريقة السابقة ويكون الملف المقروء متطابق تماما مع الملف الذي قرأناه في المرحلة الأولى.
9- الآن إذا كنا نريد إعادة شحن الفلاشة مرة أخرى يجب مسح الفلاشة أولا وذلك بالضغط علي Erase فسوف تظهر لنا الرسالة التالية:


10- نختار موافق وبعد تمام عملية المسح نضغط علي Program ونختار الملف ثم موافق فتبدأ عملية البرمجة مرة أخرى وننتظر حتى ينتهي البرنامج من العد ونضغط موافق ثم نفصل التيار الكهربائي ونفصل الوصلات أيضا ونعيد التشغيل وسوف يعمل مرة أخرى ان شاء الله .


تــــــــــــابع