قيد التطوير ، يرجى ملاحظة: هذه البرامج الثابتة موجودة حاليًا في مرحلة التطوير. قد تتغير الميزات ، وقد يحتوي الرمز على الأخطاء. استخدم بحذر وأبلغ عن أي مشكلات تواجهها.
يوفر محمل التمهيد هذا Microcontroller STM32 حلاً قويًا وغنيًا بالميزات لتحديثات البرامج الثابتة. تم تصميم جهاز تحميل التشغيل لتسهيل تحديثات البرامج الثابتة عبر واجهات USB أو UART الداخلية ، باستخدام فلاش SPI خارجي لتخزين البرامج الثابتة مؤقتًا.

تخزين البرامج الثابتة للفتحة المزدوجة: يدير جهاز تحميل التشغيل فتحتين منفصلتين في فلاش SPI الخارجية لتخزين إصدارات مختلفة من البرامج الثابتة. هذا يسمح بتحديثات البرامج الثابتة الآمنة مع إمكانية التراجع.
تراجع البرامج الثابتة: في حالة فشل التحديث ، يمكن لمحمل التمهيد العودة إلى البرامج الثابتة العاملة السابقة ، مما يضمن ظهور الجهاز.
التحقق من صحة CRC32: يتم التحقق من صحة كل برنامج ثابت مخزّن في فلاش SPI باستخدام CRC32 لضمان تكامل البيانات ومنع تنفيذ البرامج الثابتة التالفة.
التخزين المشفر: يحتفظ أداة تحميل التشغيل بجميع بيانات البرامج الثابتة المخزنة في SPI Flash في شكل مشفر ، مما يعزز الأمان من الوصول غير المصرح به.
إدارة الإصدار: يمكن لـ Bootloader الإبلاغ عن إصدار البرنامج الثابت الحالي ، والمساعدة في الحفاظ على إصدارات البرامج الثابتة وتتبعها على الجهاز.
نص Python الخارجي: يتم توفير برنامج نصي Python للمساعدة في تحميل البرامج الثابتة الجديدة على الجهاز. يسهل هذا البرنامج النصي أيضًا الإبلاغ عن الإصدار وغيرها من العمليات المتعلقة بتحميل التمهيد.
FW FILE ) وترفق البيانات الوصفية الحاسمة مثل إصدار البرامج الثابتة ، واسم البرامج الثابتة ، ومعرف البرامج الثابتة ، ووقت الإنشاء ، والتاريخ إلى ملف الإخراج ( BIN FILE ).Lock Bin بين هذه المدخلات مع ملف البرامج الثابتة وتشفير الحزمة لضمان أمانها أثناء الإرسال.BIN FILE ) الذي يحتوي بشكل آمن على البرامج الثابتة المشفرة إلى جانب البيانات الوصفية المضمنة..fw آمن ومشفر يحتوي على جميع البيانات الوصفية ، بما في ذلك وقت البناء والتاريخ.Host App مسؤول عن نقل ملف البرامج الثابتة المشفرة إلى متحكم..fw المشفر ، ويستخرج البيانات الوصفية اللازمة لأغراض تسجيل أو التحقق من الصحة ، ويؤسس اتصالًا مع متحكم عبر منفذ COM (على سبيل المثال ، USB/UART).Host App عبر USB/UART. يعالج خط الأنابيب هذا بشكل آمن تحديثات البرامج الثابتة ، مما يضمن سلامة العملية من التشفير إلى التثبيت. توفر إضافة وقت البناء والتاريخ في ملف .fw مزيد من التتبع لكل إصدار من البرامج الثابتة.
استنساخ هذا المستودع:
git clone https://github.com/mayankpatel97/STM32-SPIFLASH-UART-BOOTLOADER.git
cd STM32-SPIFLASH-UART-BOOTLOADERقم بتكوين جهاز تحميل التشغيل باستخدام IDE المفضل لديك (على سبيل المثال ، STM32Cubeide) أو عبر سطر الأوامر.
قم بإنشاء مشروع Bootloader وفلاشه على Microcontroller STM32.
قم بتوصيل جهاز STM32 بجهاز الكمبيوتر الخاص بك عبر USB أو UART.
قم بتشغيل البرنامج النصي Python المقدم لتحميل البرامج الثابتة الجديدة:
python firmware_loader.py --port /dev/ttyUSB0 --file firmware.binسيتعامل البرنامج النصي تلقائيًا مع إدارة النقل والتحقق من الصحة.
بعد تحميل البرامج الثابتة بنجاح ، سيقوم جهاز تحميل التشغيل بإجراء فحص CRC16 وإما التمهيد في البرامج الثابتة الجديدة أو العودة إلى الإصدار السابق إذا تم اكتشاف خطأ.
في حالة وجود مشكلة مع البرامج الثابتة التي تم تحميلها حديثًا ، يعود جهاز تحميل التشغيل تلقائيًا إلى البرامج الثابتة السابقة المخزنة في الفتحة الأخرى ، مما يضمن ظهور الجهاز.
للتحقق من إصدار البرنامج الثابت الحالي ، استخدم الأمر التالي:
python firmware_loader.py --port /dev/ttyUSB0 --versionتم ترخيص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف الترخيص للحصول على التفاصيل.
لا تتردد في المساهمة في هذا المشروع عن طريق تقديم طلبات السحب أو فتح المشكلات لأي أخطاء أو طلبات الميزات.
شكر خاص لمجتمع المصدر المفتوح لتوفير الأدوات والمكتبات التي ساعدت في تطوير محمل التمهيد هذا.