ネームスペース 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.cpp117 行で定義されています。

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

参照元 main().

00118     {
00119             // 割込みの順位設定。必要に応じて各デバイスにIVG7..15を設定する。
00120             // コメント欄の[]内はデフォルト順位
00121             // ()内はDMAにデフォルトで割り当てられているデバイス
00122         *pSIC_IAR0 =  
00123                   P0_IVG(7)     //[7] PLL Wakeup
00124                 | P1_IVG(7)     //[7] DMA Error
00125                 | P2_IVG(7)     //[7] Peripheral Error
00126                 | P3_IVG(8)     //[8] RTC
00127                 | P4_IVG(8)     //[8] DMA0 (PPI)
00128                 | P5_IVG(9)     //[9] DMA3 (SPORT0 RX)
00129                 | P6_IVG(9)     //[9] DMA4 (SPORT0 TX)
00130                 | P7_IVG(9);    //[9] DMA5 (SPORT1 RX)
00131 
00132         *pSIC_IAR1 =  
00133                   P8_IVG(9)     //[9] DMA6 (SPORT1 RTX)
00134                 | P9_IVG(8)     //[10] TWI. **** IVG8に割り当てなおしている ***
00135                 | P10_IVG(10)   //[10] DMA7 (SPI)
00136                 | P11_IVG(10)   //[10] DMA8 (UART0 RX)
00137                 | P12_IVG(10)   //[10] DMA9 (UART0 TX)
00138                 | P13_IVG(10)   //[10] DMA10 (UART1 RX)
00139                 | P14_IVG(10)   //[10] DMA11 (UART1 TX)
00140                 | P15_IVG(11);  //[11] CAN RX
00141 
00142         *pSIC_IAR2 =  
00143                   P16_IVG(11)   //[11] CAN TX
00144                 | P17_IVG(11)   //[11] DMA1 (MAC RX), PORTH IRQ A
00145                 | P18_IVG(11)   //[11] DMA2 (MAC TX), PORTH IRQ B
00146                 | P19_IVG(12)   //[12] TIMER0
00147                 | P20_IVG(12)   //[12] TIMER1
00148                 | P21_IVG(12)   //[12] TIMER2
00149                 | P22_IVG(12)   //[12] TIMER3
00150                 | P23_IVG(12);  //[12] TIMER4
00151 
00152         *pSIC_IAR3 =  
00153                   P24_IVG(12)   //[12] TIMER5
00154                 | P25_IVG(12)   //[12] TIMER6
00155                 | P26_IVG(12)   //[12] TIMER7
00156                 | P27_IVG(12)   //[12] PORTF IRQ A, PORTG IRQ A
00157                 | P28_IVG(12)   //[12] PORTG IRQ B
00158                 | P29_IVG(13)   //[13] MDMA 0
00159                 | P30_IVG(13)   //[13] MDMA 1
00160                 | P31_IVG(13);  //[13] Watchdog, PORTF IRQ B
00161 
00162         interrupt( SIGIVG14, ivg14 );     // IVG14ハンドラの登録
00163         interrupt( SIGIVG13, ivg13 );     // IVG13ハンドラの登録
00164         interrupt( SIGIVG12, ivg12 );     // IVG12ハンドラの登録 
00165         interrupt( SIGIVG11, ivg11 );     // IVG11ハンドラの登録
00166         interrupt( SIGIVG10, ivg10 );     // IVG10ハンドラの登録 
00167         interrupt( SIGIVG9, ivg9 );     // IVG9ハンドラの登録
00168         interrupt( SIGIVG8, ivg8 );     // IVG8ハンドラの登録 
00169         interrupt( SIGIVG7, ivg7 );     // IVG7ハンドラの登録
00170     };

void cec::ivg10 ( int  sig  ) 

IVG10イベントの処理

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

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

参照先 spuriousIRQ().

参照元 init().

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

void cec::ivg11 ( int  sig  ) 

IVG11イベントの処理

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

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

参照先 spuriousIRQ().

参照元 init().

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

void cec::ivg12 ( int  sig  ) 

IVG12イベントの処理

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

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

参照先 spuriousIRQ().

参照元 init().

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

void cec::ivg13 ( int  sig  ) 

IVG13イベントの処理

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

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

参照先 spuriousIRQ().

参照元 init().

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

void cec::ivg14 ( int  sig  ) 

IVG14イベントの処理

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

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

参照先 spuriousIRQ().

参照元 init().

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

void cec::ivg7 ( int  sig  ) 

IVG7イベントの処理

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

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

参照先 spuriousIRQ().

参照元 init().

00112     {
00113         spuriousIRQ();           // 未定義割り込みの処理
00114     }

void cec::ivg8 ( int  sig  ) 

IVG8イベントの処理

BlackfinコアのIVG8イベントの処理を行う。このイベントには、 初期化時にTWIの割り込みを割り当て直している。 twi::ISR() を呼び出す。イベントの処理方法については cecを参照。

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

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

参照元 init().

00101     {
00102         if ( twi::ISR() )                   // TWI割り込み
00103             return;                         // 処理が行われたら即リターン
00104         spuriousIRQ();           // 未定義割り込みの処理
00105     }

void cec::ivg9 ( int  sig  ) 

IVG9イベントの処理

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

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

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

参照元 init().

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

void cec::spuriousIRQ ( void   ) 

未定義割り込みの処理

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

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

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

00031     {
00032         while(1)
00033             ;
00034     }

void cec::start ( void   ) 

処理の開始

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

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

参照元 main().

00173     {
00174     }


AudioFrameWorkに対してMon Apr 9 16:33:24 2007に生成されました。  doxygen 1.5.1-p1