Desbloquear Memoria Protegida contra leitura e gravação do Micro controlador STM 32 código fonte

Desbloquear Memoria Protegida contra leitura e gravação do Micro controlador STM 32 código fonte

Desbloquear Memoria Protegida contra leitura e gravação do Micro controlador STM 32 código fonte

Desbloquear Memoria Protegida contra leitura e gravação do Micro controlador STM 32 código fonte

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

Desbloquear Memoria Protegida contra leitura e gravação do Micro controlador STM 32 código fonte.


Desbloquear a memória de um microcontrolador STM32 que foi protegido contra leitura e gravação (usando Read-Out Protection (ROP) de nível 2) não é um processo simples. A proteção de leitura e gravação (Level 2) é uma medida de segurança para evitar o acesso não autorizado ao conteúdo da memória do microcontrolador. Quando você ativa o Nível 2 de Read-Out Protection (ROP), você impede que o conteúdo da memória flash seja lido, e além disso, a proteção impede que você modifique essa configuração (desative o ROP) sem apagar a memória.

Importante:

  • Read-Out Protection Level 2 (ROP 2): Quando a proteção de leitura e gravação é configurada para Level 2, o microcontrolador fica bloqueado para leitura e gravação da memória flash. O mais importante é que, ao configurar o Level 2, a proteção é irreversível: você não pode desativá-la sem apagar completamente a memória flash. O que isso significa é que, mesmo que você tente reverter para o Level 1 ou Level 0, a memória só pode ser desbloqueada por meio de um "Full Chip Erase", o que apagará todos os dados na flash.

Como Desbloquear o STM32 com ROP Level 2 (Full Chip Erase)

Para desbloquear a memória de um microcontrolador STM32 com Read-Out Protection de nível 2 ativado, o processo consiste em apagar toda a memória flash. Isso pode ser feito utilizando a ferramenta STM32CubeProgrammer ou ST-Link Utility, e pode ser feito da seguinte forma:

Desbloqueio utilizando o STM32CubeProgrammer

  1. Baixar e Instalar o STM32CubeProgrammer:

    • O STM32CubeProgrammer é uma ferramenta fornecida pela STMicroelectronics para programação e depuração de microcontroladores STM32.

    • Baixe o STM32CubeProgrammer no site oficial da STMicroelectronics: STM32CubeProgrammer.

    • Instale a ferramenta.

  2. Conectar o ST-Link:

    • Conecte seu ST-Link V2 ou ST-Link V3 à placa STM32.

    • Conecte a placa ao computador via USB.

  3. Abrir o STM32CubeProgrammer:

    • Inicie o STM32CubeProgrammer.

    • Selecione o ST-Link como o programador.

    • Clique em Connect para conectar ao microcontrolador.

  4. Verificar o Status do Read-Out Protection:

    • No STM32CubeProgrammer, clique em "Option Bytes".

    • Verifique o status do Read-Out Protection na tela. Se estiver em Level 2, a proteção estará ativada.

  5. Apagar a Memória Flash (Full Chip Erase):

    • Para desativar a proteção de leitura e gravação, você precisa apagar a memória flash do microcontrolador.

    • Na interface do STM32CubeProgrammer, clique em "Erase" e escolha "Full Chip Erase".

    • Isso apagará toda a memória flash, incluindo o código e os dados, mas também desbloqueará o ROP Level 2.

  6. Reconfigurar o Read-Out Protection:

    • Após o apagamento da memória, o Read-Out Protection estará desativado ou em Level 0.

    • Agora você pode reprogramar o microcontrolador com seu código sem a proteção de leitura e gravação.

  7. Programar o Microcontrolador:

    • Após apagar a memória, você pode carregar o novo firmware ou código no STM32 através do STM32CubeProgrammer ou STM32CubeIDE.

Desbloqueio utilizando ST-Link Utility

  1. Baixar e Instalar o ST-Link Utility:

    • O ST-Link Utility também é uma ferramenta da STMicroelectronics para programação e depuração. Ela pode ser usada para apagar a memória do microcontrolador.

    • Baixe o ST-Link Utility no site da ST: ST-Link Utility.

  2. Conectar o ST-Link à Placa STM32:

    • Conecte o ST-Link à sua placa STM32.

  3. Abrir o ST-Link Utility:

    • Abra o ST-Link Utility e clique em Target > Connect para conectar ao seu microcontrolador.

  4. Verificar o Status de Proteção:

    • Vá até Option Bytes para visualizar o status do Read-Out Protection. Se o ROP estiver em Level 2, a proteção está ativada.

  5. Apagar a Memória (Full Chip Erase):

    • No menu Target, selecione Erase Chip.

    • Isso apagará a memória flash e desbloqueará a proteção de leitura e gravação.

  6. Recarregar o Firmware:

    • Após o apagamento da memória, você pode gravar um novo código no microcontrolador usando o ST-Link Utility.

Código para Configurar o Read-Out Protection (ROP)

Se o Level 2 de proteção foi ativado acidentalmente ou de forma irreversível, não há uma maneira de "desbloquear" sem apagar a memória flash. Caso o ROP esteja no Level 1 ou Level 0, você pode configurá-lo programaticamente. Aqui está um exemplo de código para configurar o Read-Out Protection em nível 1 ou nível 0 programaticamente:

#include "main.h"    // Função para configurar o Read-Out Protection  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();  }  

Resumo:

  • Desbloquear a memória de um STM32 com ROP Level 2 ativado é impossível sem apagar a memória flash.

  • O único método para desbloquear a memória é realizar um Full Chip Erase, o que apagará todos os dados na flash.

  • O STM32CubeProgrammer ou ST-Link Utility podem ser usados para realizar o Full Chip Erase e, assim, desabilitar a proteção.

    Se precisar de mais detalhes ou assistência adicional, fique à vontade para perguntar!


Whatsapp Linoteck Eletrônica Industrial