ما هو أفضل مورد لتعلم لغة التجميع من الموافقة المسبقة عن علم الميكروكسي [مغلق

StackOverflow https://stackoverflow.com/questions/1473454

سؤال

سأبدأ العمل في مشروع حيث أحتاج إلى فهم لائق لغاوية التجميع لمتوصل الموافقة المسبقة عن علم. أنا على دراية عمومية مع C / C ++، لذلك أعرف كيفية الكود بالنسبة للجزء الأكبر، وقد فعلت العديد من المشاريع من الموافقة المسبقة عن علم بالفعل حتى أفهم الهندسة المعمارية، لكنها قامت بجميع البرمجة الخاصة بي به في "C".

هل هناك كتاب جيد أو موقع على شبكة الإنترنت يقوم بعمل جيد يشرح ما تعنيه جميع أوامر التجميع وكيفية القيام بمهام بسيطة إلى حد ما (وميض الصمام، والرياضيات الأساسية، وما إلى ذلك ...) للميكروكروكيرولر الموافقة المسبقة عن علم؟

تحرير: الغرض الأساسي من هذا المنشور هو طلب موارد لتجميع التعلم، وليس مناقشة مزايا الجمعية C VS في الموافقة المسبقة عن علم، أو ما إذا كانت الموافقة المسبقة عن علم هو متحكم "جيد" لاستخدامه. أنا أستخدم متحكم Pic18 إذا كان ذلك يحدث أي فرق.

هل كانت مفيدة؟

نصائح أخرى

هناك المزيد من هندسة الموافقة المسبقة عن علم، مع مجموعات تعليمات مختلفة بشكل كبير. ليس لدى Microchip الاتساق المعماري في ATMEL AVR على سبيل المثال. لذلك تحتاج إلى تحديد ما تستخدمه - Pic12، 16، 24، 32 على سبيل المثال.

لذلك أولا وقبل كل شيء أقترح تجنب مجمع الموافقة المسبقة عن علم على أساس أن ما تتعلمه في تقول PIC12، قد لا يكون ذلك قابلا للتطبيق للغاية على PIC24. ثانيا، أود أن أتجنب استخدام الموافقة المسبقة عن علم على الإطلاق إذا كان من الممكن أن أتمكن من مطور البرمجيات - على الرغم من أنني أعترف هناك اعتبارات أخرى، وقد لا يكون لديك أي خيار.

ما قد يكون لديك خيار لا يستخدم المجمع. في حين أن بلدان جزر المحيط الهادئ السفلى لا لا يكون الأنسب لجيل رمز C، فهذا مشكلة كاتب التحويل البرمجي؛ لا يزال أكثر فعالية من حيث التكلفة من حيث وقت التطوير لاستخدام C حيثما أمكن ذلك. من ناحية أخرى بالنسبة لمنتجات الصوت المرتفعة، إذا استطعت تطراف التعليمات البرمجية في جزء أصغر باستخدام المجمع، فقد يكون ذلك عاملا. يقرر أنك بحاجة إلى مجمع قبل اختباره، غالبا ما يكون الحل جيم في كثير من الأحيان "الأمثل المبكر". حتى إذا فشل تنفيذ C بالحجم أو القيود الزمنية، فيمكنك فقط أن تسميها نموذجا أوليا، وأرقىها لتلبية القيود. لا يزال الأمر أكثر مما لا يزال أسرع من بدء الترميز المجمع من الصفر والكافح مع مجموعة التصميم والتعليمات في نفس الوقت. أخبر رئيسك أنك ستكتشف ذلك في C، ثم عندما تفي بمتطلبات، لن يرغب أحد في إضاعة الأموال إعادة الترميز، رمز المجمع غير القابل للاحتفال غير القابل للاحتفال.

أخيرا للإجابة على سؤالك، على افتراض أنك بحاجة إلى القيام بعمل تم تنفيذه بسرعة وكفاءة، استخدم أمثلة Microchip وملاحظات التطبيقات قدر الإمكان، وتعرف نفسك على مجموعة التعليمات من مرجع مجموعة تعليمات الشركات المصنعة. تعطيل التعليمات للأجزاء السفلية ليست كبيرة. بالنسبة للعمل اليومي، أحب استخدام "بطاقة مرجعية لتعيين التعليمات" كمساعد مساعد - يلخص كل التفاصيل الأساسية لكل تعليمات، وعادة ما تكون في صفحتين - طباعةها على الوجهين وتصفحها! ؛). هنا هو مثال PIC16.

قد يكون ذلك الرد المتأخر للغاية، ولكن يمكنك الاستفادة من دورة المختبر هذه مكتوبة في المقام الأول لتعلم تجميع الموافقة المسبقة عن علم من خلال التطبيقات.

الشيك: http://embedded-ju.ucoz.com/

تحقق من علامة التبويب التجارب، ويشمل:

التجربة 0. - (مقدمة في MPLAB)

التجربة 1 - (مقدمة في مجموعة تعليمات التجميع الموافقة المسبقة عن علم)

التجربة 2. - (أكثر على مجموعة التعليمات وتقنيات البرمجة المعيارية)

التجربة 3. - (تحليل النظام الأساسي والتصميم)
3.1. دليل الأجهزة الأول

التجربة 4. - (LCD - HD44780)

التجربة 5. - (لوحة المفاتيح)

التجربة 6. - (باستخدام مترجم Hi-Tech C في MPLAB) 6.1. برمجة الموافقة المسبقة عن علم مع دليل ICD2.

التجربة 7. - (توقيت (Timer0 و Timer2))

التجربة 8. - (USART)

التجربة 9. - (البرمجيات PWM & A / D)


يعتمد على سلسلة الموافقة المسبقة عن علم، وعلى الأخص، 16F84A، 16F877A و 16F917 .. وعلم الأمثلة بالكامل، وأوضحت التجارب بالكامل.

أنا مؤمن في كتابة disarmembler. ابدأ ببرنامج بسيط للغاية أو خطين يقوم بتحميل سجل مع ثابت ربما (فلدي قراءة برنامج تعليمي أو شيء لتعلم هذه الخطوة). تجميعها. احفظ الثنائي في تنسيق، فأنت قادر أو على استعداد لكتابة برنامج لقراءة (Intel Hex ربما، أو قزم إذا كانوا يدعمون ذلك).

اكتب برنامجا لقراءة الملف الثنائي واستخراج البرنامج ثم خذ تلك البايتات وكتابة DisaShbler (حتى إذا كان البائع يحتوي على disarsembler، فلا يزال يتعين عليك كتابة واحدة).

الآن ابدأ في تكرار العملية، وتعلم تعليمات جديدة أو طريقة جديدة لاستخدام هذه التعليمات، وتعليمات واحدة في وقت واحد. اكتب الرمز لتفكيك هذه التعليمات أو الخيار. حاول كتابة المجمع لمعالجة كل جزء من البتات في التعليمات.

بحلول الوقت الذي تحصل فيه من خلال مجموعة التعليمات، ستعرف التعليمة تعيين أفضل من معظم الأشخاص الذين يستخدمونها كل يوم، ستعرف كيفية كتابة المجمع لكل من الخيارات لكل من Opcodes، قد تتعلم أيضا لماذا هذه التعليمات يمكن فقط معالجة N BYTES N من موقعه ويمكن للآخرين الوصول إلى أي شيء، أو أن التعليمات التي يمكن أن تستخدمها فقط فوريا N Forliate وغيرها يمكن استخدام أي قيمة. من هذا القبيل.

لقد استخدمت هذه العملية عدة مرات وتعلم العديد من مجموعات التعليمات، YMMV. بعد الزوجين الأولين، قد تستغرق العملية أعلاه بعد ظهر فترة ما بعد الظهر.

تعديل:

الهدف هنا هو التعليم وليس مشروع Sourceforge العظيم التالي. يمكن أن يكون الإخراج قبيحا أو غير مكتمل كما تريد أنت الوحيد الذي سيؤدي إليه قراءته.

ملاحظة: يمكن أن تكون Disassembler العامة لمجموعات تعليمات الطول المتغيرة صعبة إلى حد ما، ولا تريد تفكيكها الخطية الثنائية في هذه الحالة تريد اتباع جميع مسارات التنفيذ. كنت أتجنب ذلك. أخذ برامج بسيطة تنفذ تجميعا خطيا إلى حد ما، فإن التفكيك ليس صعبا حتى على مجموعة تعليمات طول متغيرة. يمكنك أن تتعلم قليلا عن التعليمات التي تم تعيينها من خلال تفكيك وفحص إخراج مترجم C (أو لغة مستوى عال)، إذا كان برنامج التحويل البرمجي لا يحتوي على خيار إخراج مجمع أو لا يحتوي على DisaReMbler، فقد لا تحصل عليه للاستفادة من هذا (ما لم تكن مجموعة تعليمات بطول ثابت).

لاحظ أيضا بمجرد تعلم مجمع لمعالج واحد، والثاني أسهل بكثير، وهلم جرا. غالبا ما تصبح الأشياء التي تحتاج إلى تعلمها من واحد إلى آخر ما يمكن أن تكون هذه القفز كبيرة، ما هي القواعد المتعلقة بمفانيا، معالجة غير مباشرة، كل الأشياء التي ترتبط مباشرة بدراسة الفحص. يمكنك تعلم ذلك دون النظر إلى Opcodes، ولكن عليك الاعتماد على رسائل خطأ التوثيق أو المجمع ذات جودة عالية.

Piclist: http://piclist.com/ .

خاصه،

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top