Skip to main content
Icecube
Associate II
September 14, 2022
Solved

Using the STM32H745I-DISCO and I want to Monitor Bank 1 CRC using the M4 processor. Is there a good reference or example I can use as a starting point?

  • September 14, 2022
  • 3 replies
  • 1861 views

..

This topic has been closed for replies.
Best answer by Tesla DeLorean

I just has to read the memory, materially similar code will run on either core, the FLASH is dual-ported. You can do the CRC in software or use the hardware one. Although that might not share well, the HW is typically not multi-threaded and there's a single instance.

STM32Cube_FW_H7_V1.10.0\Projects\STM32H745I-DISCO\Examples\CRC\CRC_UserDefinedPolynomial\CM7\Src\main.c

STM32Cube_FW_H7_V1.10.0\Projects\NUCLEO-H743ZI\Examples\CRC\CRC_Example\Src\main.c

3 replies

Tesla DeLorean
Tesla DeLoreanBest answer
Guru
September 14, 2022

I just has to read the memory, materially similar code will run on either core, the FLASH is dual-ported. You can do the CRC in software or use the hardware one. Although that might not share well, the HW is typically not multi-threaded and there's a single instance.

STM32Cube_FW_H7_V1.10.0\Projects\STM32H745I-DISCO\Examples\CRC\CRC_UserDefinedPolynomial\CM7\Src\main.c

STM32Cube_FW_H7_V1.10.0\Projects\NUCLEO-H743ZI\Examples\CRC\CRC_Example\Src\main.c

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
Icecube
IcecubeAuthor
Associate II
September 15, 2022

How do I run the hardware CRC?

Icecube
IcecubeAuthor
Associate II
September 15, 2022

Using the CRC_UserDefinedPolynomial example HAL_CRC_Calculate(&CrcHandle, (uint32_t *)&codePointer, 32700);

Icecube
IcecubeAuthor
Associate II
September 15, 2022

volatile unsigned int *codePointer = (volatile unsigned int *)0x08000000;

Icecube
IcecubeAuthor
Associate II
September 15, 2022

I get a hard fault if I supply a length over 0x7fff. uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);