一般嵌入式怎么自学啊?
⇁❆一般嵌入式怎么自学啊?
对于嵌入式学习者来说,我们该学习什么,或者说如何学习?才能提高自己的职场竞争力,或者说对于一个新手来说,如何通过自学,达到公司的用人标准和技术要求,找到一份自己想要的工作?
首先,你要学会做减法,从现实出发,要有这样一个意识:我不可能精通所有的嵌入式技术,学会坚持,制定合理现实的小目标。很多人喜欢那种不切实际的广告轰炸营销,击中你心理上的某个软肋,一下子兴奋起来。越熬越浓的心灵鸡汤,并不能解决我们吃饭的生存现实问题。很多人,包括我,在学习的时候,都喜欢给自己树立各种路线、计划、日程表。制定计划时激情满满,热情高涨,激动得睡不着觉。计划宏伟而饱满,仿佛成功就在眼前。但是往往不切实际,往往在早期,遇到各种困难,各种坑,各种拖延导致没有坚持下来,最后夭折。然后接着制定下一个宏伟的计划,继续夭折,生活周而复始,day after day。观察我们生活周围,真正做出成绩的都是那些基于现实出发,能一路坚持下来的人,day by day。有时候你会发现,并不觉得他们有多聪明。
其次,保持自己的兴趣,说白了就是为了坚持下去。见过很多人想学习嵌入式,花了很多米买一块开发板,激情满满,过一段是过去再看,已经不折腾了。嵌入式开发难,难在哪里呢?主要在于开发环境的搭建,软件调试上,不像在Windows上使用VC开发程序,集成开发环境都帮你弄好了,各种断点、单步、查看堆栈、寄存器、内存窗口。而嵌入式不一样,硬件环境搭建会遇到各种各样的问题,各种电脑的兼容问题,各种莫名其妙的问题,有时候着实让人抓狂,时间久了,慢慢地学习的激情殆尽,也就不想学习了。这还不算什么,更严重的是,很多人学习嵌入式遇到挫折,往往会打击人的自信,觉得自己能力不行,智商不够,不适合干这行,在心理留下了阴影。
对于个人学习者来说,买了开发板,你不买配套的示波器等调试设备,遇到硬件问题也是一筹莫展,无法解决。其实我们可以完全使用其它的平台去开展我们的研究和学习,比如QEMU,一款可以仿真开发板的开源软件,使用这款开源软件,我们可以在电脑上虚拟一个世面上流行的开发板,然后再在这个仿真的开发板上跑u-boot、Linux内核、挂载根文件系统,使用和开发板一样的源码,运行效果和真实的开发板是一样的。而且,使用QEMU的好处就是,“硬件”永远不会出问题,可以让我们避过硬件的各种坑,腾出更多的精力去研究嵌入式软件的各种架构、编程技能、内核驱动,这些才是嵌入式工程师的核心竞争力,需要花大量的时间不断地去积累,去磨合,去提高的。把大量的时间耗在一个本该不属于学习范畴的硬件bug上或者硬件环境不兼容上,不划算,因为你以后进公司后,遇到同样的问题,找硬件工程师,半分钟帮你搞定。所以说,选择一个理想的嵌入式学习平台,尤其对于初学者来说,很重要。
最后,要保持学习的深度,刻意练习。不要让自己永远待在学习的舒适区,要学会挑战自己,不断去扩展自己知识的边界,完善自己的知识体系和技能。很多人买了开饭,按照教程,“移植”了u-boot,Linux内核,制作了根文件系统,然后就陷入了迷茫:接着要干什么?要学习什么?想学习又感觉深入不下去,东一耙子,西一耙子,看看这,看看那,时间不知不觉就过去了。其实,学习嵌入式,基本的嵌入式知识和理论学习还是必要的,很多人推崇边做边学,到项目中学习,实践出真知。
当然这也是一个方法,但是也有弊端,那就是学习的不系统,很多有心人到后来还是得回来补课,完善自己的知识体系和技能。很多人玩开发板,烧写镜像,玩得贼溜,但是你知道这里面的原理吗?知道JTAG怎么下载的吗?Jlink和JTAG有什么区别?为什么PC上要装个JTAG软件而Jlink不用?程序的编译和链接是怎么样的?为什么内核镜像要下载内存的某个地址?换个地址行不行?为什么我们编写的程序要在有OS的环境下运行,在ARM开发板裸机环境下,你能写一个跑起来的程序吗?只有对这些问题深入思考,你才会对嵌入式有一个更深的认识,超越了平台,一通百通。
✂ℌ一般嵌入式怎么自学啊?
你好,嵌入式是一个很大的概念,在这里不知道题主对哪一方面感兴趣,所以进行一个较为笼统的介绍。
首先对于嵌入式可以分为硬件和软件两个大类(虽然一般情况下都要懂点)
先来看看硬件
硬件
我这里随便找了几个公司招聘嵌入式硬件工程师的任职要求
可以看到,要做硬件的话得学会对电路进行设计。而要设计电路,模数电等基本知识是必不可少的。想来题主问出该问题自己本身也就是电气或者是电子信息工程专业的学子,那么上课时好好学,课后积极思考即可。
掌握了基本知识后,必备的工具也是不可少的,关于画图工具有许多,这里推荐下AD(因为一般学校都会交这个软件)。
至于之后的发展就不过多赘述了,先入门较好。
软件
要做软件的话,必不可少的就是编程了。在嵌入式的开发当中,使用最多的一门编程语言就C语言了,同样的学校也会开设这门课程,想做嵌入式软件的话一定要好好学。
同样的,先看一下嵌入式软件大概的任职要求(我这里随便找的,可能有所出入)
我们可以看到主要是得去了解一些芯片的使用,然后了解外围接口协议以及系统方面的知识。通过软件去控制芯片完成我们需要的任务。
总结
由于是电气电子类的学子,在大学期间一般都会学习单片机这门课程,也是一个入门嵌入式的选择。
在最开始建议学习51系列的单片机,通过这块简单的芯片慢慢的了解嵌入式的世界。
在这上面可以试着自己去完成一些比较简单的项目,自己设计电路(可参考别人的),然后完成一些简单程序的编写,这样进步是最快的。
万事开头难,相信只要入门了,后面自己就可以慢慢的摸到路了。
加油吧!做自己喜欢的
------------------
推荐阅读:
英雄联盟那些只玩一个英雄的玩家,最后都怎么样了?成为大佬了吗?
本科跟的老师很厉害也很温柔,有留我读研的意思,但是学长劝退,要留吗?
去年考上了300里以外的县城事业编,与妻儿两地分居,怎么办?