TECS(TOPPERS Embedded Component System)为TOPPERS推出的一个针对嵌入式系统,将各种软件模块封装为组件,并将组件结合在一起以实现快速构建大规模嵌入式系统软件的规范和工具的集合。其目的在于通过组件化的开发方式降低嵌入式系统软件的开发难度,减少重复开发,提高设计的抽象度和嵌入式系统软件的可复用性。

在TECS中,应用由不同的组件组成,每个组件称之cell并有相应的类型,相当于对象与类的关系。组件有两类接口,一类为入口(entry port)用以像其他cell提供服务,另一类为调用口(callport)用以调用其他cell所提供的服务,一个调用口只能连接一个入口,一个入口可以被多个调用口连接。接口的类型由signature定义,独立于cell,cell与cell之间只有相同signature的入口和调用口能连接在一起。如下图所示,有两个cell分别为cell1和cell2,cell1的类型为tCellType1,cell2的类型为tCellType1。cell1的调用口cService与cell2的入口连接子在一起,类型为sService。

TECS下的开发流程如下图所示,组件设计者通过组件描述语言CDL(ComponentDescription Language)来定义cell和signaure。应用开发者可以直接通过CDL描述组件是如何构成应用,或者通过组件图以图形化方式描述,然后再由相应的工作转化成CDL。TECS的CDL解析器将分析CDL并生成相应的C语言代码模板、头文件和接口代码,如果使用了TOPPERS内核,还会生成相应的TOPPERS内核配置文件。组件开发者将依据所生成的模板文件实现相应的组件。最后所有的代码经过编译链接形成最终的目标文件,载入最终制品后交由最终的使用者。

TECS的核心概念就是组件和接口。如果采用OOP语言,如C++,特别是Java(因为Java中有原生的interface支持,而C++则需要借助虚函数实现),TECS这些概念是非常容易实现的。但TECS的底层是基于C语言的,且整个过程是静态的,所以其在代码大小和性能上开销不大,适合于嵌入式系统应用。TECS还支持远程过程调用(RemoteProcedure Call, RPC),可用于分布式嵌入式系统的开发。

在实际使用过程中,TECS使用流程是比较复杂的,因为需要用一种专门的语言进行描述,而且需要准备好相应的模板和相应的模块封装。因此TECS更多是一种尝试,其主要应用也是在和TOPPERS相关的应用上,如把TOPPERS内核封装成TECS组件,TOPPER的LEGO机器人项目。

随着C++在嵌入式系统中越来越广泛的应用,在C++基础上构建相应的组件系统更有意义。

TOPERS中间件之一---嵌入式组件系统TECS相关推荐

  1. 嵌入式linux组件,嵌入式Linux系统的几大组件!

    原标题:嵌入式Linux系统的几大组件! 本文概述了Linux系统的几大组件,描述了这些组件之间的关系.文章解释了术语,并描述看似很基础的细节. 每个Linux系统都有许多主要组件.其中一个组件(引导 ...

  2. 嵌入式linux结构框图,嵌入式linux系统的结构

    原标题:嵌入式linux系统的结构 1.嵌入式系统的硬件架构 嵌入式系统硬件模型结构,此系统主要由微处理器MPU.外围电路,以及外设组成,微处理器为ARM嵌入式处理芯片,如ARM7TMDI系列及ARM ...

  3. 嵌入式VxWorks系统开发与应用

    免费下载地址: http://www.vxworks.club 本书详细介绍了当今流行的嵌入式操作系统VxWorks,首先概括VxWorks操作系统的基本知识,如任务管理.任务间通信机制.内存管理以及 ...

  4. 嵌入式Linux初始化硬件RTC,嵌入式Linux系统中的快速启动技术研究

    嵌入式Linux系统主要特点在于使用Bootloader替代了桌面系统的BIOS,同时对系统进行了规模上的裁剪,但硬件上的劣势往往导致系统启动速度较慢,而嵌入式产品使用者又对系统的开机速度比较敏感,样 ...

  5. 构建嵌入式linux系统_用于构建嵌入式Linux系统的4种工具

    构建嵌入式linux系统 Linux正在被部署到比Linus Torvalds在他的宿舍里工作的设备更多的设备中. 受支持的各种芯片架构令人震惊,并导致各种大小的设备都使用Linux. 从庞大的IBM ...

  6. FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计)

    FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计) 首先我们知道FPGA可以实现充当完整微处理器的逻辑,并且提供许多灵活性选项.下图体现出FPGA器件为何是现场可编辑门阵列器件. 为了使基于F ...

  7. 实体组件系统_实体组件系统介绍

    实体组件系统 什么是实体组件系统?(What is Entity Component System?) Entity Component System is a software pattern co ...

  8. python framebuffer gui_基于Framebuffer的嵌入式GUI系统实现

    摘要:本文研究了基于Framebuffer的嵌入式GUI的系统实现,包括其体系结构层次的建立.驱动机制的分析.微型客户端/服务器模式的实现,以及基于Framebuffer的GAL与GDI的设计等关键内 ...

  9. 嵌入式Linux系统图形及图形用户界面综述--2005-04-20博客搬家

     原地址:http://fengxupeng.bokee.com/1260734.html 本小节首先向读者描述 Linux 图形领域中常见的基础设施.之所以称为基础设施,是因为这些系统(或者函数 ...

最新文章

  1. 第十、十一周项目一-点-圆-圆柱类族的设计(1)
  2. C#中Delegate和Event以及它们的区别(转载)
  3. Java记录 -55- Set下的HashSet
  4. sql 2005 解除用户锁定(SA帐户被锁定)
  5. 新款苹果手机_苹果宣布新系统 性能依旧“压制quot;安卓
  6. 【uni-app】在新窗口中打开链接
  7. win7锁定计算机会断网吗,win7系统如何设置电脑定时断网
  8. 一步一步搭建客服系统 (7) 多人共享的电子白板、画板
  9. Docker 镜像文件的导入和导出
  10. 苹果在中国设立首个App设计开发加速器
  11. kafka maven 依赖_Flink的sink实战之二:kafka
  12. js外部样式和style属性的添加移除
  13. python nonlocal的用法_python global和nonlocal用法解析
  14. HTTP缓慢拒绝服务攻击
  15. Linux下重启tomcat
  16. win10输入法突然变繁体解决办法
  17. 一文详解大小功率MOS管,你不知道的都在这里
  18. 企业数字化转型思考系列文章(一)何为数字化转型?
  19. c# excel导入后处理不固定列数据
  20. Metaverse 元宇宙入门-08-Content, Services, and Asset Businesses in the Metaverse 元界中的内容、服务和资产业务

热门文章

  1. 雷电pygame代码
  2. 带建筑物的点云到 3D地形模型
  3. 东软睿道-Java高级应用编程
  4. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  5. 微软学生开发者峰会收获分享
  6. 谈谈智能驾驶的人机交互
  7. Orfeo ToolBox初探(一)Windows系统下绑定OTB至python3
  8. C/C++百行代码实现热门游戏-消消乐
  9. 2022全域数据驱动增长指南:用户数据主权争夺战,品牌该出手了
  10. 《金瓶梅》是何等小说