STM32F7 で Data Watchpoint and Trace (DWT) を初期化するために必要なコードを見ると、次のようになります。
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
DWT->LAR = 0xC5ACCE55;
DWT->CYCCNT = 0;
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
特に、DWT レジスタへのアクセスをロック解除する次の行:
DWT->LAR = 0xC5ACCE55;
これは、トリガーを引く前に安全キャッチを切り替えることに似ています。危険な行動にアクセスするようなものです。
同時に、ドキュメントを調べても、DWT を使用することのマイナス面は見つかりませんでした。そう
ここで 0xC5ACCE55 の明示的なセットが必要なのはなぜですか (他のサブシステムとは異なります)。欠点はありますか?危険?または、この安全キャッチが本当に必要なものはありますか?
PS私はDWT->CYCCNT
パフォーマンスプロファイリングのためにアクセスするためにDWTを使用しています。