EETOP 创芯网论坛

便捷登录,只需一步

找回密码

  登录   注册  

搜帖子
第三代半导体技术资料|下载奖励300信元
查看: 405|回复: 0

[原创] 关于嵌入式系统的可裁剪性

[复制链接]
发表于 2019-6-20 14:05:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x

公司在研发嵌入式产品过程中,产品的功能会不断的添加和更新,产品的型号也会越来越多。这时产品的软件研发团队就需要考虑是在原有的软件版本上修改还是全新开发。从研发成本上考虑会考虑基于原有软件上修改。原有软件上功能会越来越多,但一款产品可能只需要其中部分功能,这就要求嵌入式软件系统具有良好可裁剪性。嵌入式系统提供良好的裁剪性,有利于产品开发团队做出更多差异化的产品和低成本的产品(裁剪后的软件系统通常也降低了对硬件的要求)。
嵌入式系统的可裁减性,必须在嵌入式系统设计中引入子系统和块的概念,只有在顶层设计时明确了子系统和模块。可裁减性才能够落地。分层设计做到位,子系统及模块间的依赖关系越明确,耦合越少则裁减实施起来越简单。

嵌入式-1.jpg


静态编译时主要是通过条件编译宏来控制。为每个特性定义一个编译宏,当一款产品的特性确定后,在编译时只打开特定特性的编译开关,这样无关的特性代码就不会参与编译,有效的减少静态编译出来的软件包体积。此方法的缺陷是必须重新编译代码,同时降低了代码可维护性。
动态库将各个功能模型分别编译成动态库,由主进程根据产品的功能需要加载需要的动态库。这种方法需要主进程从产品的规格文件获取需要加载的动态库,并按动态库要求的顺序依次打开。此方法的优点是不用重新编译,缺陷是实现起来复杂。
控制函数流程,实现功能控制类似静态编译,只不过是将静态编译时的编译宏改成全局变量判断。这些全局变量应该在主进程启动时从规格文件获取特性并加载在全局变量中,通过这些特性全局变量控制函数(业务)流程,达到功能裁减的目的。此方法是前面两种方法的折中,实现简单也不需要重新编译代码。但软件包体积没有减小。
通常在一个项目中不会只使用其中一种方法,而是会根据不同场景在不同的层次上同时使用上述方法。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-5-31 05:47 , Processed in 0.059451 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表