Skip to main content
Associate II
March 11, 2024
Solved

STM32H743 Flash compute Crc

  • March 11, 2024
  • 4 replies
  • 1525 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

 

4 replies

TDK
TDKBest answer
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

 

"If you feel a post has answered your question, please click ""Accept as Solution""."
fernandesAuthor
Associate II
March 11, 2024

That's correct, this document said the same

fernandes_0-1710173273214.png

 

mƎALLEm
ST 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);

 

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
fernandesAuthor
Associate II
March 11, 2024

I'm sorry, on my local code is corretc