|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
闲侃学习路
, s2 O" b5 k, `; a 入坑学习嵌入式的大概分两路人,一路是学计算机的本来搞得软件,却对嵌入式产生了浓厚的兴趣,所以入坑了;还有一路人就是像我一样,本来是搞单片机的,因不断追求,入坑了嵌入式。入坑了嵌入式不久就会卡住,为什么呢?无非是搞计算机的不懂硬件,搞硬件的无法理解计算机专业的东西,搞得上不去下不来的感觉。其实我个人觉得,嵌入式方向分的很细,比如说,搞计算机的完全可以不用理会内核驱动和BootLoader开发,只需要去搞顶层应用程序即可,搞硬件的也没必要纠结顶层软件怎么设计,学会BootLoader定制,内核环境部署,驱动开发即可,在自己的基础上去努力学习,如果还要学习更多的知识就需要慢慢积累,一点一点学习了。在学习路上,也许你会碰到有很多人说,搞什么BootLoader,厂商做好了,搞什么驱动,移植厂家做好的就行了。我不建议以这种思想去学习嵌入式,为什么呢?原因很简单,厂家提供的BootLoader是谁做的,厂家提供的驱动又是谁做的,肯定是人啊!既然是人做的,我们就有学习的必要,那些人为什么不能是我们呢?我们搞单片机的,本来就对底层代码有着浓厚的兴趣,学习BootLoader开发,驱动开发,与我们当初学的单片机和专业密切相关,所以如果你原来是搞单片机的,就不要听一些人说什么别人做好了之类的话,什么别人都做好了,要你干什么?相反的,如果你是学计算机的,不理解寄存器如何配置,不理解驱动如何开发,看不懂电路图,那自然而然的就顺应了厂商都给你做好了这句话。所以我还是觉得,当初搞单片机的应该继续搞底层开发,搞计算机的应该接着搞软件。当然自己能力大,也可以都学习,都是可以的,根据自己情况定为好自己的学习方向是很重要的。0 Y a/ U3 E4 x3 A; t2 N
* b, d, v) ?4 H2 L2 u2 @: F学习嵌入式的建议% G$ l8 ~' x9 G4 h
我这里讲的建议,是基于单片机的进阶之路,如果你是搞计算机的,那么请私信我,或者绕道。在Windows下开发单片机程序用的都是IDE集成开发环境像keil啦,IAR啦 emIDE啦,这些软件帮你做好了编译链接很多细节的部分,而把环境搬到Linux系统下,就要自己搭建GCC编译环境,GDB调试环境,还要自己搭建交叉编译环境等等!而linux系统下的软件还有程序对版本依赖很强,换个不同版本的linux可能又会有很多插件要装,中间会出现各种问题。所以我建议学习嵌入式linux系统时,尽量使用提供给你开发板的依赖系统版本。' p5 m% j( f9 X& A+ d9 y
基础知识打牢固,一点一点学习,Makefile基本语法,必须要会简单的项目管理,这里推荐查阅《GNU Make》或者《跟我一起学Makefile》,还有shell命令,也要掌握基本常用的, 会编写简单的shell脚本编程。
* y4 Y' V/ @2 g5 E9 g$ c! r 学习linux设备驱动的朋友,我推荐宋宝华的《linux设备驱动开发详解》,其余的用到什么就去网上找就行了。
( F0 I9 c) h; T) X0 t6 v8 g. _7 X( M
4 r$ l: z2 Y7 H3 o$ [5 |嵌入式linux的学习框架- W! n+ [# y8 ^/ L" M
' M: f. P6 Y5 H0 p
' g4 A( K! Q$ O. J0 H+ U E, i% ?; C+ |
: U$ z2 k4 D2 c/ E8 r9 f 这里我的学习路线是这样的,如果学习顶层应用的朋友,学习完系统可以学习OpenCV或者openwrt之类的这些我在这里不讨论。关于底层的学习框架,我已经画的很明显了,所以基础打好,一点一点来,一定能攻破难关,加油吧!朋友 |
|