驱动两个串口的问题
我是菜鸟,现采用2410平台,linux2.6内,现在要驱动两个串口(uart0和uart1)。uart0是linux内核就已经把驱动做好了的(uart0用于超级终端),对于uart1.要么自己写一个驱动程序模块加载进内核,要么直接在linux内核中修该部份代码来实现,现在有两个疑问:
(1).怎么在内核里直接修改啊。看了半天内核中关于串口的代码,无从入手。有做过的吗?能具体说下要吗
(2)如果自己写驱动的话,我是想用串口来进行IP数据包的传输,如果不要中断,而是直接一字节一字节地收发可以吗(即仅仅实现最简单的串口)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
看一看uart0是怎样实现的吧
一个板子上的两个同类外设,驱动一般是不会分开写的,基本是通过描述外设的数组套用同一个驱动的,用户只通过ttySX标识就行了。 用简单的echo /cat试试就知道两个口是不是work了。
串口传IP包也不是驱动的事情,支持PPP协议就行了,内核中有的。
是的,可以看一下/dev目录下是否有ttyS1这个设备
S3C2410_VA_UART 是静态映射后的虚拟地址,可以直接使用吗?S3C2410_PA_UART 是寄存器的物理地址,使用它要ioremap动态映射成虚拟地址才能使用。
那么我在开发的时候用哪个呢?两种方式都可以吗?哪种情况下使用哪一种呢?
静态的还是通过ioremap没关系,只要任何一种做了映射就行了,对寄存器的操作肯定是要映射才能作的。
静态映射是启动之始就为系统做好的,ioremap在驱动中实时写的,多数在probe中用。
谢谢了啊!
如果自己写应用:open第二个串口,在此基础上send recv,不过send recv时数据协议要符合tcp/ip
[ 本帖最后由 dreamice 于 2008-12-30 18:05 编辑 ]
为什么要符合TCP/IP?