本文介紹了如何將FreeRTOS添加到通用的SEGGER Embedded Studio(ES)項(xiàng)目中,以及如何使用該工具創(chuàng)建一個(gè)簡(jiǎn)單的FreeRTOS應(yīng)用程序。
在開(kāi)始之前,請(qǐng)確保您已具備以下硬件和軟件環(huán)境:
1. SEGGEREmbedded Studio 5.42a或更高版本
2. 目標(biāo)評(píng)估板:SEGGER Cortex-M Trace參考板
3. J-Link V12或更高版本
4.J-Link 19-Pin Cortex-M Adapter
5. FreeRTOS V10.4.3或更高版本
1. 啟動(dòng)Embedded Studio。
2. (可選)通過(guò)Tools -> Package Manager 為您的設(shè)備安裝 CPU 支持包。
3. 通過(guò)File -> New Project -> Create the project in a new solution創(chuàng)建新項(xiàng)目
(1) 設(shè)置項(xiàng)目名稱(chēng)。如果沒(méi)有使用CPU 包,則選擇 “A C/C++ executable for a Cortex-M processor”。點(diǎn)擊 Next,選擇您的目標(biāo)設(shè)備,并繼續(xù)點(diǎn)擊 Next 直到項(xiàng)目創(chuàng)建完成。
(2) 如果您使用了CPU 支持包,請(qǐng)從相應(yīng)的包中選擇 “A C/C++ executable for...” 并按照上述步驟完成項(xiàng)目創(chuàng)建。
4. 將您的J-Link 連接到您的 PC 和目標(biāo)板上。
5. 使用F7 構(gòu)建并用 F5 執(zhí)行您新創(chuàng)建的項(xiàng)目。您應(yīng)該在終端看到一些 Hello World 的 printf 輸出。
6. 在Embedded Studio 的project explorer中和硬盤(pán)上的項(xiàng)目文件夾中創(chuàng)建一個(gè)新文件夾/lib/FreeRTOS/FreeRTOS-Kernel。
7. 下載并解壓FreeRTOS 軟件到任意位置。
8. 在解壓的文件夾中打開(kāi)/FreeRTOS 文件夾,將 /FreeRTOS/Source 文件夾復(fù)制到 ES 項(xiàng)目文件夾中的 /lib/FreeRTOS/FreeRTOS-Kernel。
9. 現(xiàn)在將相同的文件添加到Embedded Studio 的project explorer中。最簡(jiǎn)單的方法是將文件夾拖放到/lib/FreeRTOS/FreeRTOS-Kernel 文件夾上。
10. 右鍵點(diǎn)擊這個(gè)新文件夾并選擇Setup。勾選 “Recurse into Subdirectories” 并按 OK。
11. 這應(yīng)該會(huì)將所有FreeRTOS 源文件添加到您的設(shè)置中。但是并非所有文件都是必需的,所以需要再次刪除錯(cuò)誤的文件。首先通過(guò)右鍵點(diǎn)擊它并選擇 “Convert to regular folder” 來(lái)將文件夾轉(zhuǎn)換為常規(guī)文件夾。
12. 您需要/Source 文件夾中的所有 .c 源文件。/Source/include 中的所有包含文件以及文件夾 /Source/portable/GCC 和 /Source/portable/MemManage。
13. 其他所有文件夾和文件可以刪除。
14. 接下來(lái),確保在/Source/portable/MemManage 中只選擇了一個(gè) .c 文件,例如 heap_1.c。刪除所有其他 .c 文件,否則項(xiàng)目稍后將無(wú)法構(gòu)建。
15. 在/Source/portable/GCC 中,確保只包含了與您的目標(biāo)平臺(tái)架構(gòu)相對(duì)應(yīng)的文件夾。在我們的例子中,目標(biāo)是 Cortex-M4 設(shè)備,所以只有文件夾 /Source/portable/GCC/ARM_CM4F 保留。其他文件夾可以刪除。
16. 接下來(lái),您需要?jiǎng)?chuàng)建一個(gè)FreeRTOSConfig.h 文件來(lái)配置您的 FreeRTOS 設(shè)置。參考 FreeRTOS 文檔或者在許多示例中的配置頭文件。例如,可以使用上面示例項(xiàng)目中的配置頭文件。我們建議將此文件放置在您的 main.c 文件所在的源文件夾中。在本例,它是項(xiàng)目文件夾中的/source 文件夾。
17. 接下來(lái)需要設(shè)置所有包含路徑。您可以在項(xiàng)目選項(xiàng)下的Project -> Options -> Preprocessor -> User Include Directories 中添加這些路徑。如果您使用的是推薦的文件夾結(jié)構(gòu),則必須設(shè)置以下三個(gè)包含路徑。如果您使用的是其他項(xiàng)目結(jié)構(gòu),請(qǐng)相應(yīng)調(diào)整路徑。
(1) $(ProjectDir)/source
(2)$(ProjectDir)/lib/FreeRTOS/FreeRTOS-Kernel/Source/include
(3)$(ProjectDir)/lib/FreeRTOS/FreeRTOS-Kernel/Source/portable/GCC/ARM_CM4F
18. 現(xiàn)在編輯您的main.c 文件,包含 FreeRTOS.h 和 task.h,并將您的 FreeRTOS 應(yīng)用程序代碼添加到 main.c 中。您可以使用示例項(xiàng)目的主函數(shù)作為參考。
19. (可選)以類(lèi)似添加FreeRTOS 內(nèi)核源代碼的方式將您的第三方庫(kù)、HAL、驅(qū)動(dòng)程序等添加到項(xiàng)目中。
20. 完成以上步驟后,您的應(yīng)用程序應(yīng)該可以構(gòu)建了,并且您應(yīng)該能夠在Embedded Studio 中調(diào)試您的第一個(gè) FreeRTOS 應(yīng)用程序!
1. 確保所有包含路徑都設(shè)置正確。
2. 確保添加的源代碼與clang編譯器兼容。