嵌入式设备的板级硬件接口管理

本文探讨了在嵌入式设备开发中,如何通过创建board配置文件来管理硬件差异,并提出了使用C++的继承和多态特性来提升代码复用性和灵活性。通过定义基类Hardware和不同的子类,如HardwareNFC和HardwareRFID,实现了针对不同产品硬件功能的定制和管理,使得系统配置更加高效和易于维护。
我们开发嵌入式设备时,每个板子的硬件配置都不同。

1,   按键、LED、高低电平、外部中断等使用不同的GPIO。
2,UART、I2C、SPI等外设使用的某个片上资源,比如电源管理芯片使用了I2C-1,一个传感器使用了I2C-2.
3,不同的功能或操作模式,还需要对MCU或MPU的片上资源进行不同的配置,比如这个GPIO是默认上拉,低电平中断,另一个SPI设备工作频率50MHz,使用了某个GPIO做片选信号。

这些硬件的配置根据硬件设计而来,软件需要根据硬件设计来进行系统的配置,才能使系统正常工作。
其实在一般的系统设计中,硬件功能和软件功能之间,会有一个对接接口,我们叫做hal层,hardware abstract layer。

在简单的嵌入式项目编程中,我们可以定义一个board_projectname.h和board_projectname.c文件,也可以自己取合适的名字。
然后将每个产品的板级的一些信息定义和接口,比如GPIO的定义,片上外设的使用情况,都放在这个头文件里,其他模块可以引用这些信息。而c文件里可以放一些板级硬件相关实现。
这呢就是个初级的使用方式,首先的缺点是不能复用,每多个项目,所有东西要重新定义一遍,费时费力。

当然也可以把里面一些内容拆分一下,分成多个文件,方便组合,公共的信息各个项目都可以引用,达到复用的目的。

这样把硬件功能拆分成两部分,项目独有的和所有项目公用的。

只是这样的拆分不够灵活,可能会经常改动,那些公有功能在某个项目可能就变成特殊了呢。

如果用面向对象的类和继承的方法,就能更好的管理多种产品的硬件功能,完成分类和分级,功能逐层叠

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值