使用ceedling和CMock来mock嵌入式硬件接口

在你的嵌入式软件里面如何进行单元测试?如何解决硬件依赖的问题?
这其中的秘密就是mock。
我们可以mock我们的硬件接口,那样我们就可以不需要依赖硬件进行测试。这将允许我们在硬件还没有准备好之前就可以进行测试。

计划

如果我们开发一个嵌入式MCU软件,我们通常会使用MCU相关的外设,像SPI,I2C,TIMER等。

对于每一个硬件接口,我们需要一个对应的软件驱动模块,这部分模块会依赖于对应的硬件(比如:进行硬件寄存器访问)

我们可以mock这些硬件接口,消除这些硬件依赖,并允许我们对应用部分进行单元测试。对应的,我们可以使用宿主PC来编译我们的软件,而不是使用对应的MCU的编译工具来对程序进行编译。
为了帮助我们创建这些mocks,我们可以使用mocking框架来实现。这个工具目前可以包含在ceedling里面,名为CMock。其允许你从对应程序的头文件里面创建各个软件模块的mocks。Ceedling可以提升使用CMock生成mocks的体验,非常的简便快捷。

测试示例

假设我们已经创建了一个Ceedling的工程。假想我们目前需要与一个外部的温度传感器进行通信。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值