แปลง HEX เป็น BIN
การแปลงไฟล์ข้อความ Intel HEX เป็นสตรีมไบต์ไบนารีดิบช่วยถอดตัวครอบการจัดรูปแบบ ASCII ออกเพื่อเตรียมโค้ดสำหรับการโปรแกรมหน่วยความจำแฟลชของไมโครคอนโทรลเลอร์โดยตรง
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
| ข้อกำหนด | HEX | BIN |
|---|---|---|
| ประเภท MIME | text/ | application/ |
| ประเภท | ระเบียนหน่วยความจำเลขฐานสิบหก | สตรีมไบต์ไบนารีดิบ |
| การบีบอัด | ไม่มี | ไม่มี |
| ข้อกำหนดมาตรฐาน | Intel HEX-32 Object Format | ข้อกำหนดสตรีมไบต์ไบนารีดิบ |
| ส่วนหัวที่ระบุลายเซ็นไฟล์ | :[0-9A-Fa-f]{8} (Intel HEX colon record format) | Raw arbitrary binary bytes |
ภาพรวมรูปแบบและการใช้งาน
ระเบียน Intel HEX มีที่อยู่ จำนวนไบต์ ประเภทระเบียน และ checksum การแปลงเป็นไบนารีดิบจะตัดกรอบระเบียนเหล่านี้ออกและคืนเฉพาะไบต์ข้อมูล ช่องว่างของที่อยู่และที่อยู่ฐานที่เลือกมีผลต่อการจัดวางอิมเมจเอาต์พุต หากโปรแกรมเมอร์ต้องใช้ที่อยู่หน่วยความจำอย่างชัดเจน ให้ใช้ Intel HEX
ข้อกำหนดทางเทคนิคและรายละเอียดตัวแปลงสัญญาณ
Intel HEX ใช้ MIME type text/plain โดยเข้ารหัสข้อมูลแต่ละไบต์และแอดเดรสหน่วยความจำเป็นอักขระ ASCII สองตัว พร้อมรหัสเริ่มต้น ตัวระบุความยาว และเช็คซัม ส่วนไบนารีดิบใช้ application/octet-stream เพื่อแทนลำดับไบต์ข้อมูลจริงที่ไม่มีการจัดรูปแบบ ทั้งสองรูปแบบไม่มีการบีบอัด จึงแปลงได้โดยไม่สูญเสียข้อมูล ไฟล์ Intel HEX ไม่มีไบต์ลายเซ็นเฉพาะ แต่จะเริ่มต้นด้วยเครื่องหมายโคลอน ASCII เสมอ ส่วนไฟล์ไบนารีดิบไม่มีส่วนหัวหรือส่วนท้ายลายเซ็น โดยเก็บเฉพาะไบต์ข้อมูลดิบสำหรับแผนผังหน่วยความจำเป้าหมาย อัลกอริทึมการแปลงจะอ่านทีละบรรทัด แยกคู่เลขฐานสิบหก ASCII ตรวจสอบเช็คซัมของระเบียน แล้วเขียนไบต์ไบนารีไปยังออฟเซ็ตหน่วยความจำที่ระบุโดยตรง
ความเข้ากันได้ของระบบปฏิบัติการและเบราว์เซอร์
ระบบปฏิบัติการอย่าง Windows, macOS และ Linux แปลงไฟล์นี้ได้ง่ายด้วยยูทิลิตีบรรทัดคำสั่ง เช่น objcopy หรือสคริปต์ที่เขียนขึ้นเอง เว็บเบราว์เซอร์สมัยใหม่แปลงไฟล์ในเครื่องด้วย JavaScript และ FileReader API ได้ ทำให้นักพัฒนาแปลงไฟล์โดยตรงในสภาพแวดล้อมการพัฒนาบนเว็บ ระบบปฏิบัติการมือถือไม่มีเครื่องมือแฟลชผ่านบรรทัดคำสั่งในตัว แต่เว็บแอปบน iOS และ Android ก็ประมวลผลการแปลงได้ หากจำเป็นสำหรับการอัปเดตอุปกรณ์ภาคสนามจากระยะไกล
เคล็ดลับการใช้งาน
ควรตรวจสอบแอดเดรสออฟเซ็ตหน่วยความจำในไฟล์ Intel HEX ของคุณเสมอก่อนที่จะแปลงเป็นไบนารีดิบ เนื่องจากส่วนหน่วยความจำที่กระจัดกระจายจะทิ้งช่องว่างของไบต์ที่เติมด้วยศูนย์ไว้ในเอาต์พุตไบนารีที่ได้ ซึ่งอาจทำให้ขนาดไฟล์พองขึ้น
คำถามที่พบบ่อย
คุณจะแปลง Intel HEX เป็นไบนารีดิบโดยไม่สูญเสียคุณภาพได้อย่างไร
ทั้งสองรูปแบบจัดเก็บคำสั่งเครื่องที่แน่นอนโดยไม่มีการบีบอัด ทำให้การแปลงนี้ไม่มีการสูญเสียข้อมูลอย่างเคร่งครัด การแปลเพียงแค่ถอดตัวครอบข้อความ ASCII และเช็คซัมออก โดยปล่อยให้โค้ดไบนารีเบื้องล่างสมบูรณ์ครบถ้วน
ความแตกต่างระหว่าง Intel HEX และไบนารีดิบคืออะไร
Intel HEX คือรูปแบบข้อความ ASCII ที่รวมเครื่องหมายแอดเดรส จำนวนไบต์ และรหัสตรวจสอบข้อผิดพลาดเพื่อความสามารถในการอ่านของมนุษย์และการส่งข้อมูลที่ปลอดภัย ไบนารีดิบคืออิมเมจหน่วยความจำที่มีเฉพาะไบต์เครื่องดิบที่พร้อมสำหรับการประมวลผลโดยตรงจากโปรเซสเซอร์