我使用的是STM32F7系列微控制器,當核心處於暫停狀態時,有一些GPIO改變值(切換,脈衝,高-z ...)調試器連接到JTAG接口。有誰知道這樣的功能?當目標暫停時,STM32切換PIN
回答
有DBGMCU
寄存器,它可以在內核停止時選擇性地停止某些外設(主要是定時器)。
這個想法是以某種方式讓計時器在運行時輸出一個低電平信號,而當它不運行時則爲高電平。單個定時器不能做到這一點,但在主從配置中有兩個定時器是可能的。
配置TIM3
輸出一個佔空比非常高的PWM信號,從低電平開始兩個週期,然後在65536週期的其餘時間內變爲高電平。將它設爲TIM2
,運行時間爲2個週期,並在計數器溢出時重置TIM3
。因此,只要TIM2
正在運行,TIM3
就被強制爲低電平,但當TIM2
停止時,它將輸出99.997%的高PWM信號。然後TIM2
被配置爲在內核被調試器暫停時停止,但TIM3
繼續運行。
RCC->AHBENR |= RCC_AHBENR_GPIOBEN; // enable peripheral clocks, that might be different on your board
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN;
// consult your datasheet for the right AF value
GPIOB->AFR[0] = (GPIOB->AFR[0] & ~GPIO_AFRL_AFRL0) | 2; // set PB0 to Alternate Function 2, TIM3
GPIOB->MODER = (GPIOB->MODER & ~GPIO_MODER_MODER0) | GPIO_MODER_MODER0_1; // set PB0 to Alternate Function
DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_TIM2_STOP; // stop TIM2 when core is stopped
DBGMCU->APB1FZ &= ~DBGMCU_APB1_FZ_DBG_TIM3_STOP; // but don't stop TIM3
TIM2->ARR = 1; // master timer period
TIM2->CR2 = TIM_CR2_MMS_1; // master mode selection MMS=010 Update event
TIM2->CR1 = TIM_CR1_CEN; // enable timer 2
TIM3->ARR = 65535; // PWM period
TIM3->CCR3 = 2; // channel 3 PWM duty cycle
TIM3->CCMR2 = TIM_CCMR2_OC3M; // set channel 3 to PWM mode 2
TIM3->CCER = TIM_CCER_CC3E // enable channel 3 compare output
/* | TIM_CCER_CC3P */; // it's possible to invert output polarity
TIM3->SMCR = TIM_SMCR_TS_0 // trigger selection TS=001 ITR1 = TIM2 is master
| TIM_SMCR_SMS_2; // slave mode SMS=100 reset mode
TIM3->CR1 = TIM_CR1_CEN; // enable timer 3
我沒有一個F7,它運行在我的STM32L151
板,恰好有一個PB0 LED,這是TIM3
通道3. LED是很好的照亮了,當我在打暫停按鈕調試器,低脈衝肉眼根本不明顯。應用一個外部的low pass RC filter,使它消失時,它會影響它連接到的任何組件。使用高級定時器TIM1
或TIM8
的Retriggerable單脈衝模式輸出乾淨的信號也許是可能的,但我對這些信號沒有任何經驗。
這個任務的兩個定時器(包括寶貴的32位tim2),這是矯枉過正。 –
它當然適用於任何可能的主從定時器對。 – berendi
但我不明白爲什麼?在多處理器環境中停止另一個微處理器jtag有特殊的機制 –
- 1. 暫停按鈕在切換播放/暫停時不工作
- 2. 在線程切換時暫停gdb
- 3. 當切換到另一個頁面時,暫停音樂在php
- 4. 切換按鈕暫停/取消暫停音頻監聽器
- 5. STM32在暫停調試器時凍結周邊設備
- 6. 暫時禁用jQuery切換
- 7. JavaScript的播放/暫停音頻切換
- 8. 切換鍵啓動和暫停程序
- 9. 切換播放/暫停不起作用
- 10. 切換播放/暫停按鈕
- 11. 創建播放/暫停切換開關
- 12. jQuery的播放/暫停切換滾動
- 13. 播放/暫停之間切換UIButtons
- 14. 當鼠標懸停時停止暫停 - 完全滑塊
- 15. 切換按鈕暫停/恢復當前活動
- 16. 當IntentService暫停
- 17. 當活動暫停時Runnable停止
- 18. 當鼠標懸停在鏈接選項上時切換圖片
- 19. 暫停調度隊列暫停其目標隊列嗎?
- 20. 定時器不會以開始/暫停切換按鈕開始
- 21. 如何防止切換選項卡時的HTML遊戲暫停
- 22. 暫停播放視頻時,切換到另一個DIV
- 23. 在懸停時暫停Twitter Bootstrap標籤
- 24. 暫停相機當用戶從應用程序切換掉,而當用戶切換回應用
- 25. 當場景暫停時,GameplayKit不會暫停
- 26. 當遊戲暫停時Phaser「暫停遊戲」文本
- 27. 切換狀態播放,暫停,停止在Android中
- 28. 暫停按鈕應停止切換圖像
- 29. 當點擊它時切換FloatingActionButton圖標
- 30. 當按下切換目標C時顯示等待消息
國際海事組織它不能做,因爲停止核心不應該改變國家的uC。也許一些探針有一個引腳來標示它 - 但我不知道。 –