Habilitar Proteção contra Pirataria STM32 ST LINK Utility Leitura código fonte do micro controlador

Habilitar Proteção contra Pirataria STM32 ST LINK Utility Leitura código fonte do micro controlador

Habilitar Proteção contra Pirataria STM32 ST LINK Utility Leitura código fonte do micro controlador

Habilitar Proteção contra Pirataria STM32 ST LINK Utility Leitura código fonte do micro controlador

Clique aqui para Assistir o vídeo no site oficial do Youtube

Habilitar Proteção contra Pirataria STM32 ST LINK Utility Leitura código fonte do micro controlador.


A Read-Out Protection (ROP) no microcontrolador STM32 é uma medida de segurança usada para evitar que o conteúdo da memória flash do microcontrolador seja lido ou copiado durante a programação ou depuração. Existem diferentes níveis de proteção que podem ser configurados para garantir a segurança do código armazenado.

Aqui está um guia sobre como ler e configurar o Read-Out Protection nos microcontroladores STM32, especialmente usando ferramentas como STM32CubeIDE ou ST-Link.

Tipos de Read-Out Protection (ROP) no STM32

Existem três níveis principais de proteção contra leitura (ROP) no STM32:

  1. Nível 0 (Desabilitado): Não há proteção. A memória pode ser lida ou modificada livremente.

  2. Nível 1 (Ativado): A proteção impede a leitura do conteúdo da memória flash, mas a gravação ainda é possível.

  3. Nível 2 (Ativado - Full): A proteção impede tanto a leitura quanto a gravação da memória flash. Depois de ativado, não é possível desativar o ROP via software.

Configuração do Read-Out Protection (ROP) usando STM32CubeIDE

Passo 1: Criar ou Abrir o Projeto no STM32CubeIDE

  1. Abra o STM32CubeIDE e crie um novo projeto para o microcontrolador STM32 ou abra um projeto existente.

Passo 2: Acessar as Configurações de Proteção de Leitura

  1. No STM32CubeIDE, abra a ferramenta STM32CubeMX (integrada ao IDE).

  2. Vá para a aba "Project" e selecione "Configuration".

  3. Na janela de configuração, encontre a opção "Read-Out Protection" (ROP) no menu.

  4. Selecione o nível de proteção desejado:

    • None (Nível 0): Sem proteção.

    • Level 1 (Nível 1): Protege contra leitura.

    • Level 2 (Nível 2): Protege contra leitura e gravação.

Passo 3: Gerar o Código

  1. Depois de configurar o ROP, clique em "Project" > "Generate Code" para gerar o código com as configurações de proteção aplicadas.

Passo 4: Programar o Microcontrolador

  1. Conecte seu programador ST-Link ao microcontrolador STM32.

  2. Na aba "Run", clique em "Program" para carregar o código na memória do STM32.

Alterar o Read-Out Protection via ST-Link Utility

Você também pode usar a ferramenta ST-Link Utility para configurar o Read-Out Protection diretamente no microcontrolador.

Passo 1: Conectar o ST-Link

  1. Conecte o seu ST-Link à placa STM32.

  2. Abra o ST-Link Utility (disponível no site da STMicroelectronics).

Passo 2: Verificar o Status de Proteção

  1. Na ferramenta ST-Link Utility, clique em "Target" e depois em "Connect" para conectar ao microcontrolador.

  2. Se a conexão for bem-sucedida, você verá as informações do dispositivo.

  3. Vá para o menu "Option Bytes" para acessar as configurações de Read-Out Protection.

Passo 3: Configurar a Proteção

  1. Dentro da janela de Option Bytes, você encontrará a configuração de "Read-Out Protection".

  2. Selecione o nível de proteção desejado:

    • None (Nível 0): Desabilita o ROP.

    • Level 1: Ativa a proteção contra leitura.

    • Level 2: Ativa a proteção total (não pode ser desativada).

  3. Após a configuração, clique em "Apply" para aplicar as alterações.

Passo 4: Gravar as Configurações

  1. Para garantir que as configurações sejam salvas no dispositivo, clique em "Program" na ST-Link Utility para gravar as mudanças.

Desabilitar a Proteção (Nível 2)

  • Nível 2 de ROP é uma proteção permanente. Quando esse nível é ativado, a leitura da memória é completamente bloqueada, e, em muitos casos, não é possível desativar a proteção.

  • Se o Nível 2 de proteção for ativado, e você precisar desativá-lo, você terá que realizar um "Full Chip Erase" (apagamento completo) usando ferramentas como o ST-Link Utility ou o STM32CubeProgrammer.

Usando o STM32CubeProgrammer

O STM32CubeProgrammer também pode ser usado para configurar e verificar a proteção de leitura.

  1. Baixe e instale o STM32CubeProgrammer.

  2. Abra o STM32CubeProgrammer e conecte-se ao seu microcontrolador através do ST-Link.

  3. Vá para a opção de Option Bytes e ajuste o Read-Out Protection conforme necessário.

Exemplo de Código para ROP em STM32 (via HAL)

Caso deseje configurar o ROP programaticamente em seu código, você pode usar a função HAL. Aqui está um exemplo de como configurar o Read-Out Protection usando o HAL:

#include "main.h"    void set_readout_protection(uint8_t level) {      HAL_FLASH_Unlock();      __HAL_FLASH_OB_UNLOCK();            FLASH_OBProgramInitTypeDef OBInit;      HAL_FLASHEx_OBGetConfig(&OBInit);        if (level == 0) {          OBInit.OptionType = OPTIONBYTE_RDP;          OBInit.RDPLevel = OB_RDP_LEVEL_0; // Desabilitar proteção      } else if (level == 1) {          OBInit.OptionType = OPTIONBYTE_RDP;          OBInit.RDPLevel = OB_RDP_LEVEL_1; // Ativar ROP nível 1      } else if (level == 2) {          OBInit.OptionType = OPTIONBYTE_RDP;          OBInit.RDPLevel = OB_RDP_LEVEL_2; // Ativar ROP nível 2 (sem voltar atrás)      }        HAL_FLASHEx_OBProgram(&OBInit);      HAL_FLASH_OB_Launch(); // Aplicar mudanças      HAL_FLASH_Lock();  }  

Esse código configura a proteção de leitura programaticamente. Note que, ao configurar o Level 2, você perderá a capacidade de desativar a proteção.

Resumo:

  1. Nível 0 (Nenhum): Sem proteção, a memória pode ser lida e escrita.

  2. Nível 1: Protege contra leitura da memória, mas ainda permite gravação.

  3. Nível 2: Protege contra leitura e gravação. Não pode ser desativado sem apagar a memória.

Você pode configurar o ROP através do STM32CubeIDE, ST-Link Utility ou programaticamente no código.



Whatsapp Linoteck Eletrônica Industrial