任务也不是很复杂的东西,简单得说,创建一个任务,你得提供它的执行函数,你得提供它的栈的大小,函数的执行空间,函数的优先级等重要的条件。因为任务在运行中,任务函数有调用关系,有局部变量,这些都保存在任务的栈里面;任务有可能被切换,有可能被暂停,这时候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相当于定义了一个 os_thread_def_Display常量,并且赋值。
- 宏定义中,##的作用就是把2个宏参数连接为1个数,或实现字符串的连接
- #的作用就是将#后面的宏参数进行字符串的操作,也就是将#后面的参数(Display)两边加上一对双引号使其成为字符串("Displa
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)