سؤال

وأنا خلق وحدة صغيرة في المجمع لARM، أن تكون مرتبطة مع بلدي عارية المعادن تطبيق المضمنة. أحيانا عندما أكون إعادة بناء التطبيق، أحصل على "خطأ [Lp002]: فشل نقل: قيمة خارج النطاق أو غير قانونية". ما هو أكثر إثارة للحيرة هو أنني أتلقى الخطأ بعد تعليقه بعض التعليمات البرمجية في وحدة نمطية C.

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

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

المحلول 2

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

وهذا هو السؤال الذي يبقى: كيفية معرفة رابط لوضع قسم معين وثيق مع بعضها البعض

نصائح أخرى

ومتى أحصل على بعض غامض خطأ رابط / مترجم، فأنا على إعادة جميع. حوالي نصف الوقت الذي يصلح له. تخميني هو أن بعض وحدة كان ينبغي معاد، ولكن لم يفعل ذلك.

وحظا سعيدا.

وبحث في وثائق البرمجي. عادة، هناك قسم حول الملفات الأوامر رابط، الذي لم بالضبط ما كنت أبحث عنه.

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