一开始,是从事单片机工作二年,主要是单片机编程。继而从事嵌入式硬件开发至今,也有4年了,感觉嵌入式硬件普片待遇不好!
加上最近工作有了很大的危机感,做不上管理岗位,只能吃技术这口饭了。决定学习linux嵌入式驱动开发。本人初学,路过的高人请不吝赐教,让小弟少走些弯路,本人感激不尽。
现在28岁,好像有点晚了,准备学习半年至一年,再选择嵌入式开发公司。
先总结下自己的基础:
1.懂C,曾写过单片机汇编程序。因为从事过单片机编程工作,C虽然说不上精通,熟练应用应该还可以。
2.对底层硬件比较熟,毕竟从事几年嵌入式硬件开发嘛,对ARM,单片机架构比较熟。
3.学习过一段时间的UCOS-II,做嵌入式硬件的时候,自己学习了一段时间UCOS,然后玩过一段时间,在自己产品的平台上(ARM9,CORTEX-M3)写过驱动,用起来不成问题。
大概就这些
我知道学习linux需要的知识面很多,我想从以下步骤来:
1.C程序设计 教材,再看一片,我觉得基础一定要牢。
2.linux内核完全注释0.11版的,前四章能看下来,虽然汇编不是很懂,但是还是能看下来,大概的了解还是可以,从第五章 内核进程与系统调用开始 感觉吃不消了,看不下去的感觉,我觉得以我现在的基础,还看不了后面的,所以大概看了后面的文件系统,内存管理等等,有了一个大概的了解,觉得不再看了,以后再来。
3.因为要看linux 0.11版内核源码,所以看了下微机原理,硬件部分基本没问题,着重看了80386保护模式,大概了脚下80386的汇编,所以才能看下0.11版内核的前四章。
准备接下来学习
4.SHELL 程序
5.MAKEFILE 编程
6.买块开发板,暂定ARM9的,跟着学习下内核移植和驱动编写。
7.看linux设备驱动程序 深入了解linux内核等书籍。
大概这么多,上班时间不能耽误太多时间。半年后我再来回帖,希望那时的我能满怀信心的说:linux驱动编程和内核移植 我已经登入大堂了。
|