มีวิธีการส่งออกรหัสสำหรับ 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 พร้อมกับชิปอื่น ๆ