要想学习嵌入式Linux应用层的开发,首先要区分好应用层和驱动层之间的关系。我们观察以上示例代码,发现作者还是很规矩地把驱动层程序编程了函数的形式(例如write_add_dat_24c02()),但应用层和驱动层的程序终究还是存储在同一个c文件中。这样的分层有一个好处,就是对于调用同一个硬件的应用程序,他的驱动层可以不用修改,只修改应用层程序就可以了。
要想学习嵌入式Linux应用层的开发,首先要区分好应用层和驱动层之间的关系。我们观察以上示例代码,发现作者还是很规矩地把驱动层程序编程了函数的形式(例如write_add_dat_24c02()),但应用层和驱动层的程序终究还是存储在同一个c文件中。这样的分层有一个好处,就是对于调用同一个硬件的应用程序,他的驱动层可以不用修改,只修改应用层程序就可以了。
在本人前一篇博文《驱动开发:通过ReadFile与内核层通信》详细介绍了如何使用应用层ReadFile系列函数实现内核通信,本篇将继续延申这个知识点,介绍利用PIPE命名管道实现应用层与内核层之间的多次通信方法。管道的本质其实是一段共享内存区域,多数情况下管道是用于应用层之间的数据交换的,其实驱动中依然可以使用命名管道实现应用层与内核层的直接通信。