Lesson10---平台.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lesson10---平台

Lesson10 平台 一个平台是由什么组成,TinyOS是如何尽可能地跨平台重用代码。 如何理解“make micaz”和“make telosb”之间的区别? 构造“yamp”平台,并假设其硬件上带有MSP430微处理器和CC2420无线电收发器。 注:本节内容针对的底层平台开发,对于TinyOS一般应用程序的开发者来说并不是严格必需的。 一、芯片和平台 一个硬件节点的两个关键组成是微处理器和无线电收发器。 Telos, Eyes与Tinynode平台使用MSP430单片机 ; Telos与micaz 使用CC2420射频芯片。 虽然一块芯片在不同的平台采取不同的硬件连接方式(例如,无线电射频芯片连接到微处理器上不同的数字引脚),但大部分的逻辑工作都具有平台独立性。 所支持芯片的平台独立性代码可以重复使用。 二、新平台 从本质上说,就是把该平台所用的每个芯片的代码都拉过来,然后把它们“粘合”在一起。 例如,支持CC2420芯片的模块和组件位于 tos/chips/cc2420文件夹。这个无线电芯片在Telos和Micaz节点上都用到了。“粘合”所做的工作就在tos/platforms/telosb/chips/cc2420和tos/platforms/micaz/chips/cc2420 这两个文件夹中完成。 但有时碰到TinyOS不支持的芯片时,新芯片的驱动开发是一个不简单的任务(尤其是无线电芯片和微处理器芯片)。 Step1 最初的搭建 搭建平台的第1步:坚持以最低限度所需的资源构建平台,编译并下载Null应用程序(/apps/Null)到yamp节点。 创建目录 tinyos-2.x/tos/platforms/yamp。 每个平台目录都应该包含一个名为“.platform”的文件,包含了每个平台的基本的编译参数。 Step2 hardware.h 每个平台的目录下有一个 “hardware.h”文件。 可以定义特定平台的常量,引脚名字,或包含一些外部头文件(通常#include特定MCU文件 msp430hardware.h / atm128hardware.h)。 在.platform把芯片目录加为搜索路径,编译器会自寻查找头文件。 必须有一个名为 “ platform.h ” 的文件,即使它是空的。 Step2 hardware.h Step3 设置构建环境 必须先设置构建环境(the build environment),让TinyOS知道并支持我们的平台 。然后才是为平台定义基本的TinyOS 模块,并通过Null应用程序(/apps/Null)来测试平台是否正确配置。 Null 是一个空的程序框架,常用来测试构建环境在最低配置时能否正常工作。 Step3 设置构建环境 TinyOS的构建系统位于tinyos-2.x/support/make文件夹中。 构建系统能够理解“yamp”是一个合法的平台名字,也就是能运行 make yamp。 创建tinyos-2.x/support/make/yamp.target Step4 创建平台必备的组件 编译Null应用如下图所示: Step4 创建平台必备的组件 Step5 测试Blink程序 通过Blink例子程序,测试并完善yamp平台。 Blink应用程序的功能十分简单,且容易验证其是否正常工作。 三、硬件抽象架构 TinyOS 2.0采用硬件抽象架构(Hardware Abstraction Architecture,HAA)的组件设计模型,一方面可以提高代码的可重用性和可移植性,另一方面可以实现效率和性能的优化。 基于抽象化的三个不同级别,采用三层结构的硬件抽象化设计,大大提高了底层硬件平台和独立于平台的硬件接口之间的兼容性。 顶层抽象提供平台无关的硬件接口,便于代码移植; 中间层抽象带有丰富的硬件相关的接口,有助于提高效率; 而底层抽象则与硬件的寄存器和中断密切相关。 三、硬件抽象架构 存在着一条分界线,在线上软件组件是平台独立的,而在线下的组件是为一个硬件平台特别编写的。 3.1 硬件表示层 属于硬件表示层(Hardware Presentation Layer,HPL)的组件直接位于在硬件/软件的接口之上。 其主要任务是表示硬件的功能。组件访问硬件的一般方法是通过内存或者I/O映射。 HPL组件提供的接口完全由硬件模块的本身功能决定。 每个HPL组件都应该有: 为了实现更有效的电源管理,必须有硬件模块的初始化、开始和停止命令; 为控制硬件操作的寄存器提供“get”和“set”命令; 为常用的标志位设定和测试操作提供单独的命令; 开启和禁用硬件中断的命令; 硬件中断的服务程序。 3.2

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档