IDEの[異常]最適化レベル

実験STM32 DSPライブラリ今週、主要なテスト関連の機能が正常に使用できるかどうかをFFT。テストプロセスでは珍しい現象を発見

MCU:STM32F407(厳守原子:エクスプローラ開発ボード);異常なモジュール:TIM8、DMA2Stream0、ADC1。

現象:変化にTIM8一定の時間。

ADC変換、サンプリング周波数、すなわちタイマ時間、12800された後、DMA転送が完了すると、トリガADCのイベントTIM8オーバーフロー使用。

クロック整数製剤化することができる選択TIM8は、168MHz(168MとなるようSTM32F4はTIM2クロックソースPCLK1の42MHzバスクロック、クロック周波数TIM2 84MHz 84M / 12800 = 6562.5非整数タイマ168MHz周波数に設定され、他の汎用のため/ 12800 = 13125)、プリスケーラ75、自動的にリロード値175、異常TIM8が個別にテストしない場合、設計周波数が12800 [Hz]の周波数であり、プラスADC異常なし、しかし問題は、一緒にDMA後TIMパラメータを発生設計周波数が1/4 3200Hz即ち、DMAの最終的な位置決めは、例外なく有効になっているが、DMA割り込みは、ダウン開いた後に発生するリードバスの各値(SYSCLK、この場合HCLK、HCLK1になった場合の周波数を変化させます、HCLK2)は例外ではありませんが、それがダウンしています。

構成パラメータの分析は、正常に誤っ(-O0)変更(-O2)、コードの残りの部分は変更され、TIMタイミング周波数背面から最適化レベルを変更、変化しませんでした。

コンパイルプロセスを理解していないので、我々は、ファイルの保存最初のバイナリコードが異なっているものを最後に、異なる最適化レベルを分析していません。

おすすめ

転載: www.cnblogs.com/Biiigwang/p/11923942.html