首先说一下我自己的一个大概情况吧,我是一个二本学校的,现在大四下期了,马上就要毕业了,学习嵌入式这方面的东西也有比较长的一段时间了。对于LINUX方面,由于我以前是做STM32和μC/OS方面的,所以LINUX方面的知识不是很会,还是个菜鸟阶段,今天主要是想跟大家聊聊大学这几年的学习经历。
我在大二的时候,学完模电数电之后,就到了老师的实验室,跟着一起学习了单片机开发,也跟着老师做过几个项目。当初刚进实验室的时候,看着郭天祥的“十天学会单片机”,也买了个开发板,跟着一起把上面的实验过了一遍。其实现在很多人觉得51太简单,不重要,不过,我还是觉得自己的那段学习经历对后面的开发还是有很大帮助的,因为对我们来说,只要是做裸机开发的,感觉所以的单片机都一样,就是操作寄存器,我们写程序的目的就是给寄存器赋值或者从寄存器读取值。这些东西在51里面是比较好理解的,因为传统的51单片机没有库文件的,我们只能用操作寄存器的方式来做开发,这样,能够加深我们对单片机的理解。
学完单片机之后呢,正好碰上老师要用STM32来做开发,于是乎我又去学了STM32,并且在上面移植了μC/OSII,这时候,就发现了一个致命的问题---------C语言。C语言在我们课堂上面的确学过,但是,就我们学校而言,课堂上面学的东西基本上都是很简单的东西,考试考个90分也就那样,关键的指针基本上没讲。于是乎我又跑去学了一段时间C语言,当时看的是郝斌老师的C语言视频,指针部分个人认为讲的非常好,学完之后基本上STM32的库文件和μC/OS上面的代码都能看懂了。
大学也就这样,迷迷茫茫的走过来了,一次培训机构的宣讲会(培训机构名字我就不说了,反正是个*式招生。。。),让我了解到了嵌入式LINUX开发,当时非常感兴趣,也差点就冲动到报班去了,后来我就网上搜了下培训机构的口碑,基本上是百分之九十的差评啊。。。自己也就不敢报班了,没办法,自己兴趣在那里,我也就在网上找了些资料,自己啃了起来,由于前面都是一些学习都是看视频过来的,这时候纯粹看文档,感到越来越吃力,又跑去找了视频。后来就看了下韦东山老师的视频,感觉还不错,把第一期过了一遍,也买了JZ2440开发板。
最近,也有很多学弟在问我,我们学习嵌入式到底要哪些基础,个人认为吧,C语言是必须精通的,尤其是指针部分和一些嵌入式常用的嵌入式技巧(比如宏、条件编译和模块化编程等等)。
其次,也有很多人问汇编重不重要,就我目前的学习情况来说,汇编其实不是很重要,基本上能看懂汇编代码就没什么大问题了。
还有人问,可不可以不学习51、STM32那些了,直接上手ARM9。我觉得还是可以的吧,前面那些基础能够让你在后面的学习中更加快速,但是,没有那些基础你也可以在后面去学的,计算机原理发展了这么多年,也就两种体系结构吧,所以,原理都是想通的。
现在呢,楼主也还正在学习韦东山老师的视频,感觉讲的还不错,对于我这种初学者来说,还是挺好的。先这样吧,等有机会看能不能再来和大家聊聊学习心得。
当然,楼主现在也是个菜鸟,前面说的不一定正确,发个心得的目的也就是希望能够给大家带来一些思考,学习方法没有万能的,每个人都要用自己的方法,如果现在你学的不够好,那肯定是学习方法不对,前面有错误的地方,还请各位能够指正指正。