各路大神,首先小弟先说一下自己的问题:
我现在迷茫在学习步骤上。目前我在看简单的裸机驱动。自己也有板子,照书、照教程自己写裸机程序。基本的东西,像中断、PWM、RTC、UART这类,都看得差不多了。我不知道是不是可以先跳过IIC、IIS、SD之类的裸机驱动,进入Linux的学习,然后再在Linux里学习这些设备的驱动编写呢?
---------------------------问题详述----------------------------------
我仔细说一下自己的情况和问题:
小弟刚开始学习ARM,以前有一些C51的经验吧。目前做了一些简单的裸机驱动的编写和调试,像PWM、UART、RTC、外部中断这样简单的东西。因为基础比较薄弱,没有关于IIC、IIS、TFT、SD卡之类设备的基础和经验。在看这些东西的时候就开始吃力了,甚至MMU都看得晕头转向。
我最终其实是想学Linux设备驱动的。原先我的思路是,先看好全部设备的裸机驱动,再考虑上Linux。但是由于基础薄弱,现在看MMU、TFT、IIS、SD这类东西系看得我晕头转向。我更担心看这些东西的裸机驱动对Linux下这些设备驱动的编写帮助不大,那我不就浪费时间了吗?我看阿南大神的书里写过,熟悉了这些简单的东西就可以开始Linux的学习了,那些关于IIC、IIS、TFT、SD卡、网卡这些东西的裸机部分就可以跳过。但是阿南大神在前言里写过,说Linux设备驱动就是比裸机驱动多了一些框架,要想成为优秀的ARM Linux驱动工程师必须先要是一个优秀的ARM处理器应用工程师。多熟悉外设很重要,那里的东西才是千变万化的。
于是我有些迷茫了。我不知道我是应该先把这些外设的裸机驱动都学明白之后再上Linux呢?还是先把一些基本的裸机驱动搞清楚,然后直接上Linux,在Linux里再深入研究一些复杂外设的驱动呢?
我承认我有些着急想跳步的心理,我承认这种浮躁的想法是很不好的。只是自己还有一年半就毕业了,到时候身上没有写打人的家伙,混口理想的饭吃都费事,还咋养媳妇儿啊?起码招聘的时候人家问我会啥,我得说“我会裸机驱动开发和Linux下驱动开发”才有点儿分量啊。我可以先不考虑学得有多精,毕竟学习时一辈子的事儿,就算工作了也才只是个开始。不过我只是想在有限的时间内尽快提高自己的进度。我知道勤奋是必不可少的要素,我也一直在努力。可除了拼命,我也想向各位大神求得一些科学合理的方法。
我不知道我的这种思路对不对,求各路大神不吝赐教,小弟感激不尽!~~ |