免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2106 | 回复: 7
打印 上一主题 下一主题

咨询:做驱动应该看哪些文档? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-13 11:00 |只看该作者 |倒序浏览
        最近正在学习驱动,关于Switch芯片的一驱动,组长给了我很多资料(包括源代码)。我问组长应该怎么看,组长就告诉我从 module_init() 里面的 function 慢慢追。。。

     可能这样是培养我的自我思考的能力吧。

     资料包括:
         (1) 源代码
         (2) 和此 Switch 芯片相关的其他文件(很多,除了datasheet之外还有很多其他的pdf,乱七八糟的东西,正是因为太多,所以才不知道除了Datasheet应该看什么东西)

     这个版块肯定有很多做驱动开发的,所以大家依据自己的经验给小生指指路。Thanks.


     我先说说我现在的情况吧:
         Datasheet里面基本上都是讲这个Switch的工作原理和相关控制(例如:VLAN 和 QoS相关控制),目前这份文档看得差不多了,相关寄存器也基本了解得差不多了。
     但是,一看到程序就很蒙,主要表现在:
         
         软件部分 和 硬件部分相连的部分感觉蒙,例如,如图1:
             图中的程序有很多都是对PIN进行设置和操作的,但是目前对各个PIN脚的功能不清楚(这应该算是硬件原理没有搞懂吧...)(问题1:此时应该看什么文档?大约为什么名字?)

         

         我自己的看法是:
         ------------------
                    应该先把硬件的基本电路图看明白了,把芯片的各个管脚搞明白了,再看驱动。【问题2:我这种想法对吗?】
     对前面问题进行简单总结下吧:
        【问题3】
             拿到一个芯片后,肯定先要看datasheet,关于此芯片的用法和相关寄存器(这一步我倒是做到了),我还应该看哪些文档呢?或者说我还应该哪些其他类型事情?
   

     为了使得大家理解我的意思,说话稍微罗嗦了些,希望大家见谅,多多指出指导意见,谢了

GIP.JPG (40.65 KB, 下载次数: 18)

GIP.JPG

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2009-08-13 11:03 |只看该作者
首要的就是datasheet。其次,如果一些资料是介绍如何编程使用设备或者驱动的话,那也要仔细看一下。

同时,你还得有Linux下设备驱动的一些基本知识。

论坛徽章:
0
3 [报告]
发表于 2009-08-13 11:14 |只看该作者

回复 #2 Godbach 的帖子

谢谢版主的回复,您的速度可真是快啊,嘿嘿。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2009-08-13 11:26 |只看该作者
原帖由 qiangqiang02 于 2009-8-13 11:14 发表
谢谢版主的回复,您的速度可真是快啊,嘿嘿。


呵呵,刚好赶过来看到。我最初做这些东西的时候也很迷茫,除了别人告诉我有一本LDD2可以看之外,就剩下自己在哪里瞎倒腾了。最后也只是一知半解啊。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
5 [报告]
发表于 2009-08-13 12:01 |只看该作者

回复 #1 qiangqiang02 的帖子

单纯的硬件驱动和Linux下的模块驱动有很大的差异。
Linux下编写模块驱动,首先必须具备编写硬件驱动的能力;其次,要对Linux底层调用机制,模块编程等有比较深入的了解,如果要做得更深的话,对linux内核也需要足够的熟悉。
从资料上来说,datasheet是第一步,另外,LDD3,ULK等书都是难得的好书。

论坛徽章:
0
6 [报告]
发表于 2009-08-13 14:11 |只看该作者
还要了解你所有物总线,如你要开发驱动的设备是通过PCI/PCIe连接、USB连接、还是HPI连接等。例如PCI看一下PCI Local Bus Specification,实际上目前做PCIe设备也是基本上只用PCI的兼容部分。
CPU一侧对于Linux平台基本上已经封装了,主要是看一下内核中相关的文档,如讲DMA的。但如果是做一些嵌入式平台的,有时候还需要了解一下CPU的一些相关知识。

论坛徽章:
0
7 [报告]
发表于 2009-08-13 15:15 |只看该作者
你提到,“目前对各个PIN脚的功能不清楚”,我感觉好像你只看了datasheet而没有看原理图吧。结合核心芯片的datasheet里的reference design看原理图。一般原理图都是依据那个画的。还有,不是所有管脚的功能都需要你去“研究”,一些初始化配置的寄存器,在整个产品的运行生命周期中只初始化一次就好了,所以,一般芯片厂商还会带有一些demo code,这些demo code不见得是什么OS上的driver,可能就是一般单片机上跑的小程序,简单初始化一下,然后fire的那种,这种demo code也要仔细读,帮助非常大。

论坛徽章:
0
8 [报告]
发表于 2009-08-14 10:50 |只看该作者
OK,非常感谢楼上几位的忠诚建议,目前正在寻找突破口,痛苦ING....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP