FreeRTOS入门(1)——环境搭建
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); } }