组件技术已成为现代软件工程的支柱,例如最初的C++,到后来天生就支持组件设计与部署的Java与C#。正是由于组件技术的使用,才使得现今的程序更加模块化、可定制裁剪。
虽然组件技术在主流的上位机领域取得巨大成功,但在嵌入式这一领域影响甚微,其主要原因是嵌入式系统受到时间、空间和功耗的限制,主流组件技术很难应用。随着嵌入式应用程序复杂度的增加以及对程序可移植性的期望,嵌入式C程序员需要在程序的通用性和性能之间做权衡。通用性往往会降低效率,性能的提升往往难以移植。
嵌入式软件的生产者/消费者矛盾:
①生产者(producers):编写可供其他人调用的函数库,需要具有可移植性。
②消费者(consumers):调用各种各样已编写好的函数库。
![](https://i-blog.csdnimg.cn/blog_migrate/811a0183fe7635a1490b326e10c73f6c.png)
随着嵌入式系统以及软件越来越复杂,这两者之间的矛盾也越来越激化。生产者通过编写可移植代码来降低一次性工程开发成本;消费者则希望降低终端设备成本,例如尽量使用低频、低存储、低功耗终端,为达此目的消费者会放弃软件的可移植性来实现代码优化。
虽然如此,软件重用性依然重要。现在,软件生产者在时间空间上分散于世界各地,所以消费者的角色逐渐演变为软件集成者,将各个生产者的软件组件以各种新奇的方式集成起来。
RTSC是嵌入式C程序员一个很好的权衡选择。RTSC通过现代组件工具和架构把嵌入式C程序提升到新的高度。
RTSC(Real-Time Software Component,发音rit-see),实时软件组件,是一个基于C的编程模型,用于开发创建或实施嵌入式平台实时软件组件。RTSC工程提供基础工具和底层运行时内容,以使针对嵌入式平台的 C 语言能实现基于组件的开发。虽然嵌入式系统存在其他组件技术,但 RTSC 的独特之处在于,它能扩展到资源非常受限的嵌入式系统,包括 DSP 和 16 位微型控制器。
RTSC工程目前处于快速发展阶段,2000年开始,TI少数高级嵌入式软件开发人员不断开发 RTSC 工具和组件,而XDCTools就是特殊的基于RTSC创建的工具和运行时组件。自2004年,TI使用XDCtools创建的 DSP/BIOS 5.x RTOS 已与这些工具一起交付,以确保包含 DSP/BIOS 的任何开发系统都能使用(consume)其他开发组创建的组件(称为包,packages)。现在,TI的内部小组会定期构建(或重构)、测试和部署数百个RTSC包。许多此类软件包被德州仪器公司内外的数千名开发人员使用。例如:
- DSP/BIOS 5.x - 部署了超过 56 个包的捆绑包,
- Codec引擎多媒体中间件运行时库,独立发布的,捆绑超过21个包,
- 各种视频、图像、语音和音频编解码器(由德州仪器公司及其第三方开发)均作为软件包交付,
- XDCtools 自身在交付时,捆绑了超过125个包。
有些开发人员一直在使用 DSP/BIOS 5.x,却没有意识到它实际上是 RTSC 组件的集合,这说明了RTSC模型的优势之一:RTSC 组件的消费者(consumer,使用者)无需将其整个应用程序转换为组件即可轻松集成它们。