Bootloader ที่ปรับแต่งได้สำหรับไมโครคอนโทรลเลอร์ STM32 โครงการนี้รวมถึงการสาธิตสำหรับฮาร์ดแวร์ต่าง ๆ วิธีการดำเนินการตามโปรแกรมการใช้งานของเฟิร์มแวร์ที่อยู่บนการ์ด SD ภายนอกด้วยระบบไฟล์ FAT32
แต่ละตัวอย่างใช้ไลบรารี bootloader เดียวกันที่อยู่ในโฟลเดอร์ lib/stm32-bootloader ตัวอย่างอยู่ในโฟลเดอร์ projects และพวกเขามาพร้อมกับไฟล์ readme ที่แยกต่างหากโดยเฉพาะพร้อมคำอธิบายที่เกี่ยวข้องกับการใช้งานที่เฉพาะเจาะจงนั้น
อัปเดต: ตัวอย่าง STM32L496-Discovery รองรับการรวบรวมและสร้างโครงการด้วย GNU ARM Embedded Toolchain (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 (มาตรฐานอินเตอร์เฟสซอฟต์แวร์ Microcontroller CORCONTROLLER) รวมถึงไดรเวอร์ HAL (Hardware Abstraction Layer) จาก ST
รหัสต้นฉบับ bootloader และไฟล์ส่วนหัวที่สอดคล้องกันสามารถพบได้ในโฟลเดอร์ lib/stm32-bootloader นอกจากนี้โฟลเดอร์ lib ยังมีไลบรารี FATFS เช่นกัน
การสาธิตต่าง ๆ อยู่ในโฟลเดอร์ projects แต่ละตัวอย่างโครงการประกอบด้วยโฟลเดอร์ include และ source ซึ่งส่วนหัวและไฟล์ต้นฉบับอยู่ในตำแหน่งตามลำดับ คอมไพเลอร์และไฟล์เฉพาะ SDK อยู่ในโฟลเดอร์ย่อยที่เกี่ยวข้อง นอกจากนี้ทุกตัวอย่างโครงการมีไฟล์ readme เฉพาะที่อธิบายการทำงานในรายละเอียด
ที่เก็บนี้มีตัวอย่างต่อไปนี้
| ไมโครคอนโทรลเลอร์ | ฮาร์ดแวร์ | เส้นทางโครงการ |
|---|---|---|
| STM32L476VG | กำหนดเอง | โครงการ/STM32L476-Customhw |
| STM32L496VG | กำหนดเอง | โครงการ/STM32L496-Customhw |
| STM32L496AG | 32l496gdiscovery | โครงการ/STM32L496 การค้นพบ |
bootloader สามารถปรับแต่งและปรับให้เข้ากับฮาร์ดแวร์และสภาพแวดล้อมที่ต้องการได้อย่างง่ายดายเช่นในการดำเนินการอัปเดตเฟิร์มแวร์ผ่านอินเทอร์เฟซที่หลากหลายหรือแม้กระทั่งการปรับปรุงการอัพเดท Over-the-Air (OTA) หากฮาร์ดแวร์รวมโมดูลการสื่อสารไร้สาย เพื่อให้ประสบความสำเร็จในการเขียนโปรแกรมในการใช้งานลำดับต่อไปนี้จะต้องถูกเก็บไว้:
Bootloader_Init()Bootloader_Erase()Bootloader_FlashBegin()Bootloader_FlashNext() ซ้ำ ๆ ขั้นตอนการเขียนโปรแกรมต้องใช้ข้อมูล 8 ไบต์ (คำสองคำ) ที่จะตั้งโปรแกรมไว้ในแฟลชครั้งเดียว ฟังก์ชั่นนี้จะเพิ่มที่อยู่โดยอัตโนมัติเมื่อมีการเขียนข้อมูลBootloader_FlashEnd()ภาพแอปพลิเคชันจะต้องอยู่ในรูปแบบไบนารี หากเปิดใช้งานการตรวจสอบการตรวจสอบไบนารีจะต้องรวมค่าตรวจสอบที่ส่วนท้ายของภาพ เมื่อสร้างภาพแอปพลิเคชันจะต้องคำนวณการตรวจสอบทั่วทั้งภาพ (ยกเว้นพื้นที่ตรวจสอบ) ด้วยพารามิเตอร์ต่อไปนี้:
หมายเหตุสำคัญ :
system_stm32xxxx.c โดยค่าเริ่มต้น สิ่งนี้จะต้องปิดการใช้งาน (bootloader สามารถกำหนดค่าให้ทำการย้ายตารางเวกเตอร์ก่อนการกระโดด) หรือตั้งค่าการลงทะเบียนออฟเซ็ตตารางเวกเตอร์ด้วยตนเอง (VTOR) เป็นค่าชดเชยที่เหมาะสมซึ่งเป็นที่อยู่เริ่มต้นของพื้นที่แอปพลิเคชัน สำหรับข้อมูลเพิ่มเติมโปรดดู [1] bootloader สามารถกำหนดค่าได้อย่างกว้างขวางในไฟล์ bootloader.h ไฟล์มีความคิดเห็นโดยละเอียดและคำอธิบายที่เกี่ยวข้องกับพารามิเตอร์และคำจำกัดความที่กำหนดค่าได้
[1] PM0214, "STM32F3 Series, STM32F4 Series, STM32L4 Series และ STM32L4+ Series Cortex®-M4 คู่มือการเขียนโปรแกรม"