Intel HEXエンコーダー
アドレス256、種別0、16バイトのデータからは、チェックサム40まで計算済みのレコード:10010000214601360121470136007EFE09D2190140ができます。既存の行を貼り付ければ、書き込み前にバイト数とチェックサムをすべて確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 計算モード
- Encode
- アドレス
- 256
- レコードの種類
- 0
- データ
- 214601360121470136007EFE09D21901
- レコード数
- 1
Intel HEXは、書き込み可能なイメージを求めるときに、ほとんどのマイクロコントローラ向けツールチェーンがいまだに出力するテキスト形式です。各行はコロンで始まり、続けてバイト数、16ビットのアドレス、レコード種別、任意のデータバイト、そしてプログラマが誤データを焼く前に貼り付け誤りを検出する2の補数チェックサムが続きます。
アドレス・種別・チェックサム付きファームウェア記録を符号化する
mode を encode にするか、既定のままにします。address には0から65535までの整数として16ビットのロードオフセットを指定してください。古典的な Intel HEX のアドレス欄は2バイト幅だからです。
任意の空白・コロン・ハイフン・zero-x 接頭辞は除去され、整形後の桁数が奇数なら拒否され、255バイト超も長さ欄が1バイトのため拒否されます。
エンジンはコロン、バイト数、アドレス、種別、データ、先行する全バイトの2の補数チェックサムを組み立て、完全な行・数値および16進アドレス・種別名・データ16進・チェックサムを含む1オブジェクトの records 配列を返します。空の data 文字列はファイル終端や種別のみの実験に有効です。
行を読み解き、チェックサムを確かめる
mode を decode にし、それぞれコロンで始まる1行以上の Intel HEX を text に置きます。複数行の貼り付けは改行で分割され、空行は無視されます。
空でない各行について、パーサは本体が偶数長の16進であること、バイト数欄が存在するデータ桁数と一致すること、レコード種別が0から5であること、末尾チェックサムバイトがレコード内の先行全バイトの和の2の補数であること、を検査します。前払い経路ではこれらの失敗は課金されません。
本契約は完全なオブジェクトファイル用ツールチェーンを取り込むことなく小さな .hex 断片を監査でき、チケット貼り付けで反転したニブルを即座に失敗させ、誤ったフラッシュイメージを黙って生成しません。ベンダダンプの内容説明、手計算チェックサムとファイルの一致の証明、変換後も公開レコードと一致するアーティファクトの証明には decode を優先してください。
活用例
実験・授業でのチェックサム確認
学習者は Intel HEX 行を貼り付け、各チェックサムを検証し、ベンダツールチェーンを入れず、誤フラッシュのリスクなく種別名を読み取ります。
サポートダンプとチケット確認
サポート技術者はベンダの .hex 断片を復号し、ロードオフセットを確認し、ハードウェアへエスカレーションする前に貼り付け破損を検出します。
よくある質問
Intel HEXレコードを符号化するには?
応答の records[0].line が正しいチェックサム付きコロンレコードです。
Intel HEX行を復号・検証するには?
mode decode とし、':' で始まる1行以上を text に置きます。
どのレコード種別が使えますか?
2と4はデータ2バイト、3と5は4バイト、種別1は空でなければなりません。
Intel HEXのチェックサムはどう計算しますか?
行の中でチェックサムより前にあるすべてのバイト(バイト数、アドレス、種別、データ)を合計し、その2の補数を取ります。そのため、1桁写し間違えるだけで検証に失敗します。
貼り付けた行が受け付けられないのはなぜですか?
行はコロンで始まり、16進の桁数が偶数である必要があります。宣言したバイト数が実際のデータと一致し、種別が0から5で、最後のバイトが正しいチェックサムでなければなりません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/intel-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"encode","direction":"encode"}'const res = await fetch("https://api.kit.forhosting.com/enc/intel-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "encode",
"direction": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/intel-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "encode",
"direction": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/intel-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"encode","direction":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"encode","direction":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/intel-hex", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"mode": "encode",
"direction": "encode"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.intel_hex",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本Intel HEXエンコーダーは、アドレス・種別・16進ペイロードから正しいレコードを組み立てるか、既にお持ちの1行以上を解析し、宣言されたバイト数と長さを照合し、チェックサムが一致しない行を拒否します。
アドレス・種別・チェックサム付きファームウェア記録を符号化する
範囲外は invalid_input で失敗します。record_type は0から5を選びます。0は通常データ、1は空ペイロードのファイル終端、2と4はちょうど2データバイトを持つ拡張セグメント/拡張リニアアドレス、3と5はちょうど4データバイトを持つ開始セグメント/開始リニアアドレスです。ペイロードは data に16進数字で入れます。
行を復号し、各チェックサムを検証し、フィールドを読む
いずれかが失敗すると invalid_input を上げ、計算が食い違う場合は行番号と期待/実際のチェックサムを示すメッセージになります。成功時は mode decode、ファイル順の records 配列、record_count、true の all_checksums_ok を受け取ります。各レコードオブジェクトは encode 形を反映し、正規化大文字行、byte_count、address と address_hex、record_type と record_type_name、data の16進、checksum、checksum_ok を持ちます。
ワークフロー、料金、制限、および本ツールを使う場面
エンジンが拒否した後の検証エラーは残高を消費しません。本機能は拡張アドレスレコードを32ビットの平坦メモリマップへ展開せず、ハードウェアプログラマとも通信しません。完全なイメージ組み立てが必要なときは、ご自身のフラッシャやマップ構築器と組み合わせてください。原文は他の KIT parse 項目と同じ保持規則に従い、アルゴリズムが完全に決定論的なため結果の固定は安全です。srec_cat や objcopy、ベンダ IDE を入れずに、実験デモ・サポートチケット・単発のチェックサム確認にはブラウザ上の無料 Intel HEX エンコーダーを呼び出してください。バックエンド、エッジワーカー、SDK が残高のもとでレコードを符号化・検証する必要があるときは、成功1件あたり$0.002の前払い KIT API を使います。別の流れでは、拡張リニアアドレスレコードとファイル終端マーカを含む複数行断片を貼り付け、人がフィールド更新を承認する前に全チェックサムを確認します。対話利用にはペイロードを短く保ち(レコードデータは形式自体により255バイト上限)、数メガバイト級の本番イメージには専用のバイナリアップロードツールを使ってください。
連携の活用例
ファームウェアパッチとCIゴールデン
固定オフセットで短いデータレコードを符号化し、継続的インテグレーションに行を固定し、後で復号してアドレス・ペイロード・チェックサムが一致することを証明します。
技術的な質問
チェックサムが間違っているとどうなりますか?
復号は行番号と期待/実際のチェックサムを示す invalid_input で失敗します。正しいレコードは checksum_ok true と all_checksums_ok true を返します。
Intel HEXエンコーダーの料金は?
ブラウザツールは無料です。API要求は成功1回あたり$0.002の前払い KIT 残高を使い、無効入力は課金されません。