TinyOS课后习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1、下列关于TinyOS描述错误的是(C)
A.TinyOS起源于吉利福尼亚大学伯克利分校的研究项目
B.WSN操作系统是无线传感器网络的关键支撑技术之一
C.TinyOS是使用C语言编写
D.最新的TinyOS版本支持IPv6协议
2、下列不属于TinyOS编程特点的是(A)
A.结构式编程
B.组件式编程
C.事件驱动编程
D.平台化编程
3、使用mytinyOS平台编译并下载程序的命令是(make cc2530 install)
4、简述TinyOS的优缺点。
(1)、优点:TinyOS有成千上万的用户,现有的体系结构已有5年以上的历史,代码可靠、有效,错误极少,这对项目工程来说至关重要;支持低功耗和并发执行模式,因此特别适合于无线传感器节点;支持技术上优异的网络协议,如汇聚协议CTP和6LoWPAN协议等。
(2)、缺点:它的组件式编程模型对于新手来说需要一段时间来适应;对于计算机密集型程序需要程序员将程序分成若干小部分,逐个执行,即需要使用TinyOS的“分阶段作业”机制,此类程序比较难写。
第二章
1、对于C程序员来说,nesC提出了三个“新概念”: 组件、接口和__并发执行模型____。
2、nesC程序的入口函数是_booted事件函数。
3、关于nesC程序文件组成叙述正确的是____D_____。
A只能是nc文件 B不可以包含C语言头文件
C可以不使用Makefile文件 D.程序中的nc文件可分为组件文件和接口文件
4、下列关于nesC语言叙述错误的是_C 。
A.接口是一个被声明的有意义函数的集合
B.参数化接口实质上是接口数组
C.通用接口是指有数据类型的接口,其意义在于可以使接口多次实例化
D.通用组件多次声明后,它将在程序内存在多份代码或组件关系组织
5、nesC程序文件组成:
C语言头文件:TinyOS程序的运行需要少量的C谙言头文件.它们被组件文件包含从而参与程序的编译。这些头文件主要包括结构体、数据定义以及宏定义等。
接口文件::当系统提供的接口不能满足要求时.用户可自定义接口类型。组件文件:包括程序中的逻辑算法代码和组件配置关系文件。Makefile文件:被make 工具调用的编译管理文件。
6、并发模型概念
nesC程序采用由任务(Task)和硬件中断((Hardware Event Handler)构成的并发模型.进行运行,该模型包含三个要点:(1)、任务:是操作系统提供的一种简单的延期计算机制,本质上是一个可以被操作系统调度执行的函数。(2)、中断:本质上是硬件中断服务函数,如定时器中断、射频中断等。(3)、任务可以被中断处理程序打断。
第三章
1、下列不是TinyOS 2.x提出的3层结构的硬件抽象架构的是_D_____。
A.硬件表示层
B.硬件抽象层
C.硬件接口层
D.综合硬件层
2、TinyOS体系结构由下到上将一系列组件分为四大类:硬件抽象组件、综合硬件组件、高层软件组件、任务调度组件。
3、TinyOS 2.x的启动过程使用三个接口:Init、Scheduler、boot。
4、TinyOS 2.x 的启动过程.
(1)硬件平台启动。(2)调度器初始化。(3)平台初始化。(4)软件相关组件初始化。(5)中断使能。(6)触发启动完成的信号。(7)循环运行任务调度。
第四章
1、下列关于TinyOS平台目录叙述正确的是 A 。
A、" support/make/'目录存放的是平台代码
B、"tos/platform”目录存放的是编译脚本
C、平台的驱动代码一般存放在“tos/chips”目录
D、平台的设置环境变量的启动脚本存在“apps”目录下
A、.应用程序目录下的Makefile文件是make首先要解析的脚本
B、变量"MAKERULES”是由用户定义的
C、Makerules文件是由TinyOS提供给make编译用户程序使用的
D、环境变量“TOSDIR”指向新发布平台的目录
3、简述“.target", ".rules”和“.platform”文件的作用。
(1)、“.target”文件产生以下两个直接影响:1)、调用make工具编译程序时的命令要使用“make平台目标”。2)、make工具调用相关脚本自动寻找“芯片名”目录下的“芯片名.rules”文件并解析执行。
(2)、.rules文件主要完成以下工作:1)、定义指向“参与编译的路径”变量以传递给nesC编译器,让编译器可以找到程序所用的合适的组件和接口。2)、调用nesC编译器编译nesC程序为C程序。3)、调用平台硬件所需要的本地C语言编译器编译硬件可执行的二进制代码。4)、调用平台硬件所需要的烧写程序将可指定行代码下载至硬件。(3)、“.platform”文件:指定nesC编译器要搜索的芯片驱动、射频驱动、传感器、网络驱动等目录,以及为TinyOS 的任务调度器指定要使用的组件。
第五章
1、下列组件是主动消息组件的是 A 。
A. AMSenderC.nc
B. AdcP.nc
C. HdlTranslatec
D. SerialP.nc
2、修改串口的波特率使用的是哪个组件 C 。
A. HdlTranslateC.nc
B. SerialP.nc
C. HplCC2530UartP.nc
D. SerialActiveMessageP.nc
3、TinyOS的编程的基本思想也采用分层结构,即上层调用下层,其分层结构大致可分为底层驱动层、中间层、应用层。
第六章
1、汇聚协议的主要接口有Send接口、Receive接口、Intercept接口和RootControl接口。
2、汇聚服务组件主要通过CollectionC组件、CollectionSenderC组件和CollectionSenderP组件来进行汇聚服务。
3、在分发协议中分发服务提供了两个主要的接口:DisseminationValue接口和DisseminationUpdate接口。
四、编程:
1、开机点亮LED的TinyOS程序。-12-与-42-考一个
LedOnAppC.nc LedOnC.nc
/*LedOnAppC.nc文件*/
Configuration LedOnAppC
{
}
implementation
{
components MainC. LedOnC,LedsC;
MainC.Boot<- LedOnC.boot;
LedOnC.Leds-> LedsC.Leds;
}
/*LedOnC.nc文件*/
module LedOnC
{
uses interface Boot;
uses interface Leds;
}
implementation
{
task void DoLedOn()
{
call Leds.led0On();