ARMのソフトウエア駆動割り込みの覚え書きです。
ARMの割り込みはNVIC(統合ネスト型ベクタ割り込みコントローラ)で管理されていますがその中でSTIRというレジスタがあります
図で言うと赤の部分ですね
詳細はこちらになります
Write to the STIR to generate an interrupt from software
とあるように割り込みの番号を入れてやるとソフトウエアから割り込みを生成できるようです。
実際の使い方はこのような感じです。
STM32の場合IRQ番号はstm32f767xx.hに定義されています
ためしにピン割り込みハンドラにソフトウエアから移動してみます
図ではわからないですがスイッチを押さなくても割り込みハンドラに遷移しています。
もちろん割り込みも有効なのでスイッチを押すとそのタイミングでも割り込みがかかります。
なのでこの割り込みを使う際は使わないであろうペリフェラルを殺しておいて使うほうがいいでしょう