1. 開發環境
首先介紹一下相關的開發環境。不太差勁的一台台式機或者筆記本電腦,使用Windows 7及以上操作系統,安裝有Keil 5;
然后是使用的開發板,這個選擇較多,我采用的是OM13092,也就是經典的LPC54608開發板。
最后則是需要下載相應的DFP,以及FreeRTOS的軟件包並安裝。下載的地址是:https://www.keil.com/dd2/Pack/
我當前下載的是10.4.6 :https://keilpack.azureedge.net/pack/ARM.CMSIS-FreeRTOS.10.4.6.pack
2. 環境配置
打開Keil新建1個項目,選擇好相關的芯片以后,重點配置RTE:
選中ROS以后直接使用下面的Resolve,可以幫你把需要的組件都選擇上,但是有個問題就是,如果需要配置LPC54608的時鍾,那就要把SDK Drivers中的clock選中,然后繼續使用一次Resolve,見下圖。
這樣框架就搭建起來了。
然后就是添加main函數等文件。測試文件:
#include "FreeRTOS.h" #include "task.h" #include "LPC54608.h" #include "MISC.h" #include "XDLED.h" #include "Console.h" void vTask1(void* pvParameters); void vTask2(void* pvParameters); int main() { BootClockPLL180M(); XDLED_Init(); Console_Init(); xTaskCreate(vTask1, "Task 1", 16, NULL, 1, NULL); xTaskCreate(vTask2, "Task 2", 16, NULL, 1, NULL); vTaskStartScheduler(); while (1){} return 0; } void vTask1(void* pvParameters) { while(1) { XDLED_Toggle(1); vTaskDelay(200/portTICK_RATE_MS); } } void vTask2(void* pvParameters) { portTickType xLastWakeTime; xLastWakeTime = xTaskGetTickCount(); while(1) { XDLED_Toggle(2); Console_WriteString("this is task2",13); vTaskDelayUntil(&xLastWakeTime, (500/portTICK_RATE_MS )); } } void vTask3(void* pvParameters) { while(1) { XDLED_Toggle(3); vTaskDelay(1000/portTICK_RATE_MS); } }