查看在 STM32F7 上初始化数据观察点和跟踪 (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 访问DWT->CYCCNT
以进行性能分析。