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);
    }
}

 

posted @ 2022-03-22 16:08  castor_xu  阅读(989)  评论(0编辑  收藏  举报