2016-07-17 21 views
-1

私は、freeRTOSをAT32UC3A0512で動作するアプリケーションに統合しようとしています。私は(それがAT32UC3Aをサポートしています)EVK1100ためfreeRTOSプロジェクトの例をダウンロードして自分のアプリケーション階層がどのように見えるので、カーネルのソースファイルを含めるようにしてみてください。既存のプロジェクトにfreeRTOSを統合する

src 
|ASF 
|main.c 
|freertos 
    |freertos-7.0.0 
     |source 

今では

int main() 
{ 
    char str[5]; 
    uint8_t num; 

    enable_Timer(); 
    enable_Timer_Interrupt(); 
    sprintf (str, %03d, num); 

    while(1) 
    { 
      // Wait the timer interrupt to happen 
    } 
} 

のような主要なルックスちょうど私のプロジェクトからfreertosフォルダを除いて、タイマ割り込みが発射され、すべて正常に動作します。

私はfreertosフォルダを含める(含まれていないか、freertosソースへの呼び出しは行われません)。

それは狂気のようだが、私はsprintfの行動がこのように変化しているのか分からないとも私はsprintfとの関係と割り込みコントローラ

答えて

1

RTOSとアプリケーションの使用している可能性が表示されません同じタイマ割り込み。 RTOS port.cファイルをチェックして、タイマーティックに使用しているタイマーを見つけます。あなたの割り込み関数とport.c割り込み関数定義を調べてください。

+0

フィードバックをいただきありがとうございます。実際には同じタイマーが呼び出されていますが、freeRTOSタイマーを設定するには 'prvSetupTimerInterrupt'までです。私はfreeRTOSから関数を呼び出さなかったと言いました。 – fedi

+0

'sprintf'を呼び出す前にwhileループを置き、タイマーISRをブレークポイントにすると、タイマーは作業を中断します – fedi

関連する問題