2016-07-17 49 views
-1

我'嘗試整合FreeRTOS的我的應用程序上運行AT32UC3A0512。我下載了EVK1100(它支持AT32UC3A)一個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文件以查找定時器滴答使用哪個定時器。 CHECK你的中斷函數和port.c中斷函數的定義。

+0

感謝您的反饋,的確它是所謂但是同一個定時器,它是由'prvSetupTimerInterrupt'設置的定時器FreeRTOS的我們和我提到我沒有叫從FreeRTOS的任何功能,所以怎麼會這樣做的問題? – fedi

+0

如果我在調用'sprintf'和斷點定時器ISR之前放置while循環,定時器中斷工作 – fedi

相關問題