- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tinyOS操作系统整理tinyOS操作系统整理
前言 3
编程小贴士 3
链接和命名空间 6
3.1 C 6
3.2 C++ 9
3.3 Java 11
3.4 组件与接口 11
3.5 Why? 13
接口和模块 15
4.1 Split Phase 15
4.2带参数的接口 16
4.3模块的实现 17
4.4 Tasks(任务) 19
4.5 Concurrency并发 23
4.6 Allocation 31
Configurations and Wiring 35
5.0.1 The as keyword and other namespace tricks 39
5.1 Pass Through Wiring 41
5.1.1 Multiple Wirings, Fan-in, and Fan-out 多串联,扇入,扇出。 42
5.2 Combine Functions 44
Parameterized Wiring 46
6.1 Defaults 50
6.2 unique() and uniqueCount() 51
第一章
前言
这本书介绍了如何在TinyOS 2.0(T2)下编程。它比之前的指导性的文章更为深入些,而且还涉及到一些额外的主题,例如radio stacks的结构及其实现和一些现存的TinyOS库。这本书关注于如何编写nesC代码,以及解释那些nesC和TinyOS设计模式背后的概念和原理。如果你想很快速的了解如何进行TinyOS编程,你可以先阅读指导(tutorials).如果你对TinyOS的某个子系统很感兴趣,你可以参阅TEPs(TinyOS Enhancement Proposals),它详细阐述了相应的设计,接口和组件。这些都可以在TinyOS的发布目录下找到。
虽然本书的一些内容仍然适用于TinyOS 1.x的版本,但1.x的版本与T2版本的不同还是会导致不同编程实践。如果仍有疑问,可以参考TEP,TEPs会经常讨论1.x和2.0的细节上的不同。
对于那些有C或C++编程经验的人来说,写一些简单的nesC程序是相当的简单的:
你所需要做的只是实现几个模块,并把它们串起来。真正的难的地方(比较有挑战的)在于建立大型程序的时候。TinyOS 模块的语法和C的语法类似,但那些将组件串联在一起的配置(con?gurations)却大不一样。
本书一开始解释了nesC和其他“C方言”的联系和区别,然后逐步深入的讨论这些不同是怎么导致编程风格和方法上的不同的。本书假设阅读的起点:
你了解C,C++,JAVA,理解指针或类似的东西。
你曾经在大学里上过操作系统的课程(或同等的课程)并且知道,并发,中断和优先级。
当然,本书仍然尽可能多的讲解nesC,这也是最为实际的方法来使用这种语言完成软件开发。在这方面,本书也是很多人花费了数千个小时来学习和研究这种语言的使用方法的成果。实际上,David Gay 和Cory Sharp常常推广nesC编程的使用范围,使人们更容易的理解什么样的编程实践可以带来更简单有效健壮的代码。尤其是第八章是David Gay和我一起写的论文的修改版,其中讨论了关于使用结构体在接口中(正如计时器Timer所做的)作为编译期检查机制,这种方法是由Cory提出的。
第二章
编程小贴士
本文将会提到一些编程注意点来避免在nesC编程中遇到的常见问题。我们整理好这些以备参考。
Programming Hint 1: It’s dangerous to signal events from commands, as you might cause a very long call loop, corrupt memory and crash your program.
注意点1:
在命令中触发一个事件是相当“危险”的,这可能会导致一个很长的调用循环,破坏内存并最终导致程序的崩溃。
Programming Hint 2: Keep tasks short.
注意点2:确保任务的简短。
Programming Hint 3: Keep code synchronous when you can. Code should be async only if its timing is very important or if it might be used by something whose timing is important.
注意点3:尽可能保证代码的同步性。只有当程序的时效性很重要时,可以考虑代码的异步执行。
Programming Hint 4: Keep atomic sections short, and have as few of them as possible. Be careful about c
您可能关注的文档
- The Operational Schedule for Continuous Annealing.doc
- The neoprene latex cement mortar lining by adopting the method of spread of the construction.doc
- The origin and history of English language.doc
- The origins of the financial crisis-1.doc
- The main body construction stage of level measurement.doc
- The overview of trivalent Pr3+++.doc
- The perioperative cost of Infuse bone graft in posterolateral.doc
- The newspaper industry.doc
- The Lion,the Witch and the Wardrobe.doc
- The origins of the financial crisis.doc
- 2025届衡阳市第八中学高三一诊考试物理试卷含解析.doc
- 2025届湖南省娄底市双峰一中等五校重点中学高三第二次诊断性检测物理试卷含解析.doc
- 天水市第一中学2025届高三第二次联考物理试卷含解析.doc
- 2025届金华市重点中学高三考前热身物理试卷含解析.doc
- 2025届北京市石景山区第九中学高三第四次模拟考试物理试卷含解析.doc
- 江苏扬州市2025届高三第一次模拟考试物理试卷含解析.doc
- 2025届江苏省南通市高级中学高考物理五模试卷含解析.doc
- 广东省清远市华侨中学2025届高三第一次调研测试物理试卷含解析.doc
- 辽宁省凤城市2025届高三第五次模拟考试物理试卷含解析.doc
- 内蒙古巴彦淖尔市重点中学2025届高考仿真卷物理试卷含解析.doc
文档评论(0)