一、TRTOS的任务创建与注销方式
2014-08-01 15:10
204 查看
一、TRTOS的任务创建与注销方式
void Tos_TaskCreate(uint8 Id,Tos_Task vfFuncPointer,uint32 StackSize)
为了开发方面,减少入口参数的复杂性,TRTOS2.0直接把创建任务的入口参数精简到三个,
id既代表任务的优先级又是任务的唯一身份标志,可用来通过id发送接收消息,并且可以直接通过id直接管理任务,对任务进行删除暂停恢复和重建。
Tos_Task类型的任务入口地址vfFuncPointer,,的原型定义是typedef void (*Tos_Task)(void *) 无参无反回,StackSize为任务堆栈大小,系统会根据任务的新建顺序在全局变量(uint8 TaskStack[Tos_TaskTotal*Tos_TaskStackDefSize];)里依次往后开辟一块区域作为该任务的任务堆栈,在任务被删除后,该堆栈区域仍可以新建其他任务使用,但堆栈的大小不能再次更改,依然和第一次新建任务分配的堆栈大小相同。与Tos_TaskCreate相对应的是任务删除函数void Tos_TaskDelete(uint8_t Index) ,只有在任务删除的情况下才能在该任务使用的堆栈区域新建其他任务,且当执行Tos_TaskReCreate(uint8 Id,Tos_Task vfFuncPointer)任务重建函数的时候没有已经删除的其他任务时,任务将分配到默认大小的堆栈地址。
TRTOS任务的创建说明 如下
任务0
void TosTask0(void *Tags)
{
while(1)
{
LED_ON;
Tos_TaskDelay(100);
LED_OFF;
Tos_TaskDelay(100);
}
}
LED 灯以200个节拍闪烁一次
任务1
void TosTask1(void *Tags)
{
while(1)
{
SPK_ON;
Tos_TaskDelay(2);
SPK_OFF;
DeBug("TosTask0",Infor_Infor);
}
}
蜂鸣器以4个节拍响一次并且通过调试打印字符“TosTask0”
int main(void)
{
.......................
Tos_TaskCreate(0,TosTask0,3000);
Tos_TaskCreate(1,TosTask1,3000);
......................
}
void Tos_TaskCreate(uint8 Id,Tos_Task vfFuncPointer,uint32 StackSize)
为了开发方面,减少入口参数的复杂性,TRTOS2.0直接把创建任务的入口参数精简到三个,
id既代表任务的优先级又是任务的唯一身份标志,可用来通过id发送接收消息,并且可以直接通过id直接管理任务,对任务进行删除暂停恢复和重建。
Tos_Task类型的任务入口地址vfFuncPointer,,的原型定义是typedef void (*Tos_Task)(void *) 无参无反回,StackSize为任务堆栈大小,系统会根据任务的新建顺序在全局变量(uint8 TaskStack[Tos_TaskTotal*Tos_TaskStackDefSize];)里依次往后开辟一块区域作为该任务的任务堆栈,在任务被删除后,该堆栈区域仍可以新建其他任务使用,但堆栈的大小不能再次更改,依然和第一次新建任务分配的堆栈大小相同。与Tos_TaskCreate相对应的是任务删除函数void Tos_TaskDelete(uint8_t Index) ,只有在任务删除的情况下才能在该任务使用的堆栈区域新建其他任务,且当执行Tos_TaskReCreate(uint8 Id,Tos_Task vfFuncPointer)任务重建函数的时候没有已经删除的其他任务时,任务将分配到默认大小的堆栈地址。
TRTOS任务的创建说明 如下
任务0
void TosTask0(void *Tags)
{
while(1)
{
LED_ON;
Tos_TaskDelay(100);
LED_OFF;
Tos_TaskDelay(100);
}
}
LED 灯以200个节拍闪烁一次
任务1
void TosTask1(void *Tags)
{
while(1)
{
SPK_ON;
Tos_TaskDelay(2);
SPK_OFF;
DeBug("TosTask0",Infor_Infor);
}
}
蜂鸣器以4个节拍响一次并且通过调试打印字符“TosTask0”
int main(void)
{
.......................
Tos_TaskCreate(0,TosTask0,3000);
Tos_TaskCreate(1,TosTask1,3000);
......................
}
相关文章推荐
- cron job的方式定时备份Redis的数据文件,并将备份文件copy到安全的磁盘介质中。创建一个定期任务(cron job)
- 使用Spring(17)Spring中的定时调度(Scheduling)--传统方式创建Quartz任务
- WRTOS任务创建与注销方法
- 多线程编程-通过fork方式创建任务进程
- InnoSetup快速入门(四):创建桌面快捷方式并作为可选的附加任务
- Heritrix关于Create New Jobs的几种创建任务方式的讲解
- RTOS下不同任务传值的方式
- InstallShield 创建卸载快捷方式
- 创建快捷方式到[启动]
- 在C#中快速创建快捷方式到指定位置
- VC创建快捷方式
- VxWorks下消息、信号量的使用和任务创建
- [GDI+] 创建Images的两种方式
- 使用C#创建webservice及三种调用方式
- C#创建一个文件的快捷方式
- VC学习资料收集(23):创建快捷方式
- Oracle 9i创建数据库(图形界面方式)-数据库开发介绍
- 创建IE快捷方式
- 使用C#创建webservice及三种调用方式
- InstallShield Developer 8 使用手记之《创建卸载应用的快捷方式》