嵌入式软件架构 基本知识个人观点.

2019-12-28 17:50发布

嵌入式软件架构  基本知识个人观点.

        1. 为什么要在写程序的时候,考虑软件架构? 今天嵌入式硬件资料更新的越来越快.一个10多块钱的STM32F103VCT6, 就带有256kB flash,48k Ram. 在我们设计程序的时候. 完全可能考虑设计成一个,好一点的架构.

那到底是什么架构了, 所谓的架构,就是一种程序框架(个人观点,不一定对), 这种程序框架,  这个框架,可以根据 软件的特点进行分层, 什么是软件的特点,就是我也不知道.  软件为了可读,可维护, 都是使用分函数模块,分层来设计.

比如说: 我们可以把 程序这样分三层.

                        APP                        ---------->>>应用层(业务层)
              ==============================================
                       APPinterface           ------------->>>应用接口层(底层函数接口封装)
             ==============================================
                      BSP                    -------------------->>硬件驱动层
               =============================================
                如果我们是基于STM32的库,这里还有一个stm32lib


我们为什么要这样分,      为了可读性?  可移植性?   还是可考性,?  可维护性?   可测试性?      这些都有道理?  
但是大家有没有考虑这些说 的都是很表面,  没有说出架构的设计本来应该解决的第一问题,  架构设计目的只有一个, 提高效率,提高编码效率,提高测试效率,提高维护效率,  提高效率就是提高生产力,提高产品利润.
提高效率的目的, 可读性,可移植性,可维护性,可靠性,都是为了软件提高效率而已做的事.     如果我们在做架构设计的时候, 为了达了可维护,可移植性, 却不了解为什么要这么做, 可能会做的过分, 而已导致架构设计过于详细,浪费了时间.
架构设适可而止. 架构设计是持续进行的(重架与调整代码)

        其实简单的理解
        架构设计的直接带来的好处的 就是 ,考虑优先级,可这样分.  第一,可测试性(敢改,  代码分层后,我们可以把业务层代码拿到PC上去测试.) 接着往后,可维护性( 容易改) , 可靠安全, 可移植,可扩展 最后再是性能(合理的硬件选型)
架构设计是为了降低总成本.


        敏捷开发推崇的架构设计过程
         A: 构想(驱动因素) B: 设计(基础架构) C: 输出(设计结果)  D: 持续优化  E: 输出
         
        过早优化是一切的根源.
       
        输出的架构图: 有开发视图(只关心软件,包与包的编译,包..文件夹) 逻辑视图(数据流).
       
        今天学习了一天,好像了写不出来什么分享了.
48条回答
tiger2023
1楼 · 2019-12-30 17:26.采纳回答
挺有道理的 程序模块化是很有必要 大型程序设计少不了需要架构设计
deny
2楼-- · 2020-01-03 10:09
觉得不错,看后有收获
lxm
3楼-- · 2020-01-03 10:13
amxx 发表于 2014-11-11 08:10
话说我只有一个APP和底层驱动 2层;不明白应用接口层是做什么的,硬件抽象,像linux那样把所有的硬件都统一 ...

app interface.是接口层,目的是为了最少知道原则,应用层(业务层)告我我们做什么,但是不需要知道怎么做。 在接口层决定怎么做。  比喻,我们在业务层需要坐保存参数,那么参数保存在eeprom,还是flash。业务层不用管。在接口层决定调用eeprom还是flash储存数据。          就是抽象,  应用层,是关心做什么, 具体怎么实现那是低层的事, 中间封装的APPinterface 应用接口层,目的是可以选择怎么做,
lxm
4楼-- · 2020-01-03 15:18
styleno1 发表于 2014-11-11 08:53
谢楼主分享,请问怎么在PC上测试代码?

正在学习中,搞懂后跟在大家交流
lxm
5楼-- · 2020-01-03 20:59
 精彩回答 2  元偷偷看……
lxm
6楼-- · 2020-01-03 22:35
s1j2h3 发表于 2014-11-11 15:07
怎么实现啊,有没有细节

我也在理论学习阶段
iirfw
7楼-- · 2020-01-04 03:43
谢谢楼主分享,支持!

一周热门 更多>