嵌入式Linux驱动入门经历分享

嵌入式Linux驱动入门经历分享

最近总算是在Linux下点亮了第一个灯,来分享一下我的学习经验。
最开始接触Linux是在高中(职高),当时只是一时兴起享学习一下,买了韦老师的JZ2440开发板,然后就跟着教程学,最后是连开发环境都没搭建好,板子就吃灰了。现在还清清楚楚的记得装ubount的样子,完全就是不知道该怎么操作,ping不上之类的,从入门到放弃。
我其实是万万没想到在多年后我还会重新在当年跌倒的地方爬起来,原因很简单,被生活逼得没办法。这次我成功的熬过刚开始的那段时间的主要原因有下面几点:
1.换了一个开发板平台。
2.相对于之前有了更详细的学习资料。
3.相比之前电脑好多了。
4.对单片机的理解比之前深了。
嵌入式的入门第一步就是搭开发环境,装虚拟机,Ubuntu,编译器等等工作,这个相比于单片机装个IDE还是要复杂一些的。但是现在网络上有很多很棒的资料,这里就不介绍具体的搭建方法了。
第二步就是裸机学习,我有单片机的基础,所以这一块不是很吃力,嵌入式的裸机学习不需要像单片机那样,记住每个寄存器的位的功能,那太耗时间了,也不要在Makefile,链接脚本等上面死磕,太较真会消耗大量的时间,学习嵌入式驱动最终目的是要基于Linux的。并不是说上面的不重要,而是刚开始没必要死磕。那具体要做到什么样子呢?我总结了以下几点:
1.GPIO作为输入输出
2.GPIO中断
3.定时器
4.定时器中断
5.串口
其实不管是嵌入式系统的裸机还是单片机,一开始拿到一款新的芯片都是从上面这些入手的。
关于Makefile和链接脚本,我都采取用到才学的策略,但是,每一个裸机实验的Makefile,我没复制一个字,全部手写的。这会帮助我熟悉脚本语言的语法同时也可以锻炼一下打字速度。
嵌入式系统裸机里面需要使用到汇编语言,这个也不要感觉恐惧,其实真正需要手写它的地方不多,同样前期可以采取用到再学的策略。
第三步uboot移植,Linux内核移植,以及根文件系统移植。这一步我在学习的时候踩了一个坑,就是跟着教程一点点的分析Makefile,源码等,前期完全没必要,这些内容我认为应该放到后面进阶的时候学,一开始整这个真的很崩溃,见效慢,很难懂,慢慢的对学习的热情和信心都是一种打击。嵌入式驱动的学习反馈是很慢的,所以没必要再人为的让反馈更慢了。入门阶段,跟着改就好了,只要成功移植,那就是一种反馈,第一次成功移植的时候还是很开心的。也让我跟有信心学好嵌入式驱动了。
当前面三步都完成以后,就可以进入驱动学习阶段了。这个阶段我以后再慢慢的把我的学习经验分享出来。

你可能感兴趣的:(嵌入式,linux)