需要写一写了

好入没有写过文章了。有很多原因。

一个是原来windows live搬过来了。另一个是自己的空间到期了,域名也到期了,不想再续了,还是玩玩现成的吧,自己弄的没有时间去打理了,长草了。

在blogbus,csdn,cnblog上都把文章搬了一部分,总之整的有点乱啊。

今天 又重新整理了一下,打算还是要写点东西的,要不然手痒痒。

再者现在也挺忙的,工作以后,每天都挺累的,没有那么多的时间去写写自己的东西。

最近没有那么忙了,打算稍微捡一捡。

好了,屁话说完。最近干了点啥吧。

刚开始工作的时候一直在看书,lkd,ulk,ldd,还买了精通linux驱动的中文版,英文的有时候看得有一点吃力。买了一本宋宝华的驱动书,还不错,看了一大半,把前面的都看完了,后来讲各个驱动的暂时没有看,计划慢慢来看。

看的书有点杂,最近在精读lkd的第三版,英文版的。

刚开始上班的时候每天看看算法,自己写写小的module,感觉进步很快,看内核代码也比以前更快了。device model也了解得差不多了,现在感觉改个模块,看个模块还是挺有方向感的,虽然有时候要花比较长的时间,但是能掌握得了大方向,发现对内核的框架熟悉了以后,看啥都轻松了,一开始从linux服务管理转向内核的时候,感觉有些高深,看一个函数,就一直跟啊跟,最后跟丢了,有时候感觉看明白了,之后又忘了,不知所云,有种花时间了但是没有效果的感觉。现在轻松多了,所以现在得出个结论,一开始了解框架很重要,了解大致原理很重要,所以发现lkd是个好书,所以决定要精读这本书。第三版的书虽然在印刷质量上都不给力,但是内容给力即可,哈哈。看着就很爽。

最近工作在干啥?

刚开始的时候在搞充电,首先是7625平台的充电,这个部分在高通的modem里面,不喜欢,不喜欢与linux kernel没有多大关系的东西。后来搞marvell 920平台的充电,这个是内核的pm module,不错,挺喜欢的。现在把marvell充电这块搞得很明白了,最近修改了很多bug,在修改bug的过程中,对流程了解得很明白了,改bug是一个很不错的东西,虽然有时候也比较纠结。最纠结的就是有时候硬件平台做得有问题的时候还得靠我们驱动来弥补,当然这个擦屁股的活也是没有办法的。反正最近充电搞得比较给力就是了。这一部分没有什么东西,就是一些电池电压,电流,开路电压,电量什么的计算方法,怎么样能得到更准确的值,充电时的过压,过温保护,限流控制等。

还干啥了?

按键和触摸屏。

现在基本所有7625平台的按键和电阻触摸屏都扔给我调试了。总结一下,都是input_dev吧。按键方面主要是gpio的,当然屏上也有带按键的。gpio的按键主要就是gpio button和matrix矩阵按键,反正键不是很多。这两个都使用了input_dev layer,然后上报给event layer,再交给上层应用去处理。再以后,我就不了解了。

按键上报的EV_KEY,通过input_report_key(),也就是对input_event()的封装,传进去的event就是EV_KEY。接着input_sync,就可以完成一个按键事件的上报了。

触摸屏方面,上报EV_ABS,也就是上报一个位置的绝对值,也是使用input_event()。先报ABS,再报TOUCH 的EV_KEY事件,就说明是触摸了,哈哈。而触摸屏上的按键我们实现的方法是通过确定屏的一个区域来上报一个EV_KEY事件。大同小议。

而在这些玩意的probe初始化的时候,要初始化input_dev的几个keybit,来确定设备支持的事件类型,区域等。另外还要set一些东西,有点记不得了。

这些东西感觉自己思路还是挺晰的,现在写一写正好可以理一理,现在没有在看代码,可能有些写得不太对,那也无所谓了,一看代码就知道写的是啥了,思路清晰,框架明白即可。

哦,对了,鼠标啥的应该上报的事件是EV_REL,也就是relative,相对的值,实现也应该是差不多的,具体没有看那个部分的代码。

工作方面,差不多就这些了。

另外,加了lkml,内核邮件队列,时间多的时候下班回来看看队列里面大家都在讨论点啥,大部分看不懂,能看懂一部分就很高兴了。前段时间看到google又在内核里大量提交代码了,之前被GH踢出去过一次。当然,看到别人提交patch也手痒痒,心痒痒,但是水平不够啊,提不了patch,但是未来的有一天会的,被ACK的那一刻应该会异常兴奋的。

理想就是能为内核贡献代码,为开源做些贡献,应该不是很遥远的理想,但是至少还得努力。

写得差不多了,该睡觉了,希望在我的第二个0x10岁的时候,能在Linux kernel中有所见树。

哈哈,好长时间没写过了,一写就有些乱。一大堆啊。

你可能感兴趣的:(写)