2022-09-14 02:51 PM
2022-09-14 03:35 PM
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
2022-09-14 03:35 PM
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
2022-09-15 06:39 AM
How do I run the hardware CRC?
2022-09-15 08:26 AM
Using the CRC_UserDefinedPolynomial example HAL_CRC_Calculate(&CrcHandle, (uint32_t *)&codePointer, 32700);
2022-09-15 08:28 AM
volatile unsigned int *codePointer = (volatile unsigned int *)0x08000000;
2022-09-15 08:31 AM
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);
2022-09-19 09:14 AM
Doesn't it expect a WORD count? It will hard fault beyond the decoded memory space.
Check the actual address it's faulting on.
2022-09-19 10:55 AM
That's what it was. I went beyond the address space. All good now.