https://blog.csdn.net/dj_jeck/article/details/96447853
FreeRTOS_Transplant_Blinks Readme
1. 该工程主要用于介绍FreeRTOS移植过程,并建立2个Led任务运行来演示移植成功
2. 移植过程中FreeRTOS移植到工程的过程在此滤过,详情百度一下。
3. 工程建立完成后将中断和时钟相关宏放置在FreeRTOSConfig.h文件中,这里是关键
4. /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standardnames. */
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler
修改main.h添加如下
#include "FreeRTOS.h"
#include "task.h"
添加Led硬件初始化
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( macLED1_GPIO_CLK|macLED2_GPIO_CLK, ENABLE);
GPIO_InitStructure.GPIO_Pin = macLED1_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(macLED1_GPIO_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = macLED2_GPIO_PIN;
GPIO_Init(macLED2_GPIO_PORT, &GPIO_InitStructure);
GPIO_SetBits(macLED1_GPIO_PORT, macLED1_GPIO_PIN);
GPIO_SetBits(macLED2_GPIO_PORT, macLED2_GPIO_PIN);
}
任务创建
static void AppTaskCreate (void)
{
xTaskCreate(vTaskLED0, //任务函数
"vTaskLED0", //任务名称
512, //堆栈大小
NULL, //任务参数
1, //任务优先级
&xHandleTaskLED0 ); //任务句柄
xTaskCreate(vTaskLED1,
"vTaskLED1",
512,
NULL,
1,
&xHandleTaskLED1 );
}
创建任务控制块,这里指的注意的Led的延时更换成vTaskDelay(500)该延时
void vTaskLED0(void *pvParameters)
{
while(1)
{
LED0( ON );
vTaskDelay(500);
LED0( OFF );
vTaskDelay(500);
}
}
void vTaskLED1(void *pvParameters)
{
while(1)
{
LED1( ON );
vTaskDelay(1000);
LED1( OFF );
vTaskDelay(1000);
}
}
函数声明和任务句柄声明
static void vTaskLED0(void *pvParameters);
static void vTaskLED1(void *pvParameters);
static void AppTaskCreate (void);
static TaskHandle_t xHandleTaskLED0 = NULL;
static TaskHandle_t xHandleTaskLED1 = NULL;
10.主函数
int main(void)
{
/*LED硬件初始化*/
LED_GPIO_Config();
/*任务创建*/
AppTaskCreate();
/*启动调度器*/
vTaskStartScheduler();
while (1);
}
11.编译下载既可以看到2个led亮,FreeRTOS移植成功了。
————————————————
版权声明:本文为CSDN博主「MingJing.Li」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dj_jeck/article/details/96447853