串口驱动开发流程说明
在module_init标识的初始化函数中,调用uart_register_driver,完成uart_driver的注册,主要设置串口字符设备文件名称的前缀、串口个数的设置等;
创建一个platform_driver,在platform_driver的probe接口中,获取待注册串口信息的资源信息,并定义struct uart_ops中各函数,并调用uart_add_one_port完成uart port的注册;
为每一个待注册的串口设备,创建一个platform device,并传递该串口相关的信息(若内核支持设备树,开发人员无需事先该步,只需在设备树中增加相应串口信息即可)。
基本上完成以上几步,即完成了一个串口驱动,其实最主要的就是实现struct uart_ops中各成员函数指针。下
一章我们来完成一个虚拟的串口设备及其驱动。
串口子系统架构总结
串口子系统针对所有串口,完成了统一的tty_driver的变量的实现,而将每一个串口需要实现的内容全部移至uart_port、uart_pos中,而无需实现tty_driver的操作接口、tty_port的操作接口(均由串口子系统内部实现)。相对于tty子系统而言,确实方便了一些。
————————————————
版权声明:本文为CSDN博主「jerry_chg」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lickylin/article/details/105851162