ok6410学习笔记(18.linux串口驱动程序设计).docxVIP

ok6410学习笔记(18.linux串口驱动程序设计).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ok6410 ok6410 学习笔记( 18.linux 串口驱动程序设计) 串口这节的资料真的是少的可怜啊 ~~~ 国嵌这节讲的真 心不敢恭维,网上的资料基本都是一个样子,不是说说 s3c6400.c 和 samsung.c 这两个文件就是说说驱动的结构。 是些意义不大的东西。 首先,我先说说本节的学习资料: 这本tty1.lt;linux 设备驱动开发详解 gt; 宋宝华 这本 tty 说里面对 uart 的基本驱动结构讲的是比较细致的是深入 设备驱动讲解的,但是缺乏从驱动到应用的一贯性。 国嵌视频和 ppt 主要是将驱动的框架进行了大 致讲解,即终端设备的基本概念 3.lt; 精通 linux 设备驱动程序开发 3.lt; 精通 linux 设备驱动程序开发 gt; 宋宝华 译 有一个详细的 uart 驱动程序 可以和 s3c6400.c 和 samsung.c文件进行对比学习 4.linux 内核源码包括 4.linux 内核源码包括 s3c6400.c samsung.c serial_core.c 文件等 serial_core.c 文件等 5.lt;linux 高级程序设计 gt; 杨宗德 第七章 这本说的是对于终端串口的应用开发。可以把底层驱动和应 用进行联系。 6.lt; 嵌入式 linux 应用开发完全手册 gt; 韦东山 我觉得这节对终端的概念讲解还是挺好的,但是对于串口 我觉得这节对终端的概念讲解还是挺好的 ,但是对于串口 驱动讲的挺一般的 因为主要是讲 8250 的 (可以不看 ) 本节的学习目的: 1.能够使用 ok6410 上面的串口进行通信, 即应用程 序的开发。 2.理解 uart 驱动结构和 tty 驱动的结构。 这个结构很 复杂理解就可以了本节保留问题: 复杂理解就可以了 本节保留问题: 最大的问题就是下面的问题一! !!本节知识点: 1.本节最大的知识点就是 uart 的驱动结构,我们就先入手对 结构的分析 (分析的是 linux 中串口驱动的结构 )。 第一:首先要知道在 linux 第一:首先要知道在 linux 中串口驱动是终端设备 的一种,终端设备是字符设备,所有串口驱动是字符设备驱 动,是通过 dev 目录下的文件节点对设备进行操作的。这样 我们就有了一点初步的从驱动到应用的想法。 第二:我们看下 s3c6400.c samsung.c 6410 串 口驱动文件。这个两个文件是让我最迷糊的两个文件,初 看跟什么 uart_driver uart_op uart_port 一点关系都没有。 那是因为好多 samsun 那是因为好多 samsun g的片子共用一套串口驱动,什么2440 , 6410 等,所以就在这个层次上有进行了一次封装,就有了 s3c6400.c 这个文件了。 第三:对于s3c6400.c samsung.c具体的我还不是 很懂,但是大体上我可以猜一下,应该是在s3c6400.c 很懂,但是大体上我可以猜一下,应该是在 s3c6400.c 中通 过类似 s3c6400_uart_inf 中的 type 变量,告诉驱动类型应该 是 s3c6410 的,然后改了 uart 各种寄存器的基地址,让这些 寄存器地址变成了 6410 的,并且也调用了 6410 的 uart_port 和 uart_driver 。因为 uart_op 的功能都是一样的, 所以共用同 套 op 。 第四:其实自己也可以写这个结构的 uart 驱动,步 骤为 1.填写 uart_port 和 uart_driver 填写 uart_driver 主要 的目的是为了在注册 uart_driver 的时候能够创建出字符设备 其实就是注册一个 uart 的字符设备 填写 uart_port 主要是 为了在往对应 uart 驱动中添加 port 的时候能够跟 uart 寄存器 (即基地址),中断,fifo建立联系,但是同时也产生了问题一: 因为在 s3c6400.c 文件中,对这一步进行了封装,我没有找 到对应 6410 的 uart_driver 和 uart_port 赋值,不知道基地址 应该填写那个基地址,是否进行 ioremap 映射,也不知道什 么 console , tty_driver 什么都进行赋值。 2.uart_op 结构填写,然后 uart_register_driver() 对 uart_driver 进行注册, uar1_add_one_port()对uart_port进行注册,这里出现了问题 二: uart_op 中的函数都分别有对应的功能, 这些函数应该是 给上层 tty 驱动调用的。但是具体都是怎么调用的,都在那 和 read 函数和 tcsetattr 等终端

文档评论(0)

zhaohuifei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档