รายละเอียด Arduino Bootloader
ใครช่วยอธิบายวิธีการที่bootloader ของ Arduinoทำงานได้หรือไม่? ฉันไม่ได้มองหาคำตอบระดับสูงที่นี่ฉันอ่านรหัสและได้รับส่วนสำคัญของมัน ฉันได้อ่านข้อความอื่น ๆ ของโพสต์นี้ด้วย(ฉันยังเป็นหนึ่งในผู้ตอบคำถามด้วย) มีการโต้ตอบโปรโตคอลจำนวนมากที่เกิดขึ้นระหว่าง Arduino IDE และรหัส bootloader ซึ่งส่งผลให้มีคำแนะนำในการประกอบแบบอินไลน์จำนวนมากซึ่งจะทำการตั้งโปรแกรมแฟลชเองด้วยโปรแกรมที่ส่งผ่านอินเตอร์เฟสแบบอนุกรม สิ่งที่ฉันไม่ชัดเจนในบรรทัด 270: void (*app_start)(void) = 0x0000; ... ซึ่งฉันจำได้ว่าเป็นการประกาศและการเริ่มต้นเป็น NULL ของตัวชี้ฟังก์ชั่น มีการเรียก app_start ในลำดับต่อไปในตำแหน่งที่ bootloader มีวัตถุประสงค์เพื่อมอบหมายให้เรียกใช้งานโค้ดที่ผู้ใช้โหลด แน่นอนว่าapp_startต้องมีค่าที่ไม่ใช่ค่า NULL ในบางจุดเพื่อให้ทุกคนมารวมกัน ฉันไม่เห็นว่าในรหัส bootloader ... มันเชื่อมโยงอย่างน่าอัศจรรย์โดยโปรแกรมที่โหลดโดย bootloader หรือไม่ ฉันสันนิษฐานว่า main ของ bootloader เป็นจุดเข้าสู่ซอฟต์แวร์หลังจากรีเซ็ตชิป ห่อใน 70 หรือมากกว่านั้นสายการประกอบจะต้องเป็นแหวนถอดรหัสลับที่บอกโปรแกรมหลักที่ app_start เป็นจริง? หรืออาจเป็นเพราะความรู้โดยนัยที่นำมาใช้โดย Arduino IDE? …