มีวิธีการส่งออกรหัสสำหรับ arduino แม้เป็นไฟล์เลขฐานสิบหกหรือไม่?
มีวิธีการส่งออกรหัสสำหรับ arduino แม้เป็นไฟล์เลขฐานสิบหกหรือไม่?
คำตอบ:
การดูซอร์สโค้ดของ bootloaders ของ Arduino ที่https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloadersดูเหมือนว่าพวกเขาสนับสนุนการทำงานของ stk500 readback สำหรับหน่วยความจำแฟลชเช่นคุณสามารถ บรรลุเป้าหมายของคุณด้วยโปรแกรมไคลเอนต์เช่น avrdude
ดังนั้นคำตอบของคำถามคือถ้าคุณสามารถเข้าถึง bootloader ได้แล้วคุณสามารถอ่านเนื้อหาของหน่วยความจำแฟลชในรูปแบบไบนารี่หรือฐานสิบหกโดยไม่ต้องหันไปใช้โปรแกรมเมอร์ภายนอก
หากคุณไม่สามารถเข้าถึง bootloader (รีเซ็ตปัญหาหรือไม่มี bootloader ไม่อยู่) จากนั้นคุณอาจจะทำกับโปรแกรมเมอร์ภายนอกการตั้งค่าฟิวส์ความปลอดภัยไม่ได้ป้องกันสิ่งนี้
avrdude
พฤติกรรมการตรวจสอบความถูกต้องเริ่มต้นขึ้นอยู่กับว่ามันทำงานได้ด้วยการอ่านบัฟเฟอร์กลับมาและทำการเปรียบเทียบบนพีซี ดังนั้นทุกคนที่เคยอัปโหลดรหัสไปยัง Arduino ที่ใช้ ATmega โดยการให้ IDE เรียกใช้avrdude
กับการกำหนดค่าเริ่มต้นก็มีการอ่านออกมาโดยปริยาย
ใช่ฉันประสบความสำเร็จในการดึงเคอร์เนลบูตจากบอร์ด Arduino หนึ่งผ่าน ISCP และผลักดันมันไปยังอีกบอร์ดหนึ่ง ฟิวส์ความปลอดภัยไม่ได้ตั้งค่า ที่ avrdude จะทำงาน ก่อนหน้านี้ฉันใช้ AVR Studio กับ STK500 เนื่องจากมี GUI และฉันไม่จำเป็นต้องเรียนรู้สวิตช์ avrdude ทั้งหมด ทั้งสองจะทำงาน
การตั้งค่าฟิวส์จะเอาชนะโอเพนซอร์ส ที่กล่าวว่า boot kernel มีให้ใน IDE .. \ Arduino \ hardware \ arduino \ bootloaders \ atmega8 \ ATmegaBOOT.hex พร้อมกับชิปอื่น ๆ