こんにちは、みんな、
私は MPC5748G (Power Architecture e200) に取り組んでいますが、割り込みは生成されるものの、実行が ISR にジャンプしないという問題に直面しています。INTC ベクター テーブルを正しく設定する方法を説明していただければ幸いです。
私の startup_MPC5748G.s では、ベクター テーブルは次のように定義されています。
.セクション .intc_vector_table、「あ」
.align 2
.globl __isr_vector
__isr_vector:
.long DefaultISR /* ベクター 0 */
.long DefaultISR /* ベクター 1 */
.long DefaultISR /* ベクター 2 */
...
マップ ファイルから次のことがわかります。
.intc_vector_table
0x01002000 0xbcc
0x01002000 __VECTOR_TABLE = .
0x01002000 __interrupts_start__ = .
0x01002000 __isr_vector
SO、ベクター テーブルは明らかにフラッシュの 0x01002000 に配置されます。
ISR配置
ISR は正しくコンパイルおよびリンクされています。マップファイルから:
.text.Spi_Dspi_IsrTCF_SPI_0
0x010073a4 0x2c ./Spi/Spi_Dspi_Irq.o
0x010073a4 Spi_Dspi_IsrTCF_SPI_0
SO、ISR シンボルは存在し、フラッシュ内にあります。
INTC 構成
IACKR0 VTBAフィールドは実行時にプログラムされる
グローバル割り込みが有効(wrteei 1)
ただし、実行は Spi_Dspi_IsrTCF_SPI_0 にジャンプすることはありません。
環境
MCU: MPC5748G
割り込みコントローラ: INTC
ベクターテーブルの位置: Flash
Cで書かれたISR
ご指導のほどよろしくお願いいたします。
説明や参考例があれば大変助かります。
私は SPI0 を使用しており、スタートアップ ファイルも添付しています。
よろしくお願いいたします。
アクシャイ
こんにちは、
INTC モジュールの初期化も、割り込みの割り込み優先度設定も表示されません。
これがないと割り込みは実行されません。
いくつかの参考例やリファレンスマニュアルを参照してください。
https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC5-software-example-list/ta-p/1102445#MPC5748G
INTC の例:
https://community.nxp.com/docs/DOC-332504
https://community.nxp.com/docs/DOC-104751
よろしくお願いいたします。
ピーター