محمل التمهيد قابل للتخصيص لـ STM32 Microcontrollers. يتضمن هذا المشروع عروضًا لمختلف الأجهزة كيفية تنفيذ عملية البرمجة داخل التطبيق للبرامج الثابتة الموجودة على بطاقة SD الخارجية مع نظام ملفات FAT32.
يستخدم كل مثال نفس مكتبة تحميل التمهيد الموجودة في مجلد lib/stm32-bootloader . توجد الأمثلة في مجلد projects وتأتي مع ملف ReadMe منفصل ومخصص مع وصف يتعلق بهذا التنفيذ المحدد.
تحديث: يدعم مثال STM32L496-Discovery تجميع وبناء المشروع باستخدام ARM ARM المدمج أدوات (ARM GCC) خارج الصندوق ، بالإضافة إلى IAR EWARM. تحقق من مشروع ReadMe لمزيد من المعلومات.
يرجى الرجوع إلى https://akospasztor.github.io/stm32-bootloader للحصول على توثيق كامل لرمز مصدر مكتبة Bootloader.
Repository
├── docs
├── drivers
│ ├── CMSIS
│ └── STM32L4xx_HAL_Driver
├── lib
│ ├── fatfs
│ └── stm32-bootloader
└── projects
├── STM32L476-CustomHw
├── STM32L496-CustomHw
└── STM32L496-Discovery
يحتوي مجلد docs على الوثائق التي تم إنشاؤها لرمز مصدر Bootloader والملفات الثابتة المتعلقة بالوثائق الأخرى.
يحتوي مجلد drivers على معيار واجهة برنامج CMSIs (Cortex MicronTroller) بالإضافة إلى برامج تشغيل HAL (طبقة تجريد الأجهزة) من ST.
يمكن العثور على رمز مصدر Bootloader وملف الرأس المقابل في مجلد lib/stm32-bootloader . بالإضافة إلى ذلك ، يحتوي مجلد lib على مكتبة FATFS أيضًا.
المظاهرات المختلفة الموجودة في مجلد projects . يحتوي كل مثال على مجلد include source حيث توجد ملفات الرأس والمصدر على التوالي. توجد ملفات التحويل البرمجية والملفات الخاصة بـ SDK في المجلدات الفرعية الخاصة بكل منها. علاوة على ذلك ، يحتوي كل مثال على ملف ReadMe مخصص يشرح وظائفه بالتفصيل.
يحتوي هذا المستودع على الأمثلة التالية.
| متحكم | الأجهزة | مسار المشروع |
|---|---|---|
| STM32L476VG | مخصص | المشاريع/STM32L476-CUSTOMHW |
| STM32L496VG | مخصص | المشاريع/STM32L496-CUSTOMHW |
| STM32L496AG | 32L496GDiscovery | المشاريع/STM32L496-اكتشاف |
يمكن تخصيص محمل التمهيد بسهولة وتصميمه مع الأجهزة والبيئة المطلوبة ، أي لإجراء تحديثات البرامج الثابتة عبر واجهات مختلفة أو حتى لتنفيذ تحديثات عبر الهواء (OTA) إذا كان الجهاز يتضمن وحدات الاتصال اللاسلكية. من أجل إجراء برنامج ناجح في التطبيق ، يجب الاحتفاظ بالتسلسل التالي:
Bootloader_Init() .Bootloader_Erase() .Bootloader_FlashBegin() .Bootloader_FlashNext() . يتطلب إجراء البرمجة 8 بايت من البيانات (كلمة مزدوجة) لبرمجة مرة واحدة في الفلاش. تزيد هذه الوظيفة تلقائيًا من العنوان الذي تتم كتابة البيانات.Bootloader_FlashEnd() .يجب أن تكون صورة التطبيق بتنسيق ثنائي. إذا تم تمكين التحقق من Checksum ، فيجب أن يتضمن الثنائي قيمة Checksum في نهاية الصورة. عند إنشاء صورة التطبيق ، يجب حساب checksum على الصورة بأكملها (باستثناء منطقة الاختبارات) مع المعلمات التالية:
ملاحظات مهمة :
system_stm32xxxx.c افتراضيًا. يجب تعطيل هذا (يمكن تكوين محمل التمهيد لإجراء نقل جدول المتجه قبل القفزة) أو تعيين سجل إزاحة جدول المتجه يدويًا (VTOR) على قيمة الإزاحة المناسبة وهو عنوان بدء مساحة التطبيق. لمزيد من المعلومات ، يرجى الرجوع إلى [1]. يمكن تكوين جهاز تحميل التشغيل على نطاق واسع في ملف bootloader.h . يتضمن الملف تعليقات وأوصاف مفصلة تتعلق بالمعلمات والتعاريف القابلة للتكوين.
[1] PM0214 ، "STM32F3 Series ، STM32F4 Series ، STM32L4 Series و STM32L4+ Series Cortex®-M4 دليل البرمجة" ، http://www.st.com/resource/en/programming_manual/dm00046982.pdf