While i was digging through the source code of various other examples in FreeRTOS BSP provided by NXP , i found that 2 programs , low_power_imx7d and gpt.c driver file . Similarity between these two files is that , they both use GPT for providing delays . Eventhough blinking_imx_demo uses GPT , like i mentioned in another question , it hangs whenever linux boots .But these 2 programs produced binaries which worked even after linux boots . The only difference that has any connection with GPTs between the working and the not-working programs was the use of an additional timer ( GPTB ) in this case . Eventhough , there is absolutely no use for GPTB in the flow of low_power_imx7d demo , they have still assigned clocks for GPTB . The source code snippet is the one i found .
/* In this demo, we need GPT4 to work as a patch to fix GPC sync issue */
RDC_SetPdapAccess(RDC, BOARD_GPTB_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false);
/* Select GPTB clock derived from OSC24M */
CCM_UpdateRoot(CCM, BOARD_GPTB_CCM_ROOT, ccmRootmuxGptOsc24m, 0, 0);
/* Enable clock used by GPTB */
CCM_ControlGate(CCM, BOARD_GPTB_CCM_CCGR, ccmClockNeededAll);
What did they mean by
we need GPT4 to work as a patch to fix GPC sync issue
Is there any dependence issue between GPTA and GPTB ? Or is this part of some other issue ?