zigbee协议栈的osal运行机理研究与测试

zigbee协议栈的osal运行机理研究与测试

ID:28030352

大小:17.62 KB

页数:4页

时间:2018-12-07

zigbee协议栈的osal运行机理研究与测试_第1页
zigbee协议栈的osal运行机理研究与测试_第2页
zigbee协议栈的osal运行机理研究与测试_第3页
zigbee协议栈的osal运行机理研究与测试_第4页
资源描述:

《zigbee协议栈的osal运行机理研究与测试》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了确保“教学点数字教育资源全覆盖”项目设备正常使用,我校做到安装、教师培训同步进行。设备安装到位后,中心校组织各学点管理人员统一到县教师进修学校进行培训,熟悉系统的使用和维护。ZigBee协议栈的OSAL运行机理研究与测试  摘要:文中研究分析了ZigBee协议栈的OSAL运行机理,并在此基础之上,通过规范的编程流程,设计了一个行之有效的测试系统,很好地演示了OSAL如何��现多任务切换和处理机制,对后期基于协议栈的编程提供了技术支持。  关键词:ZigBee协议栈;OSAL;任务事件;技术支持  中图分类号:TP39;TN92文献标识码:

2、A文章编号:2095--00-02  0引言  从ZigBeeXX协议栈开始,ZigBee协议栈内加入了实时操作系统,主要制定了一个实现任务间切换、同步与互斥等的机制,而这就是操作系统表象层OSAL为了充分发挥“教学点数字教育资源全覆盖”项目设备的作用,我们不仅把资源运用于课堂教学,还利用系统的特色栏目开展课外活动,对学生进行安全教育、健康教育、反邪教教育等丰富学生的课余文化生活。为了确保“教学点数字教育资源全覆盖”项目设备正常使用,我校做到安装、教师培训同步进行。设备安装到位后,中心校组织各学点管理人员统一到县教师进修学校进行培训,熟悉系统

3、的使用和维护。产生的根源。OSAL与标准的操作系统存在一定区别,它只实现了类似操作系统的某些功能,如任务切换、内存管理等,还不能称为真正意义上的操作系统[1]。OSAL专门分配了存放所有任务事件的tasksEvents[]数组,每一个单元对应存放着每一个任务的所有事件,在这个函数中首先通过一个do―while循环来遍历tasksEvents[],找到一个具有待处理事件的优先级最高的任务,序号低的任务优先级高,然后跳出循环,此时,就得到了最高优先级任务的序号idx,然后通过events=tasksEvents[idx]语句将当前具有最高优先级的

4、任务事件取出,接着调用函数来执行具体的处理。taskArr[]是一个函数指针数组,根据不同的idx可以执行不同的函数[2],其程序流程图如图1所示。  打开一个ZigBee工程文件,在左侧通常可以看到三个文件,分别为“”、“”、“OSAL_”。整个程序所实现的功能都包含在这三个文件中。首先打开文件,可以看到两个比较重要的函数GenericApp_Init和GenericApp_ProcessEvent。GenericApp_Init是任务的初始化函数,GenericApp_ProcessEvent则负责判断由参数传递的事件类型,然后执行相应的

5、事件处理函数[3]。我们的设计同样需要遵循该流程,既要进行任务初始化也需要完成开中断执行操作系统实体的功能。可以将该工作细化为初始化工作、事件的设置和响应、编写任务事件处理函数。本文设计了一个验证该运行机理的演示代码,展示了不同优先级的任务是如何按先后顺序被初始化及跳转到相应的任务事件处理函数来执行的效果。  1初始化工作为了充分发挥“教学点数字教育资源全覆盖”项目设备的作用,我们不仅把资源运用于课堂教学,还利用系统的特色栏目开展课外活动,对学生进行安全教育、健康教育、反邪教教育等丰富学生的课余文化生活。为了确保“教学点数字教育资源全覆盖”项

6、目设备正常使用,我校做到安装、教师培训同步进行。设备安装到位后,中心校组织各学点管理人员统一到县教师进修学校进行培训,熟悉系统的使用和维护。  在中首先应启动系统,即需要完成初始化功能,包括硬件平台和软件架构所需的各个模块,为操作系统的运行做好准备。由于大部分初始化工作协议栈已设置好,此处我们只需特别设置的初始化工作包括初始化工作时钟、初始化串口、初始化定时器、设置串口、使能中断等,同时用户自定义的事件也都需要放到任务初始化函数中进行初始化,此过程分为两步:  将所有任务对应的事件表清空,任务事件表保存在TaskEvents结构当中,该结构是

7、一个uint16类型的数组,数组的每一个元素对应一个任务所有的事件,16位对应了16个事件。其中最高位表示是否为系统事件,最高位为1,则表示为系统事件;最高位为0,则表示为非系统事件。  为每个任务分配任务ID并初始化具体任务,任务ID决定了任务的优先级,ID越小响应的优先级越高,在任务初始化函数中,最新初始化的任务ID最小,优先级最高,ID依次递增,最小ID为0,最大ID为TaskCont-1。其具体代码如下:  voidOS_IntTasks  {  uint8i,taskId=0;  for  {  TaskEvents[i]=0;  

8、}  testOsInt;//增加任务初始化,确定任务ID  }为了充分发挥“教学点数字教育资源全覆盖”项目设备的作用,我们不仅把资源运用于课堂教学,还利用系统的特

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。