cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H743 Flash compute Crc

fernandes
Associate II

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

 

1 ACCEPTED SOLUTION

Accepted Solutions
TDK
Guru

 

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

 

If you feel a post has answered your question, please click "Accept as Solution".

View solution in original post

4 REPLIES 4
TDK
Guru

 

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

 

If you feel a post has answered your question, please click "Accept as Solution".
SofLit
ST Employee

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);

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

That's correct, this document said the same

fernandes_0-1710173273214.png

 

I'm sorry, on my local code is corretc