linux下uart驱动的开发流程

  UART驱动流程,s3c2410为例

初始化

1 定义一个uart_driver的变量并初始化好(无需提供tty_driver).

2  uart_register_driver()来注册这个驱动,在这函数里它会分配一个tty_driver对象,并初始化tty_operationsuart_ops, 这是serial-core.c提供的统一的UART操作函数

3 调用自己定义的一个init函数来注册一个platform_driver对象, 这样可以让系统调用我们的probe函数和disconn函数等. 在这些函数里我们可以做一些硬件方面的初始化和卸载操作.

4  probe():  这里我们先初始化硬件,接着调用uart_add_one_port()添加一个UART设备,(这里事先要定义一个uart_port对象,我们一般把这个对象内嵌在我们自己的结构里面, 并设好portops函数表)

操作

1 用户同过在设备文件上调用open,close,write等系统调用来操作我们的设备,write为例,它会接着调用uart_write()(在注册驱动时设置的).

2  uart_write()会接着调用port->ops->start_tx()即我们port上的操作函数接口.

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值