您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

嵌入式系统通用的应用软件结构研究

时间:2007-1-20栏目:电子通信论文

存分区,应用程序可以从不同的内存分区中取得不同大小的内存块。唯一要注意的是,不同的内存块在释放时必须重新放回它以前所属的内存分区。采用上述的内存管理算法,解决了内存碎片的问题。

为了跟踪每一个内存分区,μC/OS-II使用了内存控制块的数据结构,主要有:

OSMemAddr—指向内存分区起始地址的指针;

OSMemFreeList—指向下一个空闲控制块或下一个空闲内存块的指针;

OSMemBlkSize—内存分区中内存块的大小,是用户建立该内存分区时指定的;

OSMemB1ks—内存分区中总的内存块数量,是用户建立该内存分区时指定的;

OSMemNFree—内存分区中当前可以得到的空闲内存块数量。

μC/OS-II中,也可以使用常规的malloc()和free()内存管理函数来增强其可移植性,但在使用更严格的场合,应使用系统提供的特殊的内存管理。

2 应用软件

2.1 应用软件原型

对于8051单片机系统的编程,最基本的架构是一个无限循环,应用的所有事情基本上都是在这个超循环中实现的。在这种系统中,系统上只有一个任务在运行,应用就是整个系统,而整个系统就是一个应用。

与这种简单系统相似,超循环结构在复杂的实时操作系统μC/OS-II中也是一个基本结构;但不再是系统级的,而只是任务级的。图1为超循环的结构示意。
(范文先生网www.fwsir.com收集整理)
    在一个应用中,至少有一个这样的任务,它包含这样一个超循环,以使其拥有与应用相同的生存期,并由它完成应用的全部或部分功能。图2为应用软件结构框图。

2.2 基本应用软件结构

应用软件结构存在不同性,是由应用本身决定的;但作为基本结构,则是相似甚至是相同的。因为对于不同的系统,所调用的函数是不同的。下面给出基本应用软件结构的文字描述。

①声明系统的包含文件。

②声明全局数据:任务数、任务的栈空间等。

③主函数:

*系统初始化;

*创建主任务;

*启动多任务执行。

④主任务:

*主任务初始化;

*若必要,可创立多个子任务;

*进入超循环或退出主任务。

⑤子任务:

*子任务初始化;

*进入超循环或退出子任务。

2.3 应用软件实例

(1)样例1

为了简要说明软件结构思想,我们在PC平台、Windows 98系统下,采用了Borland公司的C++命令行编译环境,说明我们的第一应用。

其中文件的主要功能,就是显示一个HelloμC/OS-II embedded world!字符串。由于其是在μC/OS-II下实现的,与原理

上一页  [1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页