1. 程式人生 > >FreeRTOS 移植到WIN10

FreeRTOS 移植到WIN10

www tel 新建 google build 否則 param 連接 頭文件

背景

標題表述的不準確,大意是移植到WIN10的PC機,Intel I5。
最近因為項目接觸了FreeRTOS 實時操作系統,想對這個操作系統有一個更深入的了解,所以決定下載源碼看看,下面這個鏈接的隨書一起的源碼。

FreeRTOS 源碼下載鏈接:
http://freertos.org/Documentation/RTOS_book.html

技術分享圖片

打開源碼,看到它的portable/目錄針對的是 "MSVC-MingW",應該在PC機上編譯通過。

技術分享圖片

開發環境

嫌VS體積太大了,就用CodeBlocks吧。需要從 CodeBlocks 官網下載帶"mingw"的版本,例如: codeblocks-16.01mingw-setup.exe
下載頁面:
http://www.codeblocks.org/downloads/26
技術分享圖片

安裝、新建工程就不詳細寫了,復制FreeRTOS整個目錄到CodeBlocks工程目錄,添加如下文件到CodeBlocks 工程,我這裏只添加了一個demo到工程。
技術分享圖片

編譯、鏈接問題的解決

編譯可能提示找不到文件"FreeRTOS.h",別著急,應該是這個文件沒有添加到搜索路徑,打開"Project build options" 然後添加如下文件到 "Search Directories" 就可以了。

技術分享圖片

頭文件問題解決了,但是又出現了其他的問題,例如這個函數 timeGetDevCaps() 是無效的引用,Google 之後發現這個函數是 windows 平臺使用的,那麽
解決辦法是添加頭文件 "Windows.h". 後來發現不用加,因為是ld錯誤,不是編譯錯誤,所以只用把 winmm.dll 添加到鏈接選項就可以

技術分享圖片

但是再次編譯,ld錯誤,依然是這個函數,怎麽辦?根據剛才的 google ,這個函數它的庫文件和動態連接文件分別是"winmm.lib" 和 "winmm.dll",那麽在工程設置裏面添加這個文件,如下:

技術分享圖片

在編譯的時候,還可能遇到 port.c 中有一個宏 STACK_SIZE_PARAM_IS_A_RESERVATION未命名的情況,沒關系,直接刪除就可以了。

運行結果

經過上面的折騰,終於能夠運行了,結果如下:

技術分享圖片

聲明

歡迎轉載,請註明出處和作者,同時保留聲明。
作者:LinTeX9527
出處:https://home.cnblogs.com/u/LinTeX9527/
本博客的文章如無特殊說明,均為原創,轉載請註明出處。如未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

FreeRTOS 移植到WIN10