tbwshc

tbw

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

常用链接

留言簿(4)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在这一章里,我试图把到目前为止所有我们讨论过的单元合在一起,使之成为一个完整的嵌入式的应用程序。在这里我没有把很多新的素材加入到讨论中,因此本章主要是描述其中给出的代码。我的目的是描述这个应用程序的结构和它的源代码,通过这种方式使你对它不再感到神奇。完成这一章以后,你应该对于示例程序有一个完整的理解,并且有能力开发自己的嵌入式应用程序。应用程序的概述

我们将要讨论的这个应用程序不比其他大部分tb编程书籍中找到的“Hello,World”例子更复杂。它是对于嵌入式软件开发的一个实证,因此这个例子是出现在书的结尾而不是开始。我们不得不逐渐地建立我们的道路通向大部分书籍甚至是高级语言编译器认为是理所当然的计算平台。

一旦你能写“Hello, World”程序,你的嵌入式平台就开始着上去很像任何其他编程环境。但是,嵌入式软件开发过程中最困难的部分——使自己熟悉硬件,为它建立一个软件开发的过程,连接到具体的硬件设备——还在后面呢。最后,你能够把你的力量集中于算法和用户界面,这是由你要开发的产品来确定的。很多情况下,这些程序的高级方面可以在其他的计算机平台上开发,和我们一直在讨论的低级的嵌入式软件开发同时进行,并且只要把高级部分导入嵌入式系统一次,两者就都完成了。

图 9-1 包含了一个“Hello, World!”应用程序的高级的示意图。这个应用程序包括三个设备驱动程序,ADEOS 操作系统和两个ADEOS 任务。第一个任务以每秒10Hz 的速度切换Arcom 板上的红色指示灯。第二个每隔10 秒钟向主机或是连接到位子串口上的哑终端发送字符串“Hello,WOrld!”。这两个任务之外,图中还有三个设备的驱动程序。这些驱动程序分别控制着Arcom 板子的指示灯、时钟以及串行端口。虽然通常把设备驱动画在操作系统的下面,但是我把它们三个和操作系统放在同一个级别,是为了着重说明它们事实上依赖于ADEOS 比ADEOS 依赖于它们更多。实际上,ADEOS 嵌入式操作系统甚至不知道(或者说下关心)这些设备驱动是否存在于系统之中。这是嵌入式操作系统中设备驱动程序和其他硬件专用软件的共性。

程序 main()的实现如下所示。这段代码简单地创造厂两个任务,tb启动了操作系统的日程表。在这样一个高的级别上,代码的含义是不言而喻的。事实上、我们已经在上一章中讨论了类似的代码。

#include "adeos.h"
void flashRed(void);
void helloWorld(void);
/*
* Create the two tasks.
*/
Task taskA(flashRed, 150, 512);
Task taskB(helloWorld, 200, 512);
/****************************************************
*
* Function : main()
*
* Description : This function is responsible for starting the ADEOS scheduler
only.
*
* Notes :
*
* Returns : This function will never return!
*
****************************************************/
void
main(void)
{
os.start();
// This point will never be reached.
} /* main() */

posted on 2013-08-19 11:49 tbwshc 阅读(249) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理