朗锐智科:关于嵌入式系统的可裁剪性

发布时间: 2019-06-20    浏览(306)


公司在研发嵌入式​产品过程中,产品的功能会不断的添加和更新,产品的型号也会越来越多。这时产品的软件研发团队就需要考虑是在原有的软件版本上修改还是全新开发。从研发成本上考虑会考虑基于原有软件上修改。原有软件上功能会越来越多,但一款产品可能只需要其中部分功能,这就要求嵌入式软件系统具有良好可裁剪性。嵌入式系统提供良好的裁剪性,有利于产品开发团队做出更多差异化的产品和低成本的产品(裁剪后的软件系统通常也降低了对硬件的要求)。

嵌入式系统的可裁减性,必须在嵌入式系统设计中引入子系统和块的概念,只有在顶层设计时明确了子系统和模块。可裁减性才能够落地。分层设计做到位,子系统及模块间的依赖关系越明确,耦合越少则裁减实施起来越简单。


http://img.zhux2.com/editor1561009608143881.jpg


静态编译时主要是通过条件编译宏来控制。为每个特性定义一个编译宏,当一款产品的特性确定后,在编译时只打开特定特性的编译开关,这样无关的特性代码就不会参与编译,有效的减少静态编译出来的软件包体积。此方法的缺陷是必须重新编译代码,同时降低了代码可维护性。

动态库将各个功能模型分别编译成动态库,由主进程根据产品的功能需要加载需要的动态库。这种方法需要主进程从产品的规格文件获取需要加载的动态库,并按动态库要求的顺序依次打开。此方法的优点是不用重新编译,缺陷是实现起来复杂。

控制函数流程,实现功能控制类似静态编译,只不过是将静态编译时的编译宏改成全局变量判断。这些全局变量应该在主进程启动时从规格文件获取特性并加载在全局变量中,通过这些特性全局变量控制函数(业务)流程,达到功能裁减的目的。此方法是前面两种方法的折中,实现简单也不需要重新编译代码。但软件包体积没有减小。

通常在一个项目中不会只使用其中一种方法,而是会根据不同场景在不同的层次上同时使用上述方法


主页: 朗锐智科    阅读原文

标签: 建筑资讯

举报
施肥 浇水 虫子 斧子

该文章共收到

0 浇水

0 施肥

0 虫子

0 斧头

竞 猜 Guessing Competition

竞猜规则:

1.竞猜时间从文章登上网站页面的时间计算。

2.每个用户只能选择一个区间投注,注数不限。

3.用户竞猜获胜奖励来自其他区间的投注金额,根据投注的注数得到相应的比例奖励。

参与竞猜投注,可与所有获胜用户平分奖池奖金0筑讯币

竞猜 · 浏览量

page view

活动已结束

获奖区间:

您的竞猜结果

请在个人中心处查看

相关文章 Related articles

换一批

|视频推荐
  • 能看见风景的城池—苏州高新区文体中心

  • 世上最大木结构建筑,如同一朵蘑菇云,功能让人惊艳!

打赏

×

浇水

30筑讯币

赠送数量

小计: 9600筑讯币

×

赠送成功!

赠送记录可在消息中心查看

已扣除 30筑讯币

竞猜

×
请选择竞猜区间
  • 0-500
  • 501-800
  • 801-2000
  • 2001以上
请选择竞猜注数,每注为500筑讯币
  • 1
  • 5
  • 10

需支付 500筑讯币

×

已扣除 349筑讯币

竞猜结果请关注倒计时

竞猜排行榜

Ranking List

请选择举报原因

  • 违反国家法律规定

  • 垃圾文章

  • 广告

  • 其他原因 :

    0/140