親愛なるフォーラム、
すべてのマルチコアの例(IMXRT1170 SDK)でclock_config.c同じクロックの多くを 2 回初期化します (CM7 で初期化し、CM4 コアで 2 回目)。pin_mux.cについても同じことが言える場合がありますドキュメントによると、CM7コアが最初に実行されますが、なぜCM4は同じジョブを再度実行する必要がありますか?
multicore/evkmimxrt1170_hello_world_cm4 clock_config.c の例:
/* Configure ADC1 using OSC_RC_48M_DIV2 */
rootCfg.mux = kCLOCK_ADC1_ClockRoot_MuxOscRc48MDiv2;
rootCfg.div = 1;
CLOCK_SetRootClock(kCLOCK_Root_Adc1, &rootCfg);次に、multicore/evkmimxrt1170_hello_world_cm7 clock_config.cから:
/* Configure ADC1 using OSC_RC_48M_DIV2 */
rootCfg.mux = kCLOCK_ADC1_ClockRoot_MuxOscRc48MDiv2;
rootCfg.div = 1;
CLOCK_SetRootClock(kCLOCK_Root_Adc1, &rootCfg);いくつかのケースでプリプロセッサのifdefが見られました。
しかし、さらに奇妙なことに、いくつかの例では、CM4はCM7の時計にも触れます。multicore/evkmimxrt1170_hello_world_cm4 clock_config.c から:
/* Module clock root configurations. */
/* Configure M7 using ARM_PLL_CLK */
rootCfg.mux = kCLOCK_M7_ClockRoot_MuxArmPllOut;
rootCfg.div = 1;
CLOCK_SetRootClock(kCLOCK_Root_M7, &rootCfg);1. CM4から同じクロック初期化を削除しても安全ですか、それとも何か他のことが起こっていますか?
2. なぜすべての例が同じクロックを2回初期化するためにこの規則を保持しているのですか?
3. CM4(後で実行される)がCM7クロックを変更すると、未定義の動作が発生する可能性がありますか?
4.自動生成されたclock_config.cを使用する場合の最善のアプローチは何ですかおよびpin_mux.cマルチコアシステム用のMCUXpresso Config Toolsから?
よろしくお願いします。
これについて何かコメントはありますか?