串口驱动流程

转自:http://hi.baidu.com/zhxust/blog/item/9ca4bcd9a7775ae139012fbc.html

 

1,uart_driver结构体变量的注册,主要是设备号的注册。

2,device_driver结构体变量的注册。

3,device_driver结构体变量里面有一个.probe成员函数
完成端口的添加,从而把设备号与硬件联系起来。

4,添加的端口是uart_port结构体变量。uart_port结构体变量里有一个.irq成员和.ops成员。
即分别是中断号与操作函数集合。

5,.ops成员是一个uart_ops结构体变量。它里面有有类似于.config_port,.stop_rx
这样的对端口进行直接操作的函数。

        

init流程

module_init-->s3c24xx_serial_modinit-->s3c2440_serial_init-->s3c24xx_serial_init-->driver_register

在s3c24xx_serial_modinit里会完成uart_driver结构体变量的注册。

driver_register会完成device_driver结构体变量的注册。

 

 

 

        

device_driver结构体中的.probe成员函数的流程

.probe-->s3c2440_serial_probe-->s3c24xx_serial_probe-->s3c24xx_serial_init_port-->
s3c24xx_serial_resetport-->s3c2440_serial_resetport

s3c24xx_serial_probe完成串口的添加工作。
s3c24xx_serial_init_port为串口分配地址,做好铺垫工作。
s3c2440_serial_resetport则做相关的寄存器配置工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值