Parâmetros Comuns do srec_cat para Manipulação de Arquivos

Esta documentação explica a utilização da ferramenta srec_cat para processar imagens de memória, demonstrando parâmetros essenciais para operações comuns.

Especificação do Tipo de Arquivo

Ao informar arquivos de entrada e saída, é necessário indicar seu formato. Exemplos frequentes incluem:

projeto.hex -intel
dado.bin -binary

Conversão de Formato

Utilize a ferramneta para converter entre formatos.

Conversão de HEX para BIN:

srec_cat.exe firmware.hex -intel -offset 0x08000000 -o firmware.bin -binary

Este comando lê firmware.hex a partir do endereço base 0x08000000 e gera o arquivo binário firmware.bin.

Conversão de BIN para HEX:

srec_cat.exe firmware.bin -binary -offset 0x08000000 -o firmware.hex -intel

<blockquote><p>Este comando lê <code>firmware.bin</code>, aplica o deslocamento de <code>0x08000000</code> e produz o arquivo <code>firmware.hex</code>.</p></blockquote>
<h3>Recorte de Região de Memória</h3>
<p>Para extrair um intervalo específico do arquivo, utilize o parâmetro <code>-crop</code>.</p>
<code>srec_cat.exe firmware.hex -intel -crop 0x08000000 0x08003FFF -o app.hex -intel</code>
<blockquote><p>Gera um novo arquivo <code>app.hex</code> contendo apenas os dados válidos do intervalo <code>0x08000000</code> a <code>0x08003FFF</code> do arquivo original. Se o código terminar antes, por exemplo em <code>0x08001FFF</code>, o arquivo resultante refletirá esse limite inferior.</p></blockquote>
<h3>Preenchimento de Dados</h3>
<h4>Com Strings</h4>
<p>Para inserir uma sequência de caracteres em uma região específica:</p>
<code>srec_cat.exe -generate 0x08000000 0x08000005 -repeat-string VER1.0 firmware.hex -intel -exclude 0x08000000 0x08000005 -o firmware_modificado.hex -intel</code>
<blockquote><p>Este comando preenche o intervalo <code>0x08000000-0x08000005</code> com a string repetida "VER1.0" e mescla com os dados de <code>firmware.hex</code> (excluindo o mesmo intervalo), gerando <code>firmware_modificado.hex</code>.</p></blockquote>
  • -generate: Define o intervalo e a fonte de dados.
  • -repeat-string: Especifica a string a ser inserida.
  • -exclude: Remove o intervalo especificado do arquivo de entrada antes da mesclagem.

Se a string for menor que o intervalo, ela será repetida. Por exemplo, alterando o limite final para 0x08000006, os endereços 0x08000005 e 0x08000006 conteriam 'V' e 'E', respectivamente.

Com Valores Numéricos

Para inserir valores numéricos em uma região, como um tamanho de arquivo:

srec_cat.exe -geenrate 0x00000008 0x0000000C -constant-l-e 0xA5B6C7D8 4 dado.bin -binary -exclude 0x00000008 0x0000000C -o dado_modificado.bin -binary

Preenche o intervalo 0x08-0x0C com o valor hexadecimal 0xA5B6C7D8 em formato little-endian de 4 bytes, mesclado com dado.bin (excluindo o intervalo) para criar dado_modificado.bin.

  • -constant-l-e: Especifica o valor numérico e seu tamanho em bytes.

Se o intervalo for maior que o tamanho do dado, o valor será repetido. Alterando o limite final para 0x0D, o endereço 0x0C conteria o byte 0xD8 (o menos significativo do valor, devido à ordenação little-endian).

Tags: srec_cat hex bin Conversão de Formato manipulação de memória

Publicado em 7-16 03:39