2015-12-07 68 views
0

我在KEIL編譯器下有一個FreeRTOS代碼,一切正常。當我將相同的代碼轉換爲GCC下的CooCox時,port.c中只有asm代碼的更改等。它不起作用。它在功能xPortStartScheduler()其中prvPortStartFirstTask()Svc_Handler,並再次到xPortStartScheduler()等功能調試循環。我認爲這個問題可以在向量或啓動文件的某處。RTOS KEIL轉換爲GCC

在CooCox中,我找不到堆棧和堆棧初始化,而不是Keil sturtup。

有人有想法嗎?

+0

問題是通過重寫導入CooCox Sturtup的矢量表來解決的,其中「vPortSVCHandler」未定義。 –

回答

0

我是freeRTOS的新手,但您可以通過向項目添加CMSIS啓動組件來在CooCox中找到啓動文件。查看 - >存儲庫並添加CMSIS啓動組件以可視化cmsis_boot/startup目錄中的啓動文件。

+0

是的,我知道,但是當我使用原始的CooCox啓動文件時,代碼以Hard_Fault_Handler錯誤結束。因爲它使用KEIL的GRL重寫的彙編代碼。 –

0

問題是通過重寫導入的CooCox sturtup向量表來解決的,其中「vPortSVCHandler」未定義。 - Hw-dev Cz