0

アルテラ DE2 FPGA を搭載した Nios 2 では、次の割り込みコードを調べています。

例外時:トラップか割り込みかチェック

exc_hand:
 rdctl et,estatus # read estatus
 andi et,et,1 # mask EPIE, bit 0
 beq et,r0,noint # om EPIE == 0: no interrupt
 rdctl et,ipending # read ipending
 beq et,r0,noint # if ipending == 0: no interrupt
int_check: # if we reach this then there aws an interrupt
 subi ea,ea,4 # adjust exception return address

最初の指示とマスクの機能は理解できますが、マスクが必要な理由がわかりません。ビット 0 以外のビットにジャンクが存在する可能性があるためでしょうか。私の知る限り、ビット0のみが使用されているのに、なぜそれをマスクする必要があるのですか?

4

1 に答える 1

1

NIOS II プロセッサ リファレンス ハンドブック プログラミング モデルの表 3-8 を参照してください。設定できるビットが多数あります。たとえば、NMI ビット、シャドウ レジスタ ビットなど...

投稿したコードは、ビット 0 (PIE ビット) の状態のみに関心があるため、他のビットをマスクします。

于 2013-07-24T08:34:54.713 に答える