Closed YazawaKenichi closed 1 year ago
でも多分だけど、Enabled
が無効になっているものは結局 NVIC
をパクらないと思うので、優先度の設定はチェックボックスがついたやつに対してやれば良いのでは?
システムに致命的な障害などが発生したときに使用される
参考:NMI(ノンマスカブル割り込み)って何? - EDN Japan
マイコンが正常に動作できない状態に陥った場合に発生する例外処理
Hard fault interrupt : ハードウェア的に正常動作できない Memory management fault : メモリ的に正常動作できない
なんか片っ端から調べようと思ったけど、結局チェックマークを外せないようになってるやつはめちゃくちゃ重要( Debug 以外 ) なのでチェックできる奴でチェックマークいじって遊ぶ
Nested vectored interrupt controller (NVIC)
The STM32F405xx and STM32F407xx embed a nested vectored interrupt controller able to manage 16 priority levels, and handle up to 82 maskable interrupt channels plus the 16 interrupt lines of the Cortex®-M4 with FPU core.
• Closely coupled NVIC gives low-latency interrupt processing
• Interrupt entry vector table address passed directly to the core
• Allows early processing of interrupts
• Processing of late arriving, higher-priority interrupts
• Support tail chaining
• Processor state automatically saved
• Interrupt entry restored on interrupt exit with no instruction overhead
This hardware block provides flexible interrupt management features
with minimum interrupt latency
NVIC を有効化してないタイマがいくつかあったから有効化して、優先順位をつけてみた
具体的には以下の通り
しかしいまいち変化がわかりにくかった(というか自分にはわからなかった)
音が小さくなるとか、そんなこともなかった
とりあえず閉じる
変更する内容
変更する場所
murakumo_v5.ioc > Pinout & Configuration > System Core > NVIC
具体的な実装コード
実装する際の注意点
表の見方
Preemption Priority
で 横取りの優先度 を選択Sub Priority
で 割り込みの優先度 を選択優先度の考え方
Preemption Priority
が一番小さいものが最優先Preemption Priority
が同じときはSub Priority
が小さいものが優先初期状態
参考になりそうなサイト