在一个应用中,至少有一个这样的任务,它包含这样一个超循环,以使其拥有与应用相同的生存期,并由它完成应用的全部或部分功能。图2为应用软件结构框图。
2.2 基本应用软件结构
应用软件结构存在不同性,是由应用本身决定的;但作为基本结构,则是相似甚至是相同的。因为对于不同的系统,所调用的函数是不同的。下面给出基本应用软件结构的文字描述。
①声明系统的包含文件。
②声明全局数据:任务数、任务的栈空间等。
③主函数:
*系统初始化;
*创建主任务;
*启动多任务执行。
④主任务:
*主任务初始化;
*若必要,可创立多个子任务;
*进入超循环或退出主任务。
⑤子任务:
*子任务初始化;
*进入超循环或退出子任务。
2.3 应用软件实例
(1)样例1
为了简要说明软件结构思想,我们在PC平台、Windows 98系统下,采用了Borland公司的C++命令行编译环境,说明我们的第一应用。
其中文件的主要功能,就是显示一个HelloμC/OS-II embedded world!字符串。由于其是在μC/OS-II下实现的,与原理有相通性,这里就不再更多介绍了。
(2)样例2
使用Cirrus Logic公司的开发板EP7212,运行的操作系统是RedHat公司的ECOS。本应用的主要功能是,把从串口2接收到的数据再发送回去,并且在初始化时加发一个“Hello eCos World!”字符串。
ECOS是一个比μC/OS-II更复杂的系统,其支持的软件结构更丰富,但其对我们所抽象的软件结构依然支持得很好;只是在我们应用的主函数中,已更好地将系统的初始化部分隐藏了起来。
[!--empirenews.page--] 嵌入式系统通用的应用软件结构研究
在一个应用中,至少有一个这样的任务,它包含这样一个超循环,以使其拥有与应用相同的生存期,并由它完成应用的全部或部分功能。图2为应用软件结构框图。
2.2 基本应用软件结构
应用软件结构存在不同性,是由应用本身决定的;但作为基本结构,则是相似甚至是相同的。因为对于不同的系统,所调用的函数是不同的。下面给出基本应用软件结构的文字描述。
①声明系统的包含文件。
②声明全局数据:任务数、任务的栈空间等。
③主函数:
*系统初始化;
*创建主任务;
*启动多任务执行。
④主任务:
*主任务初始化;
*若必要,可创立多个子任务;
*进入超循环或退出主任务。
⑤子任务:
*子任务初始化;
*进入超循环或退出子任务。
2.3 应用软件实例
(1)样例1
为了简要说明软件结构思想,我们在PC平台、Windows 98系统下,采用了Borland公司的C++命令行编译环境,说明我们的第一应用。
其中文件的主要功能,就是显示一个HelloμC/OS-II embedded world!字符串。由于其是在μC/OS-II下实现的,与原理有相通性,这里就不再更多介绍了。
(2)样例2
使用Cirrus Logic公司的开发板EP7212,运行的操作系统是RedHat公司的ECOS。本应用的主要功能是,把从串口2接收到的数据再发送回去,并且在初始化时加发一个“Hello eCos World!”字符串。
ECOS是一个比μC/OS-II更复杂的系统,其支持的软件结构更丰富,但其对我们所抽象的软件结构依然支持得很好;只是在我们应用的主函数中,已更好地将系统的初始化部分隐藏了起来。
[!--empirenews.page--] 如果这篇内容对您有帮助,欢迎点赞支持!