Skip to main content
Explorer
March 11, 2024
Solved

STM32H743 Flash compute Crc

  • March 11, 2024
  • 2 replies
  • 1477 views

Hi people,

 

I'm trying to use the flash crc but is not working as expected. If I pass the end address with offset 3 or 7 the result of crc calc will be always the same, 0xba4bbbf0. What the problem here?

 

 

 

FLASH_CRCInitTypeDef flash_crc_init = {
 .TypeCRC = FLASH_CRC_ADDR,
 .BurstSize = FLASH_CRC_BURST_SIZE_4,
 .Bank = FLASH_BANK_2,
 .Sector = FLASH_SECTOR_0,
 .NbSectors = 1,
 .CRCStartAddr = FLASH_BANK2_BASE,
 .CRCEndAddr = FLASH_BANK2_BASE + 7
};

uint32_t flash_crc_result = 0;

if(HAL_FLASHEx_Unlock_Bank2() == HAL_OK)
{
 HAL_StatusTypeDef hal_status = HAL_FLASHEx_ComputeCRC(&flash_crc_init, flash_crc_result);
}

 

 

 

The address has this values:

 

fernandes_0-1710168296494.png

 

    This topic has been closed for replies.
    Best answer by TDK

     

    The data must be aligned to chunks of the 4x flash word size (or whatever you have selected as the burst size). In this case, it must be aligned to 128-bytes. The minimum size is therefore 128 bytes.

    TDK_0-1710170734049.png

     

    2 replies

    TDKAnswer
    Super User
    March 11, 2024

     

    The data must be aligned to chunks of the 4x flash word size (or whatever you have selected as the burst size). In this case, it must be aligned to 128-bytes. The minimum size is therefore 128 bytes.

    TDK_0-1710170734049.png

     

    fernandesAuthor
    Explorer
    March 11, 2024

    That's correct, this document said the same

    fernandes_0-1710173273214.png

     

    Technical Moderator
    March 11, 2024

    Hello,

    You forgot & before flash_crc_result in the HAL_FLASHEx_ComputeCRC() input parameter:

    HAL_StatusTypeDef hal_status = HAL_FLASHEx_ComputeCRC(&flash_crc_init, &flash_crc_result);

     

    fernandesAuthor
    Explorer
    March 11, 2024

    I'm sorry, on my local code is corretc