هل يمكنني إعادة تعيين رقاقة هو مكدس TCP/IP دون الإعادة المجلس ؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

أنا أعمل مع رقاقة مجانا TCP/IP (نسخة 4.55) كومة على 8 بت وحدة تحكم الجزئي.

أحاول إعادة تعيين المكدس دون القيام كاملة تعيين مع asm("إعادة تعيين").

أي أفكار حول كيفية تشغيل هذا المكدس.

التحديث

أنا إعادة تعيين مكدس مع الخطوات التالية

  1. تبديل إعادة تعيين الرقم السري على رقاقة إيثرنت تشيب
  2. دعوة StackInit();
  3. يدويا إعادة تعيين UDP تعلن عن آلة الدولة

ويبدو أن التعافي من قاتلة SPI أخطاء واجهتها.

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

المحلول

دعوة StackInit().أن وظيفة reinitializes جميع وحدات فرعية (TCP, UDP, SMTP, الخ.).فإنه سيتم أيضا بقسوة كل من TCP و UDP socket لديك مفتوحة ، لذلك سوف تضطر إلى إعادة فتح مآخذ تريد استخدامها.

كملاحظة جانبية:تابعت الموضوع على رقاقة المنتدى.كنت أيضا الحصول على غريب يعيد في مكدس TCP.انتهى يجري تجاوز سعة مكدس.وضع بعض المتغيرات في الجزء العلوي من كومة.

#pragma udata stackoverflow = 0xE00
UInt32 StackUpperBound[8];
#pragma udata

تهيئة هذه المتغيرات في بداية الرئيسي() و وضع نقطة توقف في البداية.انظر إذا كانت هذه المتغيرات يتم الكتابة فوقها.

نصائح أخرى

أنا لم تكن مألوفة مع رقاقة المكدس ، لكن ما لم يكن كومة يهدف إلى إعادة أشك في أنك سوف تكون ناجحة.

إذا كان كل المخازن والهياكل ثابت المخصصة ، ثم من الناحية النظرية ، يمكن أن ندعو التهيئة الروتينية إلى "إعادة تشغيل" المكدس (على افتراض أنه لا إعادة تهيئة الهياكل).

إذا كان يستخدم ديناميكية مخازن (malloc) ، ثم أعتقد أنك سوف تكون من الحظ.

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