引言
对嵌入式软件构件平台而言,其支撑平台首先是一个嵌入式实时多任务操作系统,其次为整个软件构件的设计提供开发工具和集成环境。
在支撑平台的设计过程中,可以借鉴领域工程的思想,将整个嵌入式实时多任务操作系统设计成一个系统级的软件构件库。这样不但实现了嵌入式操作系统的可裁剪性,而且由于从嵌入式操作系统到应用程序的设计都是基于离散化的软件构件,因此方便了嵌入式控制应用软件设计时的集成和调试。为了方便软件构件的管理,可以将系统级和应用级的软件构件库综合成一个功能完备的软件构件库。它包括从嵌入式控制系统的系统层、支撑层和应用层所需的一切软件构件,因而具有功能的完整性[1]。
1 嵌入式
嵌入式系统是专为特定用途而设计的计算机系统,它们通常被集成到更大的硬件设备中,用于执行特定的功能。ARM技术是一种广泛应用的微处理器架构,以其高效能和低功耗特性,在嵌入式领域占据主导地位。基于构件技术的嵌入式系统复用软件设计是一种先进的开发方法,旨在提高软件的重用性、可维护性和灵活性。
在这样的设计中,软件构件平台扮演着关键角色。它基于一个嵌入式实时多任务操作系统,这个操作系统被设计成一个系统级的软件构件库,允许根据需求进行裁剪,以适应不同规模和性能要求的嵌入式系统。这种设计方式使得从操作系统到应用程序的开发都可以基于离散化的软件构件,简化了集成和调试过程。
软件构件的管理是通过综合系统级和应用级的构件库来实现的。这个综合库包含了嵌入式控制系统从底层系统层、支撑层到上层应用层所需的所有软件构件,确保了功能的完整性和一致性。系统层涉及领域工程,负责分析、抽象和提炼嵌入式控制系统的功能;连接层作为软件构件平台,提供无缝连接,使得系统层和应用层能够协调工作;应用层则允许用户根据具体控制需求,从构件库中选取合适的构件,集成出最终的嵌入式应用程序。
在设计嵌入式软件构件平台时,通常会考虑以下几个要点:
1. 数据结构的设计:操作系统和系统数据结构的分离,确保了平台设计者的控制权,同时也为用户提供了访问系统资源的接口。
2. 最小系统的配置:负责初始化任务,确保硬件和数据结构的正确设置,然后进入扫描状态。
3. 任务调度:考虑到嵌入式实时控制系统的需要,任务调度算法应简洁且高效,通常任务数量限制在16个以内,每个任务都有唯一优先级,通过信号量进行通信和同步管理。
4. 软件构件设计:包括任务调度、任务切换、任务上锁、虚拟消息等,以实现多任务管理和控制。此外,还有任务创建和结束的管理,以及两类堆栈(系统堆栈和任务堆栈)以支持任务切换。
接口软件的设计是构件技术的关键,它定义了软件构件如何与操作系统和其他构件交互。接口包含软件构件的标识、注册和配置信息,使得构件的接入、服务请求和资源分配变得简单。例如,错误观察函数WatchErr()用于检测和报告错误,SysCompReg处理构件的注册,GetAddN()获取整型参数,这些都方便了用户对支撑平台的操作。
基于构件技术的嵌入式系统复用软件设计通过构件化的方法,提高了嵌入式软件的开发效率和质量。这种方法不仅降低了开发成本,还增强了系统的可扩展性和可维护性,对于ARM技术的嵌入式系统来说,是实现高效能、低功耗控制的重要手段。