Skip to main content
Visitor II
September 16, 2026
Question

Usage of CRC Peripheral Throughout TouchGFX Operation

Hi ST Community,

We are using the hardware CRC peripheral in our project for CRC computation.

During system initialization, we initialize and configure the CRC peripheral ourselves. However, we observed that after calling MX_TouchGFX_PreOSInit(), the CRC peripheral appears to be re-initialized.

We would like to understand how TouchGFX uses the CRC peripheral internally.

Specifically:

  1. Does TouchGFX use the hardware CRC peripheral only during the MX_TouchGFX_PreOSInit() phase?
  2. Is the CRC peripheral used by TouchGFX during frame rendering or while processing/displaying frames?
  3. Are there any other TouchGFX phases, functions, or background operations where the CRC peripheral may be accessed?
  4. If both TouchGFX and our application use the same hardware CRC peripheral, could sharing the peripheral cause any issues?

Our concern is that our application relies on a specific CRC configuration, and we want to ensure that TouchGFX does not modify or reconfigure the CRC peripheral after our initialization, or otherwise interfere with application-level CRC calculations.

Any information about the expected CRC peripheral usage, initialization sequence, and whether the CRC peripheral can safely be shared between TouchGFX and the application would be greatly appreciated.

 

Thanks

1 reply

Osman SOYKURT
ST Technical Moderator
September 17, 2026

Hello ​@meghzop 


Yes indeed, TouchGFX uses CRC peripheral, it is also why TouchGFX Generator forces CRC to be enabled as a hard dependency, when creating your project with CubeMX.

  1. Yes, the call to CRC_Lock happens in the PreOSInit, and only there.

  2. No, there’s no access to CRC during frame rendering or FB transfer

  3. No, there are no other calls.

  4. It should not cause any issue if you initialize/configure your CRC after MX_TouchGFX_PreOSInit(). So you could for instance get a sequence like :

    MX_CRC_Init();                // Needed by TouchGFX
    MX_TouchGFX_PreOSInit();
    MX_CRC_Init(); // Apply your config

     

ST Software Developer | TouchGFX