浅谈MCU模块化编程

浅谈MCU模块化编程

软件设计,完成需求是最基本的,合格的软件还应该易维护可重用。

维护意味着修改,易修改即易维护。

重用意味着不改或少改,最好是不改,无需改动即使可重用。

模块化编程可以有效实现易维护和可重用。

国内嵌入式行业,普遍不太关注软件质量。一方面是由于,嵌入式项目体量小,业务逻辑简单。另一方面是由于过去MCU性能低,太复杂的软件对空间和时间资源的占用较多。嵌入式软件工程师很多又兼做硬件,难免无法面面俱到,代码组织能力普遍较低。写出的代码全局变量满天飞,一个函数上千行。笔者刚入职的公司就存在这样的代码。看代码常常要抽丝剥茧实在头疼。

我们写代码就是要处理依赖和变化。

模块化编程,站在模块的角度来说,要实现模块自己的功能,难免要依赖外部提供的功能(函数,输入信号。。。)。在外部依赖改变时,要保持模块本身的代码不需要改动。这里C语言里好用的工具有两个,宏定义 和函数指针。站在模块的角度外面要根据我给的形式提供给我我要的东西,也就是要依赖倒置。

我们还应该精心设计函数的接口,模块外部应该只依赖模块提供的接口编程,不能用到模块内的状态(属性、变量)。模块内的状态对外部应该不可见(static)。设计接口也可以用函数指针,可以实现多态,不过这是另外一个话题了。

按上面的方式做后,模块本身的实现基本做到了可重用。外部使用了模块的接口,需求不变时,模块外部也能不变。内外的变化不会相互影响,做到了解耦。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值