关于 linux 驱动 的 学习

        很早就想写个技术贴,关于 linux 驱动开发的事情,从大学毕业到现在有两年余载,从毕业开始,就一直在做 android 驱动开发的事情, 由于自己大学本科的专业是电子信息工程,对于计算机方便的知识很匮乏,于是我好好地学习了 (美)Brian W. Kernighanc程序设计语言》第二版、Mark Allen Weiss (维斯) 《数据结构与算法分析:C语言描述(原书第2)》、Randal E.Bryant David O'Hallaron《深入理解计算机系统》, W.Richard Stevens Stephen A.Rago UNIX环境高级编程》,科波特 linux设备驱动程序》,只要好好地把以上这些书,好好地学完,你就已经可以成为一个水平比较高的linux程序员了。当然我最为推荐的书还是《深入理解计算机系统》,相信我没错,看完了,你绝对会有很大的长进。

      然而两年过去了,我深深地理解了工作的局限性,我只熟练掌握了 linux 驱动的相关写法,就差不多可以胜任每一个模块,无论蓝牙、 wifi、显示屏、触摸屏底层驱动的调试。至于每一个模块的深度是远远无法涉及的,似乎对于一个做手机的人,也没有足够多的精力去理解这些事情,这也就是说市面上做android驱动的人,其实水平都不是很高。

      从 2013 9月开始,我开始学习做 FPGA,我终于理解了硬件的好多知识,以前自己对于代码的理解真的不够深入。这对于做驱动的人真是一个很好的机会去了解一些芯片的知识,我逐渐开始理解芯片的工作模式,终于深深地理解了内存。不过比起 linux驱动开发,我更喜欢FPGA,因为我很希望了解最最核心的原理,不然对于一个做技术的人来说,总感觉不够踏实。我希望自己能够做好这一切。

      其实 FPGA 的学习,要懂数电、verilog,然后慢慢地上手做项目。只要深深地理解电路运行地根本在于时序, 你就开始入门了!

你可能感兴趣的:(关于 linux 驱动 的 学习)