Codificador Intel HEX
O endereço 256, o tipo 0 e dezesseis bytes de dados formam o registro :10010000214601360121470136007EFE09D2190140, com o checksum 40 já calculado. Cole linhas existentes e cada contagem de bytes e cada checksum serão conferidos antes que uma imagem errada chegue ao chip. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Modo de cálculo
- Encode
- Endereço
- 256
- Tipo de registro
- 0
- Dados
- 214601360121470136007EFE09D21901
- Quantidade de registros
- 1
Intel HEX é o formato de texto que a maioria das toolchains de microcontroladores ainda emite quando se pede uma imagem gravável em flash: cada linha começa com dois pontos, depois um contagem de bytes, um endereço de dezesseis bits, um tipo de registro, bytes de dados opcionais e um checksum em complemento de dois que detecta erros de colagem antes que um programador grave dados incorretos. Este codificador Intel HEX monta um registro correto a partir do endereço, do tipo e da carga hex, ou analisa uma ou mais linhas que você já tenha, conferindo o comprimento em relação à contagem declarada e rejeitando qualquer linha cujo checksum não coincida.
Decodifique linhas, verifique cada checksum e leia os campos
Defina mode como decode e coloque uma ou mais linhas Intel HEX em text, cada uma começando com dois pontos. Colagens multilinha são divididas por quebras de linha; linhas em branco são ignoradas.
Para cada linha não vazia o analisador confere que o corpo é hex de comprimento par, que o campo de contagem de bytes corresponde ao número de dígitos de dados presentes, que o tipo de registro está entre zero e cinco, e que o byte final de checksum é o complemento de dois da soma de todos os bytes anteriores do registro.
Este contrato basta para auditar um trecho pequeno .hex sem importar uma toolchain completa de arquivos objeto, e é estrito o bastante para que um nibble invertido em um ticket falhe de imediato em vez de produzir uma imagem de flash silenciosamente errada. Prefira decode quando precisar explicar o que um dump do fornecedor contém, quando um estudante deva mostrar que um checksum calculado à mão coincide com o arquivo, ou quando um harness de testes deva provar que um artefato ainda corresponde ao registro publicado após uma transformação.
Fluxos de trabalho, preços, limites e quando usar esta ferramenta
Outro fluxo cola um trecho multilinha que inclui um registro de endereço linear estendido e um marcador de fim de arquivo, confirmando cada checksum antes que um humano aprove uma atualização de campo. Esta capacidade não expande registros de endereço estendido em um mapa plano de memória de trinta e dois bits e não fala com um programador de hardware; combine-a com o seu próprio flasher ou montador de mapas quando precisar da montagem completa da imagem.
O texto de origem segue as mesmas regras de retenção de outros itens parse do KIT, e os resultados são seguros para fixar porque o algoritmo é plenamente determinístico. Mantenha cargas curtas o bastante para uso interativo — os dados do registro estão limitados a duzentos e cinquenta e cinco bytes pelo próprio formato — e use ferramentas dedicadas de upload binário para imagens de produção de vários megabytes.
Casos de uso
Patch de firmware e goldens de CI
Codifique um registro de dados curto em um deslocamento fixo, fixe a linha na integração contínua e decodifique depois para provar que endereço, carga e checksum ainda coincidem.
Verificações de checksum em laboratório e sala de aula
Estudantes colam linhas Intel HEX, verificam cada checksum e leem os nomes de tipo sem instalar uma toolchain do fornecedor nem arriscar um flash incorreto.
Dumps de suporte e revisão de tickets
Engenheiros de suporte decodificam trechos .hex do fornecedor para confirmar deslocamentos de carga e captar corrupção na colagem antes de escalar para o hardware.
Perguntas frequentes
Como codifico um registro Intel HEX?
A resposta records[0].line é o registro completo com dois pontos e um checksum correto.
Como decodifico e verifico linhas Intel HEX?
Envie mode decode e coloque uma ou mais linhas começando com ':' em text.
Quais tipos de registro são suportados?
Tipos 2 e 4 precisam de 2 bytes de dados; 3 e 5 precisam de 4; o tipo 1 deve estar vazio.
Como é calculado o checksum do Intel HEX?
Ele é o complemento de dois da soma de todos os bytes que vêm antes dele na linha: contagem, endereço, tipo e dados. Por isso basta um único dígito copiado errado para a verificação falhar.
Quantos bytes de dados cabem em um registro?
Até 255 bytes, escritos como dígitos hexadecimais. Espaços, dois-pontos, hífens e prefixos 0x são removidos antes, e uma quantidade ímpar de dígitos depois dessa limpeza é recusada.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"mode": "encode",
"direction": "encode"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.intel_hex",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Codifique um registro de firmware com endereço, tipo e checksum
Defina mode como encode, ou deixe o valor padrão. Uma string data vazia é válida para fim de arquivo e para experimentos só de tipo. Informe o deslocamento de carga de dezesseis bits em address como um inteiro de zero a sessenta e cinco mil quinhentos e trinta e cinco; valores fora desse intervalo falham com invalid_input porque o campo de endereço clássico do Intel HEX tem apenas dois bytes de largura. Escolha record_type de zero a cinco: zero é dados ordinários, um é fim de arquivo com carga vazia, dois e quatro são registros de endereço de segmento estendido e linear estendido que carregam exatamente dois bytes de dados, e três e cinco são registros de endereço de início de segmento e de início linear que carregam exatamente quatro bytes de dados. Coloque a carga em data como dígitos hexadecimais; espaços opcionais, dois pontos, hífens e prefixos zero-x são removidos, uma contagem ímpar de dígitos após a limpeza é rejeitada, e mais de duzentos e cinquenta e cinco bytes é rejeitado porque o campo de comprimento é um único byte. O motor então monta dois pontos, contagem de bytes, endereço, tipo, dados e o checksum em complemento de dois de cada byte anterior, e devolve um array records com um objeto contendo a linha completa, o endereço numérico e hex, o nome do tipo, os dados hex e o checksum.
Decodifique linhas, verifique cada checksum e leia os campos
Qualquer falha lança invalid_input com uma mensagem que indica o número da linha e o checksum esperado versus o real quando a matemática discorda — essas falhas não são cobradas no caminho pré-pago. Em caso de sucesso você recebe mode decode, um array records na ordem do arquivo, record_count e all_checksums_ok definido como true. Cada objeto de registro espelha a forma de encode: a linha normalizada em maiúsculas, byte_count, address e address_hex, record_type e record_type_name, data hex, checksum e checksum_ok.
Fluxos de trabalho, preços, limites e quando usar esta ferramenta
Chame o codificador Intel HEX gratuito no navegador para demos de laboratório, tickets de suporte e verificações pontuais de checksum sem instalar srec_cat, objcopy ou um IDE do fornecedor. Use a API pré-paga do KIT quando um backend, um worker na borda ou um SDK precisar codificar ou verificar registros com saldo a US$ 0,002 por item bem-sucedido; erros de validação nunca consomem saldo após o motor rejeitar a solicitação.
Perguntas técnicas
O que acontece se o checksum estiver errado?
A decodificação falha com invalid_input indicando a linha e o checksum esperado versus o real. Registros corretos devolvem checksum_ok true e all_checksums_ok true.
Quanto custa o codificador Intel HEX?
A ferramenta do navegador é gratuita. Solicitações à API usam saldo pré-pago do KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.