ネームスペース cec


説明

コア・イベント管理

アプリケーション・プログラム用のコア・イベント管理名前空間。 Blackfinコアの各イベントに対応するイベント・ハンドラをこの名前空間 におく。通常は割込みに対応するイベント・ハンドラを置く。

cecの中のイベント・ハンドラ内部には処理の実体をおかず、各デバイスの サービス・ルーチンを呼ぶようにする。サービス・ルーチン内部は 呼び出されたら自分が担当する割り込みが発生しているかを調べ、 発生しているなら処理を行って真を返す。発生していないなら 偽を返す。 cec内部のイベント・ハンドラ内部では

 if ( デバイス1の割り込みサービス・ルーチン() ) 
     return; 
 if ( デバイス2の割り込みサービス・ルーチン() ) 
     return; 
 if ( デバイス3の割り込みサービス・ルーチン() ) 
     return; 
のようにハンドラを並べることで、同じイベント順位に複数のデバイスからの割り込みが 同居している場合も記述を簡潔に行える


関数

void spuriousIRQ (void)
 未定義割り込みの処理
void ivg14 (int sig)
 IVG14イベントの処理
void ivg13 (int sig)
 IVG13イベントの処理
void ivg12 (int sig)
 IVG12イベントの処理
void ivg11 (int sig)
 IVG11イベントの処理
void ivg10 (int sig)
 IVG10イベントの処理
void ivg9 (int sig)
 IVG9イベントの処理
void ivg8 (int sig)
 IVG8イベントの処理
void ivg7 (int sig)
 IVG7イベントの処理
void init (void)
 コア・イベント・ハンドラの登録
void start (void)
 処理の開始


関数

void cec::init ( void   ) 

コア・イベント・ハンドラの登録

cec内部のイベントハンドラをシステムに登録する

cec.cpp113 行で定義されています。

参照先 ivg10()ivg11()ivg12()ivg13()ivg14()ivg7()ivg8()ivg9().

参照元 main().

00114     {
00115             // 割込みの順位設定。必要に応じて各デバイスにIVG7..15を設定する。
00116             // コメント欄の[]内はデフォルト順位
00117             // ()内はDMAにデフォルトで割り当てられているデバイス
00118         *pSIC_IAR0 =  
00119                   P0_IVG(7)     //[7] PLL Wakeup
00120                 | P1_IVG(7)     //[7] DMA Error
00121                 | P2_IVG(7)     //[7] PPI Error
00122                 | P3_IVG(7)     //[7] SPORT0 Error
00123                 | P4_IVG(7)     //[7] SPORT1 Error
00124                 | P5_IVG(7)     //[7] SPI Error
00125                 | P6_IVG(7)     //[7] UART Error
00126                 | P7_IVG(8);    //[8] RTC
00127 
00128         *pSIC_IAR1 =  
00129                   P8_IVG(8)     //[8] DMA0 (PPI)
00130                 | P9_IVG(9)    //[9] DMA1 (SPORT0 RX)
00131                 | P10_IVG(9)   //[9] DMA2 (SPORT0 TX)
00132                 | P11_IVG(9)   //[9] DMA3 (SPORT1 RX)
00133                 | P12_IVG(9)   //[9] DMA4 (SPORT1 TX)
00134                 | P13_IVG(10)   //[10] DMA5 (SPI)
00135                 | P14_IVG(10)   //[10] DMA6 (UART RX)
00136                 | P15_IVG(10);  //[10] DMA7 (UART TX)
00137 
00138         *pSIC_IAR2 =  
00139                   P16_IVG(11)   //[11] TIMER0
00140                 | P17_IVG(11)   //[11] TIMER1
00141                 | P18_IVG(11)   //[11] TIMER2
00142                 | P19_IVG(12)   //[12] PF interrupt A
00143                 | P20_IVG(12)   //[12] PF interrupt B
00144                 | P21_IVG(13)   //[13] MDMA0
00145                 | P22_IVG(13)   //[13] MDMA1
00146                 | P23_IVG(13);  //[13] Watch dog
00147 
00148 
00149         interrupt( SIGIVG14, ivg14 );     // IVG14ハンドラの登録
00150         interrupt( SIGIVG13, ivg13 );     // IVG13ハンドラの登録
00151         interrupt( SIGIVG12, ivg12 );     // IVG12ハンドラの登録 
00152         interrupt( SIGIVG11, ivg11 );     // IVG11ハンドラの登録
00153         interrupt( SIGIVG10, ivg10 );     // IVG10ハンドラの登録 
00154         interrupt( SIGIVG9, ivg9 );     // IVG9ハンドラの登録
00155         interrupt( SIGIVG8, ivg8 );     // IVG8ハンドラの登録 
00156         interrupt( SIGIVG7, ivg7 );     // IVG7ハンドラの登録
00157     };

void cec::ivg10 ( int  sig  ) 

IVG10イベントの処理

BlackfinコアのIVG10イベントの処理を行う。イベントの処理方法については cecを参照。

cec.cpp74 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00075     {
00076         spuriousIRQ();           // 未定義割り込みの処理
00077     }

void cec::ivg11 ( int  sig  ) 

IVG11イベントの処理

BlackfinコアのIVG11イベントの処理を行う。イベントの処理方法については cecを参照。

cec.cpp65 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00066     {
00067         spuriousIRQ();           // 未定義割り込みの処理
00068     }

void cec::ivg12 ( int  sig  ) 

IVG12イベントの処理

BlackfinコアのIVG12イベントの処理を行う。イベントの処理方法については cecを参照。

cec.cpp56 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00057     {
00058         spuriousIRQ();           // 未定義割り込みの処理
00059     }

void cec::ivg13 ( int  sig  ) 

IVG13イベントの処理

BlackfinコアのIVG13イベントの処理を行う。イベントの処理方法については cecを参照。

cec.cpp47 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00048     {
00049         spuriousIRQ();           // 未定義割り込みの処理
00050     }

void cec::ivg14 ( int  sig  ) 

IVG14イベントの処理

BlackfinコアのIVG14イベントの処理を行う。通常、このイベントはソフトウェア・割り込みに割り当てる。イベントの処理方法については cecを参照。

cec.cpp38 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00039     {
00040         spuriousIRQ();           // 未定義割り込みの処理
00041     }

void cec::ivg7 ( int  sig  ) 

IVG7イベントの処理

BlackfinコアのIVG7イベントの処理を行う。イベントの処理方法については cecを参照。

cec.cpp105 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00106     {
00107         spuriousIRQ();           // 未定義割り込みの処理
00108     }

void cec::ivg8 ( int  sig  ) 

IVG8イベントの処理

BlackfinコアのIVG8イベントの処理を行う。イベントの処理方法については cecを参照。

cec.cpp96 行で定義されています。

参照先 spuriousIRQ().

参照元 init().

00097     {
00098         spuriousIRQ();           // 未定義割り込みの処理
00099     }

void cec::ivg9 ( int  sig  ) 

IVG9イベントの処理

BlackfinコアのIVG9イベントの処理を行う。このイベントには、 オーディオ・フレームワークの割り込みが割り当てられているので afw::ISR() を呼び出す。イベントの処理方法については cecを参照。

cec.cpp85 行で定義されています。

参照先 afw::ISR()spuriousIRQ().

参照元 init().

00086     {
00087         if ( afw::ISR() )       // オーディオ・フレームワーク割り込み
00088             return;             // 処理が行われたら即リターン
00089         spuriousIRQ();           // 未定義割り込みの処理
00090     }

void cec::spuriousIRQ ( void   ) 

未定義割り込みの処理

割り込みが発生したにもかかわらず規定の割り込み処理ルーチン で処理しなかった場合には、このルーチンで受け止める。

cec.cpp28 行で定義されています。

参照元 ivg10()ivg11()ivg12()ivg13()ivg14()ivg7()ivg8()ivg9().

00029     {
00030         while(1)
00031             ;
00032     }

void cec::start ( void   ) 

処理の開始

ダミー関数。何もしない。

cec.cpp160 行で定義されています。

参照元 main().

00161     {
00162     }


AudioFrameWorkに対してMon Apr 9 17:15:14 2007に生成されました。  doxygen 1.5.1-p1