私はSTM32F7シリーズのマイクロコントローラを使用していますが、コアが停止するたびにGPIOの変更値(トグル、パルス、高zなど)を持たせると最も効果的ですデバッガはJTAGインタフェースに接続されています。誰もそのような機能を認識していますか?STM32ターゲットが停止したときにPINを切り替えます
答えて
DBGMCU
レジスタがあります。これらのレジスタは、コアが停止したときに特定の周辺機能(主にタイマー)を選択的に停止させることができます。
タイマー出力は、実行中は何らかの方法で低レベルの信号にし、そうでない場合は高レベルにします。 1つのタイマーではできませんが、2つのタイマーをマスタースレーブ設定で使用することは可能です。
TIM3
は、非常に高いデューティサイクルのPWM信号を出力するように設定し、2サイクルの間は低速で開始し、残りの65536サイクルの期間はハイになります。 2サイクルの周期で動作するTIM2
にスレーブし、カウンタオーバーフロー時にTIM3
をリセットします。したがって、は、TIM2
が実行されている限り、強制的に低い値に強制されますが、TIM2
が停止すると、99.997%の高いPWM信号を出力します。その後、TIM2
は、デバッガでコアが停止したときに停止するように設定されていますが、TIM3
は実行を継続します。私はF7を持っていない
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
、それは私が中に一時停止ボタンを押したときにLED 3. TIM3
チャネルがうまく点灯されるPB0上のLEDを持つようにたまたま私のSTM32L151
ボード、上で実行されますデバッガでは、低パルスは肉眼では目立ちません。外付けのlow pass RC filterを適用して、接続されているコンポーネントを気にすると消えます。アドバンストタイマーTIM1
またはTIM8
のリトリガブルワンパルスモードを使用してクリーンな信号を出力することは可能かもしれませんが、これらの経験はありません。
このタスクの2つのタイマー(貴重な32ビットtim2を含む)、それは過剰です。 –
もちろん、可能なマスタースレーブタイマーのペアで動作します。 – berendi
しかし、私は何のために理解していないのですか?マルチプロセッサ環境で別のマイクロプロセッサを停止するために、jtagに特別なメカニズムがあります。 –
- 1. アクティビティの切り替え時に「アプリケーションが停止しました」
- 2. ウィンドウ切り替え時にPygameオーディオが停止しますか?
- 3. Bxsliderビデオを切り替えるとビデオが一時停止する
- 4. オルタナティブに切り替える動きでゲームを一時停止する
- 5. プログラムを起動して一時停止するための切り替えキー
- 6. Androidで音声の開始/停止を切り替える
- 7. ビューを切り替えるときにAVAudioPlayerの停止メソッドが機能しないのはなぜですか?
- 8. タップしたときにUIButtonのタイトルを切り替えます
- 9. プリローダーが停止せず、メインページへの切り替えが発生しない
- 10. YouTube API - 再生/一時停止切り替えボタン
- 11. アニメーションが完了したときにビューを切り替える
- 12. クリックしたときにメニューがスペーシング(マージン)を切り替える
- 13. Log4jがサーバの切り替え後に動作を停止しました(Grals 2.5.1プロジェクト)
- 14. Android:2つのアクティビティを切り替えるエラー - 残念ながら "App Name"が停止しました
- 15. 再生/一時停止の切り替えが動作しない
- 16. Google App Engineのカスタムドメインに切り替えると、AppSpotドメインの動作が停止しますか?
- 17. UIBarbuttonItemで再生と一時停止を切り替える方法
- 18. Viewpager上のVideoView、ページ切り替え時にビデオを停止する
- 19. モバイルナビを切り替えたときのスクロールを防止する方法
- 20. デバッグタブへのEclipseの切り替えを停止してください
- 21. RxJSオブザーバブルの切り替え方法と一時停止方法は?
- 22. ルートを切り替えるときに角度をつけてポーリングを停止する方法
- 23. バックグラウンドビデオが停止したときに音声が停止する
- 24. Android:ボタンをクリックしたときにカメラを切り替える
- 25. ブートストラップスライドを手動でスライド0に切り替えた後でスライドが停止しない
- 26. クライアントが切断されたときにbottle.pyが停止する
- 27. Redshiftがオンとオフを切り替えます(ちらつき)
- 28. 再生の一時停止を切り替えるリストビューの中のImageView
- 29. ループ再生で再生/一時停止ボタンを切り替える
- 30. 親がクリックされたときに子を切り替えます
IMOコアを停止するとuCの状態が変わることはありません。おそらく、プローブによってはそれを伝えるピンがありますが、わかりません。 –