TI_06版Ziee协议栈学习:建立任务与系统初始化详解.pdfVIP

  • 1
  • 0
  • 约1.04万字
  • 约 10页
  • 2026-03-11 发布于北京
  • 举报

TI_06版Ziee协议栈学习:建立任务与系统初始化详解.pdf

TI_06版Zigbee协议栈学习_02

建立自己的任务:

参考无线龙的应用程序,可以很清楚地了解到整个流程。

首先找到main()函数,在ZMain目录下有ZMain.c文件,它调用了osal_init_system()函数(这个函

数是在OSAL.h中,在OSAL.c中实现的),osal_init_system()函数调用了osalAddTasks()函

数(这个函数是在OSAL_Custom.h中,在OSAL_Sample.c中实现的),而osalAddTasks()函数

又调用了osalTaskAdd()函数(这个函数是在OSAL_Task.h中,在OSAL_Task.c中实现的)。

值得注意的是在一个空的协议栈里osalAddTasks()只是在OSAL_Custom.h中,并未写出具体操

作,需要我们在接口处自行编写,osalTaskAdd()函数也是自己加进去的。这些函数主要完成系统的初

始化(包括任务的初始化)。

新建任务:

1.在OSAL.c中有初始化函数,osal_init_system(),红色部分为改动部分。

//此函数通过创建任务表(OSAL_Tasks.h)中定义的任务来初始化“任

__

务”系统。byteosalinitsystem(void){//初始化内存分配系统

___

osalmeminit();//初始化消息队列osalqHead=NULL;#if

____

defined(OSALTOTALMEM)osalmsgcnt=0;

#endif

//初始化定时器(初始化定时器)osalTimerInit();//初始化能量管

理系统(初始化能量字管理

TI_06版Zigbee协议栈学习_02

建立自己的任务:

参考无线龙的应用程序,可以很清楚的了解到整个流程。

首先找到main()函数,在ZMain目录下有ZMain.c文件,它调用了osal_init_system()函数(这个函

数是在OSAL.h中,在OSAL.c中实现的),osal_init_system()函数调用了osalAddTasks()函数

(这个函数是在OSAL_Custom.h中,在OSAL_Sample.c中实现的),而osalAddTasks()函数又

调用了osalTaskAdd()函数(这个函数是在OSAL_Task.h中,在OSAL_Task.c中实现的)。值

得注意的是在一个空的协议栈里osalAddTasks()只是在OSAL_Custom.h中申明,并未写出具体操作,

需要我们在自己在接口处编写,osalTaskAdd()函数也是自己加进去的。这些函数主要完成系统的初始化

(包括任务的初始化)。

新建任务:

1.在OSAL.c中有初始化函数,osal_init_system(),红色部分为改动部分。

//Thisfunctioninitializesthetasksystembycreatingthe

//tasksdefinedinthetasktable(OSAL_Tasks.h).

byteosal_init_system(void)

{

//InitializetheMemoryAllocationSystem(初始化内存分配系

统)

osal_mem_init();

//Initializethemessagequeue(初始化消息列表)

osal_qHead=NULL;

#ifdefined(OS

文档评论(0)

1亿VIP精品文档

相关文档