1

VxWorks 用の BSP を開発していますが、次の問題で行き詰まりました。

UART3 TX 割り込みが有効になり、IIR は PENDING THR 割り込みを示しますが、Cortex A-9 GIC はそれを認識しません。したがって、VxWorks IO バッファはいっぱいになりますが、UART FIFO は空のままです。

対応する割り込みを GIC で PENDING に手動で設定すると、割り込みが伝搬され、ISR が実行され、64 バイトが UART FIFO に送信され、RS232 に正しく出力されます。ISR が正しく設定され、機能していること、および GIC ディストリビューターで割り込みが有効になっていることを証明します。

OMAP4430 は、16550 互換の UART を備えています。ポーリング モードで正常に使用できるため、ボー レートの設定は問題ありません。

UART TX 割り込みがアサートされない理由として考えられるものは何ですか?


編集:私の問題の原因が見つかりました.割り込み番号が32ビットシフトされているようです:

OMAP4430 TRM には、UART3 には割り込みライン 74 があると記載されていますが、GIC の PENDING レジスターを見ると、割り込みがライン 106 で保留されていることがわかりました。106 は 74 + 32 の合計であることを念頭に置いて、割り込みライン 106 を UART3 割り込み番号として構成しようとしましたが、そこで動作することを確認しました。

シリアル ドライバは VxWorks の vxbNs16550 で、GIC ドライバも VxWorks のもので、割り込みラインは TI によって定義された UART から GIC への物理接続です。では、なぜ物理的な割り込みラインの番号付けにこの不一致があるのでしょうか?

4

0 に答える 0