作为程序员,我觉得如果要走的更远必须要成为工程师,毕竟年龄和资历都摆在那里了。所以就让我这个老程序员浅谈一下嵌入式软件架构设计。
我参考的也是一篇博文。原图如下

这应该是是一个物联网小车的项目,我就根据自己的能力分析下某个接口的设计。
我心中假设的流程是小车采集加速计数据后通过BC95上传,通过控制算法来控制电机运作。
硬件驱动层
nb95 通过串口通讯,所以linux已经正确加载了uart驱动,并且提供标准的API。比如open read等
加速计通过i2c通讯,而且linux也提供了标准的API。比如open read等
电机通过继电器控制,假设也提供了标准的API。比如open ioctl等
哈哈,看来这一层啥也不同干哦!
功能模块层
网络通讯模块
接口为net_open net_read net_wirte等
加速计模块
接口为acc_open acc_read acc_wirte等
电机模块
接口为ele_open ele_read ele_write 等
这些模块也就调用了linux的标准API 然后可以加入自己的数据结构。
业务逻辑层
通信业务
何时打开,何时接收,何时断开,故障如何处理
电机控制业务
何时控制 ,谁去控制,故障如何处理
应用
直接调用业务
总结
大家看到我这个程序员的水平了吧,我也是佩服自己,希望能有大神对我指点一二。