ساهر
عضو مبدع
الجنس : العمر : 35 المدينة المنورة التسجيل : 06/09/2011 عدد المساهمات : 213
| |
ساهر
عضو مبدع
الجنس : العمر : 35 المدينة المنورة التسجيل : 06/09/2011 عدد المساهمات : 213
| موضوع: رد: ۩۩ أجهزة الريسيفر و مكوناتها ۩۩ السبت 10 سبتمبر 2011, 3:49 am | |
|
سنتعرف ماهو الفلاش ميموري، فقبل الخوض في التطبيق، يجب قبلا اخذ فكرة عن كيفية عمل هذا المكون المهم من اجهزة الريسيفر، و رغم ان الأمر يبدو صعبا في البداية ، الا انه مهم جدا و خاصة للذين لم يسمعوا من قبل عن برمجة الفلاشات..
• الفلاش ميموري عبارة عن وحدة تخوين دائمة ذات حجم محدد من مضاعفات الرقم 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 وهذا يميز كل فلاشة عن أي فلاشة أخرى لدي البرنامج ويتم التعرف عليها بصورة صحيحة. وهي توضح تركيب الفلاش الداخلي وهو أشبه بمستطيل تم تقسيمه إلى عدة شرائح أو Blocks وهي عبارة عن 2×64 ك من الأسفل في حالة البوت العلوي أو الـ Top Boot ولاحظوا انه معكوس وهذا صحيح ففي العد يكون الصفر هو البداية أو الأعلى وتكون منطقة البوت عبارة عن 128 ك بايت ويكون مجموع البلوكات ذات السعة 64 هي 31 بلوك تبدأ من 00000 ولدينا بعد ذلك 1 بلوك بحجم 32 ك. بايت تبدأ من 1F0000 و 2 بلوك بحجم 8 ك. بايت يبدأ الأول منها عند 1F8000 والثاني يببدأ من 1FA000 وأخيراً 1 بلوك بحجم 16ك. بايت يبدأ من العنوان 1FC000. 3-ألان يمكن أن نتخيل الشكل الداخلي للفلاش ميموري ويمكن أيضا معرفة أي تنظيم لأي فلاشة مثل الفلاشة الحالية موضوع الشرح عن طريق النظر في ملف الـ Datasheet للفلاشة المراد معرفة التنظيم الداخلي لها ويمكنكم أن تجدوا ملفات الـ Datasheet علي الرابط التالي : الموقع أضغط هنا وأكبس هنا يفيدنا ما سبق شرحة عن الفلاش ميموري معرفة أين يوضع البوت أو اللودر في الفلاش ميموري وكيفية تحديثه ويفيد بصورة مهمة في إضافة التعريف في ملف الـJkeys.DEF واليكم المثال التالي لإضافة الفلاشة موضوع الشرح : 1-قم بفتح الملف السابق بواسطة المفكرة واذهب الي الفلاش رقم 28ولاحظوا معي كيف تم إضافة هذه الفلاشة: *****, 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
واليكم الشرح: تدل كلمة ***** علي ان التعريف سيكون لفلاش ميموري والرقم 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: *****, 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 الذي يجب ان يتواجد مع برنامج Jkeys.
| |
|