STM32 【FreeRTOS HAL库】创建任务

任务也不是很复杂的东西,简单得说,创建一个任务,你得提供它的执行函数,你得提供它的栈的大小,函数的执行空间,函数的优先级等重要的条件。因为任务在运行中,任务函数有调用关系,有局部变量,这些都保存在任务的栈里面;任务有可能被切换,有可能被暂停,这时候CPU寄存器中断现场数据都保存在栈里面。

 一、创建任务的相关函数

1、osThreadDef宏定义的理解

#define osThreadDef(name, thread, priority, instances, stacksz)  \
const osThreadDef_t os_thread_def_##name =  { #name, (thread), (priority), (instances), (stacksz)  }

所以

osThreadDef(Display, DisLCD_Task,osPriorityNormal, 0, 128);
//相当于
const   osThreadDef_t   os_thread_def_Display = { "Display", (DisLCD_Task), (osPriorityNormal), (0), (128)  }

因此

  • osThreadDef相当

你可能感兴趣的:(嵌入式专栏,c语言,单片机,stm32,嵌入式硬件)