• 資料介紹
    • 前言
    • 調(diào)研
    • 啟用 DWT 進(jìn)行計(jì)數(shù)
    • 小結(jié)
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

LAT1209 Arm?v7-M架構(gòu)的STM32如何啟用DWT進(jìn)行計(jì)數(shù)

03/26 10:22
396
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

LAT1209 Arm?v7-M架構(gòu)的STM32如何啟用DWT進(jìn)行計(jì)數(shù)

331.72 KB

前言

客戶在使用 STM32H7 的時(shí)候,想要使用 DWT 計(jì)數(shù)來測量代碼執(zhí)行時(shí)間,評(píng)估執(zhí)行效率??蛻舭l(fā)現(xiàn)在重新上電或 reset 后,無法啟用 DWT 進(jìn)行計(jì)數(shù)。

調(diào)研

在 ARMv7-M 架構(gòu)中有個(gè) DEMCR 寄存器,這個(gè)寄存器可以控制 DWT 的使能。在power-on reset 后這個(gè)寄存器所有位的值都為 0。而當(dāng) bit[24]為 0 時(shí),DWT 和 ITM 模塊都是 disabled 的。所以為了啟用 DWT 模塊,必須將 DEMCR 的 bit[24]置為 1。

啟用 DWT 進(jìn)行計(jì)數(shù)

STM32H7 基于 Arm Cortex-M7 內(nèi)核,而 Cortex-M7 是 ARMv7-M 架構(gòu),所以 H7 在配置 DWT 模塊之前需要將 DEMCR 的 bit[24]置位。在基于 Cortex-M7 的芯片中,需要使用DWT-LAR 來解鎖 DWT(其他核可能不需要,應(yīng)具體分析),然后對 DWT_CTRL 進(jìn)行相應(yīng)使能即可。

小結(jié)

在使用 ARMv7-M 架構(gòu)的 STM32 時(shí),對 DWT 配置之前應(yīng)確保 DEMCR 中的 bit[24]已經(jīng)被配置(使能 DWT),然后才能使用 DWT。

資料預(yù)覽

相關(guān)推薦