天嵌 ARM开发社区

 找回密码
 注册
查看: 3416|回复: 3

Linux学习心得和输入子系统框架总结

[复制链接]
cestlavie007 发表于 2013-2-4 12:25:50 | 显示全部楼层 |阅读模式
本帖最后由 cestlavie007 于 2013-2-4 12:27 编辑

    首先诉一下苦:'(。 为了Linux驱动,我憋了很多年,总是在门外徘徊,最近下狠心买了韦东山大神的视频,结合论坛里的前人经验,终于开始步入正轨。    下面说正事儿{:1_1:}。这几天搞了一下Linux的输入子系统,觉得它很强大。结合平台设备驱动架构思索良久,发二者现思路极其相似,并且很多驱动也符合这一思路。
   顿时感到, 驱动的分层分离架构思想真的很重要。
    对于个人学习而言,在不理解这一思想的时候看驱动总是云山雾罩的:Q,但是一旦理解之后,发现看驱动轻松了好多:lol,代码已经可以一块一块地看:victory:,而不是一行一行地啃:L。
    对于Linux设备驱动来说,这种分层分离的结构化思想使得驱动可以将相对稳定的驱动框架部分和可能发生变动的硬件设备驱动分离,极大降低了耦合,挺高了灵活度和可移植性。
    前几天结合论坛里的神贴

http://www.armbbs.net/forum.php?mod=viewthread&tid=10906&highlight=%CA%E4%C8%EB%D7%D3%CF%B5%CD%B3
分析了学习了一下。得到了很多感悟和心得,发现以前学习驱动存在很多误区,如今终于拨云见日,找到了学习驱动的窍门。小弟不敢吝啬,也不确定自己的想法是否正确,所以在这里和大家分享,真心祈求高人指点不当之处:P。
=======================================================================
1、现在我觉得Linux设备驱动的学习其实就分为两个部分:架构知识和硬件知识。中间如果遇到一些内核API,比如等待队列或者内核定时器等等,这些东西只是为驱动的正常运作提供一种方法,而与驱动本身无关。



2、为了更好地学习Linux驱动,可以适当地看一下裸机代码,跑一跑、追一追。但追代码的深度一定要控制好,适可而止,了解了硬件工作原理和寄存器设置就行了,千万别去追一些八竿子打不着的东西,什么启动代码啦,ADS设置了啊,那东西就算了,不然你就死在裸机测试代码里出不来了,这叫什么?——不分方向,南辕北辙,误入歧途,本来是要学驱动,到最后变成学ARM体系结构了。

3、看代码目的性要强,着重关心自己关心的内容,不关心的,哪怕再精华也应该跳过不理。为了掌握Linux驱动框架的运行机制,可以适当地追Linux内核源码,但也要适可而止,否则也会在Linux内核的大森林里撞上鬼打墙,非死在里边不可。更多时候,看驱动架构是看函数名字就能知道它在干什么,看到这个份儿上就够了。如果都追到什么加入链表的函数了你还往里追,那你就是浪费精力、找死了。

4、其实这一条是对上边心得的总结。我想这也是我把自己困在驱动门外这么长时间的原因——方向和目标很重要。要时刻搞清楚自己的目的是什么。想学驱动就老老实实看驱动,追代码要有个限度,往下别追ARM体系结构、往上别追内核的核心代码。定力很重要,不能贪心,如果什么都想学,最终只能什么都学个皮毛,比如小弟我现在这个熊样:L。。。

最后奉上个人对输入子系统的一点小心得。前面说过,群里已经有大神写过总结教程了,我这小打小闹的不能算是教程,只能算是一个小小的补充,求高人指点哈~


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
sunrise 发表于 2013-2-4 13:34:53 | 显示全部楼层
顶。。。。。。。。
天外来客one 发表于 2013-2-28 23:10:17 | 显示全部楼层
太有指导意义了:lol
 楼主| cestlavie007 发表于 2013-3-1 21:15:21 | 显示全部楼层
天外来客one 发表于 2013-2-28 23:10
太有指导意义了

:handshake:D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-28 00:52 , Processed in 1.093750 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表