ภายใต้การพัฒนาโปรดทราบ: เฟิร์มแวร์นี้อยู่ในขั้นตอนการพัฒนา คุณสมบัติอาจเปลี่ยนแปลงและรหัสอาจมีข้อบกพร่อง ใช้ด้วยความระมัดระวังและรายงานปัญหาใด ๆ ที่คุณพบ
bootloader นี้สำหรับไมโครคอนโทรลเลอร์ STM32 นี้เป็นโซลูชันที่แข็งแกร่งและมีคุณสมบัติสำหรับการอัปเดตเฟิร์มแวร์ bootloader ได้รับการออกแบบมาเพื่ออำนวยความสะดวกในการอัปเดตเฟิร์มแวร์ผ่านอินเทอร์เฟซ USB หรือ UART ภายในโดยใช้แฟลช SPI ภายนอกเพื่อจัดเก็บเฟิร์มแวร์ชั่วคราว

ที่เก็บเฟิร์มแวร์สล็อตคู่: bootloader จัดการสล็อตสองช่องใน SPI Flash ภายนอกเพื่อเก็บเฟิร์มแวร์เวอร์ชันที่แตกต่างกัน สิ่งนี้ช่วยให้การอัปเดตเฟิร์มแวร์ที่ปลอดภัยพร้อมความสามารถในการย้อนกลับ
การย้อนกลับของเฟิร์มแวร์: ในกรณีที่ความล้มเหลวของการอัปเดต bootloader สามารถเปลี่ยนกลับไปใช้เฟิร์มแวร์ที่ทำงานก่อนหน้านี้เพื่อให้แน่ใจว่าอุปกรณ์ยังคงทำงานอยู่
การตรวจสอบ CRC32: เฟิร์มแวร์แต่ละตัวที่เก็บไว้ใน SPI Flash ได้รับการตรวจสอบความถูกต้องโดยใช้การตรวจสอบ CRC32 เพื่อให้แน่ใจว่ามีความสมบูรณ์ของข้อมูลและป้องกันไม่ให้เฟิร์มแวร์เสียหายจากการถูกดำเนินการ
ที่เก็บข้อมูลที่เข้ารหัส: bootloader เก็บข้อมูลเฟิร์มแวร์ทั้งหมดที่เก็บไว้ใน SPI Flash ในรูปแบบที่เข้ารหัสเพิ่มความปลอดภัยจากการเข้าถึงที่ไม่ได้รับอนุญาต
การจัดการเวอร์ชัน: bootloader สามารถรายงานเวอร์ชันเฟิร์มแวร์ปัจจุบันช่วยในการบำรุงรักษาและติดตามเวอร์ชันเฟิร์มแวร์ที่ปรับใช้บนอุปกรณ์
สคริปต์ Python ภายนอก: มีสคริปต์ Python เพื่อช่วยในการโหลดเฟิร์มแวร์ใหม่ลงในอุปกรณ์ สคริปต์นี้ยังอำนวยความสะดวกในการรายงานเวอร์ชันและการดำเนินการอื่น ๆ ที่เกี่ยวข้องกับ bootloader
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กำหนดค่า bootloader โดยใช้ IDE ที่คุณต้องการ (เช่น STM32Cubeide) หรือผ่านบรรทัดคำสั่ง
สร้างโครงการ bootloader และแฟลชลงในไมโครคอนโทรลเลอร์ STM32 ของคุณ
เชื่อมต่ออุปกรณ์ STM32 ของคุณเข้ากับคอมพิวเตอร์ของคุณผ่าน USB หรือ UART
เรียกใช้สคริปต์ Python ที่ให้ไว้เพื่อโหลดเฟิร์มแวร์ใหม่:
python firmware_loader.py --port /dev/ttyUSB0 --file firmware.binสคริปต์จะจัดการการถ่ายโอนการตรวจสอบและการจัดการเวอร์ชันโดยอัตโนมัติ
หลังจากโหลดเฟิร์มแวร์เรียบร้อยแล้ว bootloader จะทำการตรวจสอบ CRC16 และบูทลงในเฟิร์มแวร์ใหม่หรือเปลี่ยนกลับไปใช้เวอร์ชันก่อนหน้าหากตรวจพบข้อผิดพลาด
ในกรณีที่มีปัญหาเกี่ยวกับเฟิร์มแวร์ที่โหลดใหม่ bootloader จะเปลี่ยนกลับไปยังเฟิร์มแวร์ก่อนหน้านี้โดยอัตโนมัติที่เก็บไว้ในสล็อตอื่นเพื่อให้แน่ใจว่าอุปกรณ์ยังคงทำงานอยู่
ในการตรวจสอบเวอร์ชันเฟิร์มแวร์ที่กำลังทำงานอยู่ในปัจจุบันให้ใช้คำสั่งต่อไปนี้:
python firmware_loader.py --port /dev/ttyUSB0 --versionโครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
อย่าลังเลที่จะมีส่วนร่วมในโครงการนี้โดยส่งคำขอดึงหรือเปิดปัญหาสำหรับข้อบกพร่องหรือคำขอคุณสมบัติใด ๆ
ขอขอบคุณเป็นพิเศษกับชุมชนโอเพนซอร์ซสำหรับการจัดหาเครื่องมือและห้องสมุดที่ช่วยในการพัฒนา bootloader นี้