- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lesson6---启动顺序 TinyOS系统经典PPT教程 教学课件
Lesson6 启动顺序 main()函数在哪里? 从前面几节课可以知道,应用程序处理Boot.booted事件,然后从此处开始运行。下面将介绍这个事件的前后过程,如何适宜地初始化组件。 一、TinyOS 2.x的启动接口 Init:初始化组件和硬件状态; Scheduler:初始化和运行任务; Boot:通知系统已经成功地启动。 二、TinyOS 2.x的启动顺序 TinyOS的启动顺序有以下4步: Step1:调度程序初始化; Step2:组件初始化; Step3:发送启动boot过程完成的信号; Step4:运行调度程序。 2.1 RealMainP组件 2.1 RealMainP组件 RealMainP使用接口:PlatformInit接口和Scheduler接口。MainC把这些在应用程序里隐藏掉了,并自动连接它们到系统调度程序(scheduler)和平台初始化( platform initialization ) 。 PlatformInit和SoftwareInit两者主要就是硬件与软件的区别。PlatformInit是把核心平台的服务初始为有意义的状态。 如果调度程序没有在组件之前初始化好,那么组件的初始化程序就不能发布任务。 2.2 组件初始化 平台初始化阶段是平台实现者的责任。因此,把PlatformInit接口连接到特定平台的初始化组件PlatfomC。 任何需要初始化的组件也可以实现Init接口,连接到MainC组件的SoftwareInit接口。 特定硬件初始化直接由每个平台的PlatformC组件来处理。 系统服务(例如,定时器,无线电)被设计成独立地初始化。 2.3 Boot.booted()事件 一旦所有的初始化完成了,MainC的Boot.booted()事件就触发了。组件可以自由地调用start()命令以及其他组件使用的其他命令。 在Blink应用程序里,定时器就是在booted()事件里启动的。这个booted事件就是TinyOS的main函数。 2.4 调度循环 TinyOS 就会进入核心的调度循环(core scheduling loop)。只要有任务在排队,调度者就会继续运行。 一发现任务队伍为空,调度就会把微处理器调节到硬件资源允许的低能耗状态。 处理器进入休眠状态直到它碰到中断。当一个中断到达时,MCU退出休眠模式,运行中断程序。 三、系统启动和软件初始化 从一个应用程序或高级别服务的角度来看,在启动顺序中有两个由MainC提供的重要的接口:Boot接口和SoftwareInit接口。 Boot接口只处理顶层的应用程序:它启动如定时器或无线电之类的服务。相比之下,SoftwareInit接口接触到系统中很多不同的组成部分。 如果有一些只需运行一次即可的代码,比如某些初始化或配置工作,就可以把它们连接到SoftwareInit接口。 3.1 自动绑定(auto-wire) 当MainC调用SoftwareInit.init,它会在很多的组件里调用Init.init()命令。在典型的大型应用程序里,初始化顺序可能包含30多个组件。 为了简化应用程序的开发,应当使需要初始化的服务组件自动绑定到SoftwareInit接口。 * interface Init { command error_t init(); } interface Boot { event void booted(); } interface Scheduler { command void init(); command bool runNextTask(bool sleep); command void taskLoop(); } MainC组件(位于tos/system)是一个应用层级别的启动组件。 MainC组件提供了Boot接口,使用一个Init接口( SoftwareInit )。调用SoftwareInit.init()作为 step 2的一部分,并在step 3触发Boot.booted()事件。 implementation { int main() __attribute__ ((C, spontaneous)) { atomic { platform_bootstrap(); //启动硬件平台 call Scheduler.init(); //调度器初始化 call PlatformInit.init(); //平台初始化 while (call Scheduler.runNext
您可能关注的文档
- JavaScript(navigator 物件).ppt
- JavaScript入門篇.ppt
- Jason6 教程.ppt
- JavaScript及网页特效制作课件 上机部分.ppt
- Javascript培训教程.doc
- javascript特效 章 J2EE概述 JavaEE教学课件PPT.ppt
- JavaScript语言基础 第一、二章内容.ppt
- JavaScript语言基础 第三至六章内容.ppt
- java复习 期末复习资料.doc
- Java实用教程第12讲内部类.ppt
- Lesson53 What′s Paul′s Hobby.ppt
- Lesson7---存储 TinyOS系统经典PPT教程 教学课件.ppt
- Lesson8---资源仲裁和电源管理 TinyOS系统经典PPT教程 教学课件.ppt
- Lesson9---并发性 TinyOS系统经典PPT教程 教学课件.ppt
- Lesson 73-74 The way to king street新概念一册教师用课件.ppt
- Lesson 75-76 Uncomfortable shoes新概念一册教师用课件.ppt
- Lesson 77-78 words新概念一册教师用课件.ppt
- Lesson 79-80 words新概念一册教师用课件.ppt
- Lesson9-The Way to Rainy Mountain[zhang] 现代大学英语精读5课件.ppt
- Lesson 81-82 words新概念一册教师用课件.ppt
最近下载
- 2025年大国重器,神剑扬威讲解.pptx VIP
- 统编版八年级语文上册《国行公祭,为佑世界和平》课件.pptx VIP
- 家庭健康必备手册.ppt VIP
- 第四章 信用证项下的单证制作 课件(共57张PPT)《国际贸易单证》同步教学(对外经济贸易大学出版社).pptx VIP
- 公路养护工程量清单及计量规范云南交通运输厅工程造价管理局.pdf VIP
- 人教版七年级上数学试题:第一章有理数测试题(无答案).doc VIP
- GB50204-2015 《混凝土结构工程施工质量验收规范》GB50204-2015 (1).docx VIP
- 旋挖钻机作业安全技术交底.docx VIP
- 某项目二次供水平面图.docx VIP
- 家庭语言训练手册.pdf VIP
文档评论(0)