המרת BIN ל-HEX
המרת זרמי בייטים בינאריים גולמיים מסוג application/octet-stream לרשומות זיכרון מבוססות טקסט מסוג Intel HEX מאפשרת למתכנתי מיקרו-בקרים לצרוב קושחת חומרה באופן מדויק.
השוואת פורמטים ומפרטים טכניים
| מפרט | BIN | HEX |
|---|---|---|
| סוג MIME | application/ | text/ |
| סוג | זרם בתים בינארי גולמי | רשומת זיכרון הקסדצימלית |
| דחיסה | ללא | ללא |
| מפרט תקני | Raw Binary Byte Stream Specification | Intel HEX-32 Object Format |
| כותרת ביתים קסומים (Magic Bytes) | Raw arbitrary binary bytes | :[0-9A-Fa-f]{8} (Intel HEX colon record format) |
סקירת פורמטים ושימושים
מהנדסי מערכות משובצות ומפתחי חומרה ממירים לעיתים קרובות קובצי dump גולמיים של זיכרון לפורמט Intel HEX כדי לטעון תוכנה למיקרו-בקרים כמו שבבי PIC, AVR ו-8051. קובצי בינארי גולמי מאחסנים רק פקודות מכונה גולמיות, ללא מיפוי כתובות. מתכנתי מיקרו-בקרים אינם יכולים לקרוא dump בינארי גולמי בלי לדעת את כתובת יעד הזיכרון המדויקת. פורמט Intel HEX פותר את הבעיה באמצעות אריזת הנתונים הבינאריים בשורות טקסט ASCII קריאות. כל שורה מכילה שדות לכתובת הזיכרון, לאורך הנתונים, לסוג הרשומה ולסכום ביקורת (checksum) שנועד לזיהוי שגיאות בנתונים. כלי צריבה וכלי ניפוי שגיאות בחומרה מסתמכים על המבנה הזה כדי למקם בייטים במיקומי הזיכרון הנכונים בשבב.
מפרטים טכניים וסקירת מקודדים
קובצי בינארי גולמי (BIN) משתמשים בטיפוס ה-MIME application/octet-stream ומורכבים מזרם רציף של בייטים לא מעוצבים, ללא כותרות בתים קסומות (magic bytes), מטא-נתונים או מבנה מעטפת. קובצי Intel HEX משתמשים בטיפוס ה-MIME text/plain ומקודדים את אותם בייטים בינאריים לשורות טקסט ASCII הקסדצימליות. אף אחד מהפורמטים אינו משתמש בדחיסה פנימית, כלומר ההמרה ביניהם חסרת אובדן לחלוטין. כל בייט בקוד המכונה ממופה ישירות מהזרם הגולמי לזוגות תווים הקסדצימליים בתוך מבנה רשומות Intel HEX.
תאימות למערכות הפעלה ודפדפנים
קובצי Intel HEX פועלים בכל מערכת הפעלה מפני שהם מסמכי טקסט פשוטים. ניתן לפתוח ולערוך אותם בעורכי טקסט ב-Windows, ב-macOS וב-Linux. כלי פיתוח ייעודיים למערכות משובצות, כגון MPLAB, AVRDUDE ו-Keil uVision, קוראים קובצי Intel HEX ישירות כדי לתכנת מיקרו-בקרים. דפדפני אינטרנט מודרניים יכולים גם לעבד המרות טקסט אלה באופן מקומי באמצעות ממשקי JavaScript FileReader, ללא צורך בהעלאת קבצים לשרת. התמיכה משתנה גם לפי האפליקציה, המכשיר, מערכת ההפעלה והגרסה.
מידע שימושי
ודא תמיד את היסט כתובת הזיכרון ההתחלתי לפני המרת קובץ בינארי גולמי ל-Intel HEX. אם המיקרו-בקר היעד שלך מצפה שהקוד יתחיל בכתובת הזיכרון 0x0000, ודא שכלי ההמרה שלך מיישר את הנתונים כהלכה כדי למנוע כשלים באתחול.
שאלות נפוצות
כיצד ממירים בינארי גולמי ל-Intel HEX מבלי לאבד איכות?
לקובצי BIN בינאריים גולמיים יש סוג MIME מסוג application/octet-stream והם מכילים זרם רציף של בתים לא מעוצבים, ללא כותרת magic bytes, מטא-נתונים או מבנה container. לקובצי Intel HEX יש סוג MIME מסוג text/plain והם מקודדים את אותם בתים בינאריים כשורות טקסט ASCII הקסדצימליות. אף פורמט אינו משתמש בדחיסה פנימית, ולכן ההמרה ללא אובדן. כל בית ממופה ישירות לזוג תווים הקסדצימליים ברשומת Intel HEX.
מה ההבדל בין בינארי גולמי לבין Intel HEX?
בינארי גולמי הוא זרם קומפקטי ולא מפורמט של בייטים גולמיים ללא מידע כתובות. Intel HEX הוא פורמט מבוסס טקסט המארגן את אותם בייטים בשורות ASCII קריאות המכילות כתובות התחלה, ספירות בייטים וסיכומי ביקורת לאיתור שגיאות.