Stlink: [recurso] Calcule somas de verificação para operações flash

Criado em 24 fev. 2020  ·  13Comentários  ·  Fonte: stlink-org/stlink

Olá,

Existe uma maneira de obter a soma de verificação de um binário? como a ferramenta st-link tem no windows? Eu quero comparar dois binários gerados no meu computador e um padrão.

codfeature-request componenst-flash generadocumention staturesolved

Todos 13 comentários

Você quer dizer uma soma de verificação da memória no dispositivo? E comparar isso a um arquivo no seu computador?

Eu estava pensando em um arquivo binário, no meu caso de uso estava tendo problemas com um binário compilado no meu computador e outro baixado, o código-fonte era o mesmo, mas os binários não correspondiam, eu estava usando uma cadeia de ferramentas mais recente, então o novo binário estava corrompido

na ferramenta st-link quando você carrega um binário, você calcula uma soma de verificação, então usei isso para descobrir quando tinha o conjunto de ferramentas correto

https://i.ibb.co/5TS7twF/figure.png

Ah ok. Essas ferramentas não fazem isso por você do jeito que estão. No Windows, posso recomendar o editor hexadecimal HxD para fazer a soma de verificação de um arquivo binário (ou simplesmente comparar dois arquivos binários rapidamente). Você está no Windows?

@vitormhenrique : Infelizmente não consigo ler o conteúdo da imagem que você vinculou, pois a resolução é muito baixa para isso. Você pode colar uma captura de tela maior ou um detalhe relevante dela?

não tenho ideia de por que essa imagem era tão pequena ...

https://i.ibb.co/mq8vvpP/pic.png

Entendo - na verdade, estamos procurando uma solicitação de recurso aqui.
O flashloader verifica a integridade do conteúdo atualizado nos bastidores, então presumo que essa funcionalidade possa ser estendida. Quer ser olhado com certeza.

Se nenhuma limitação de algoritmo especial for fornecida, acho que é muito fácil integrar alguns algoritmos de soma de verificação (md5, sha256, etc) no processo de carregamento de arquivo. Talvez eu possa tentar quando estiver livre.

O utilitário stlink (aquele na captura) define a soma de verificação em sua documentação (UM0892) como uma soma aritmética simples, truncada para 32 bits ... (suspiro)

Checksum de memória
Calcula o valor da soma de verificação de uma zona de memória especificada definida pelo
os campos de endereço e tamanho na seção Exibição da memória da janela principal.
A soma de verificação é calculada com base em um algoritmo de soma aritmética, byte por
byte. O resultado é truncado para uma palavra de 32 bits.
O valor da soma de verificação é exibido na janela de log

Embora isso seja bastante rudimentar e não seja realmente confiável, é barato de implementar e manter a "compatibilidade" com o utilitário st seria bom.

@grevaillot Obrigado por sua informação, adicionarei suporte para isso no meu PR.

Devemos ter alguma documentação para isso em nosso tutorial?

O algoritmo usado pelo programa Windows do ST pode precisar de uma documentação, pelo menos para desenvolvedores, eu acho.

Ok, você pode adicionar uma seção com algumas linhas ao nosso tutorial então (no final da parte revisada)? Isso seria legal. Não se preocupe muito com a formatação lá, pois ainda estou trabalhando neste documento ...

Ainda estou me perguntando se os dois métodos devem ser mesclados todos juntos.
Nesse caso, posso precisar ajustar as duas funções para um formato melhor. Os dois commits atuais causariam uma saída um tanto detalhada.

Esta página foi útil?
0 / 5 - 0 avaliações