ホーム › フォーラム › Texas Instruments › プロセッサー › Sitara(AM335x、AM437x) › GPIO割込みについて
-
投稿者投稿
-
GPIO割込みについて
デバイス型番:AM3352AM3352について、GPIOを使用した割り込みについて教えてください。
GPIOをトリガーとする外部割込みは、タイマー割込み等の内部割込み処理中に多重に動作するのでしょうか?
それを多重にならないようにする設定はどうすればよいでしょうか?お問い合わせありがとうございます。
デバイスとしては、割り込みベクターにジャンプする前に、IRQ及びFIQがディスエーブルになりますので、ISR内のソフトウェアで、IRQ、FIQを有効にしない限り、割り込みが多重に動作することは御座いません。割り込みのフローについては、以下の資料の図が参考になるかと思います。
AM335x and AMIC110 Sitara™ Processors Technical Reference Manual
https://www.ti.com/lit/ug/spruh73p/spruh73p.pdf
(537page) Figure 6-2. IRQ/FIQ Processing Sequence以上、よろしくお願いいたします。
回答ありがとうございます。
マニュアル中の6章に記載されているのは、IRQ/FIQの内部割込みについてだと思います。確かにこれらの割込みが多重に動作することはないですが、質問はGPIOを使用した外部入力割込みと先の内部割込みが多重に動作してしまうという内容です。実際にAM3352にてテストピンを作成し、オシロスコープで内部割込みとしてタイマー割込みハンドラ、GPIOの入力ピンを割込み入力と設定し外部割込みハンドラを計測してみました。結果としてはタイマー割込みハンドラ動作中にGPIOの外部割込みハンドラが動作していました。GPIOの割込みプライオリティの方が高く設定されている為なのでしょうか?多重に割込みが動作するかどうかがプライオリティの設定で変わるのも変なので別で何か設定があるのかと思い質問した次第です。
ご返信有難うございます。
GPIOもタイマーもどちらの割り込みもIRQを介した割り込みとなります。
以下のマニュアルに、AM335xの割り込みの振る舞いについて記載されておりますのでご参考いただけますでしょうか。AM335x and AMIC110 Sitara™ Processors Technical Reference Manual
https://www.ti.com/lit/ug/spruh73p/spruh73p.pdf
(537page) Figure 6-2. IRQ/FIQ Processing Sequence
(541page) Figure 6-3. Nested IRQ/FIQ Processing Sequence一つの割り込みが発生した場合、ハードウェアは割り込みを禁止にします。(Figure 6-2)
ISRの中で、Softwareで割り込みを許可することで、割り込みのネストが可能となります。(Figure 6-3)おそらく御社のソフト側(OSなど)で、このネストの処理をされているため、
ご連絡いただいている動作になっていると推測いたしますので、
ソフトウェア側の設定をご確認いただけますでしょうか。以上、よろしくお願いいたします。
返信ありがとうございます。
文中、割込みのネストの許可/非許可するレジスタは具体的には何になるのでしょうか?
お問い合わせありがとうございます。
IRQのイネーブル/ディスエーブルが、割り込みの許可/非許可になります。
IRQのイネーブル/ディスエーブルは、ARMの CPSRレジスタのIビットで制御可能となります。
CPSRレジスタについては、以下のARMのドキュメントをご参照ください。Cortex™-A8 Revision: r3p2 Technical Reference Manual
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344k/DDI0344K_cortex_a8_r3p2_trm.pdf
2.14 The program status registers以上、よろしくお願いいたします。
-
投稿者投稿