我是一个嵌入式初学者,请问我要学哪些东西?希望大虾给一些具体的学习流程。

如题所述

第一,你要学习嵌入式的话要考虑你是什么专业,如果大学里没有学过现在学习非常难的。而且门槛较高就业非常有压力,因为这个行业对于工作经验要求很高,都不喜欢带新人。最好能有认识的人教你帮助你。要不工作很难找。
第二,你真要学习的话首先要确定一个操作系统,比如linux,装上一个虚拟机。
第一步是先学习linux系统管理,学会linux的基本操作,比如gcc,gdb之类的使用啦,用不了多长时间。还有就是学习一下shell脚本和makefile的书写规则。当然C语言是必须会的。这一阶段主要是巩固C语言,最好也能了解一些汇编语言。还有学习一下数据结构。
第二步就是linux程序设计。你要了解一下微机原理和操作系统。比如文件编程,进程控制,进程间通信,进程管理,系统调用,多线程,网络编程等等。做嵌入式微机原理与操作系统必须懂的。这一部分可能有些枯燥。一定要坚持啊。
第三步可以考虑学习一下ARM处理器了。买一块ARM开发板(如果你决心要好好学习的话必须有)现在一块ARM9要四五百吧,这个投资是必需的。配套资料上面肯定有海量的学习资料。买的时候注意一下要买资料比较多的。先学习理论的东西。ARM体系结构,ARM指令,伪指令,寻址方式GPIO什么的。安装好ADS1.2。我不知道你对单片机了解多少,刚开始的时候可以把ARM板子当成单片机用,先烧写一些裸机程序运行,建立成就感。摸到一些门路之后要对ARM的接口,内部电路什么的有个系统的了解。最起码要了解ARM能干什么?怎么干?ARM开发的具体流程是什么?不能只弄一些裸机程序了,操作系统的移植也要明白一些,最起码要明白移植过程。刚开始不要求所有的程序都看懂,比如引导加载程序(bootloader)用汇编语言写的。要看懂可能很费力。你要想搞通了的话很难的。你要是真搞懂了那工作就不用愁了。
再后面的内核开发就比较难了,想要读懂源码需要深厚的C语言功力和汇编语言的能力。先看内核配置和内核启动流程。内核的定时器,内存管理,链表,进程调度,系统调用什么的。还有uboot移植。全读懂不太可能吧。开始的时候能读懂一部分就不错了,读懂只是第一步,会移植还是任重而道远啊。
至于驱动程序开发,嘿嘿,你要会的话月薪最低最低也不可能低于一万。我感觉新人不要在上面费很多功夫。太难了,还是等你工作了以后再学习,闭门造车是不可能学会的。不用说USB驱动这种高难度的驱动,就是一个最简单字符设备驱动就能玩死你一个新人。呵呵,我没有打击你信心的意思,我只是感觉不积跬步无以至千里。路还是一步一步的走。
我也不知道你现在的水平有多高,反正首先是C语言一定要过关这是最基础的。汇编最好也要懂一些。微机原理,数据结构,操作系统都是最基础的东西。你要做硬件的话数电,模电,电路基础也要有,嵌入式方向有好多,我说的 是ARM+linux方向。其他的方向我也不清楚。我也不建议你做硬件,一个是需求小,在一个对学习环境要求高。
学习起来很枯燥很累希望你有所准备不要半途而废,不建议你看书,因为新人根本看不懂,又乏味又抽象,能恶心死人。最好到网上找一些视频看,实在找不到就花钱买(我不是要做广告哦,只是一个建议)。
再有一个方法是参加培训,先申明我不是枪手。嵌入式培训太多了。好处是你能节省很多时间,而且有人指导(这一点很重要,如果没有人指导你要学会很难很难的),而且最后有推荐工作,找起来简单一些。当然你也别相信他们说的包多少多少年薪的就业,什么签合同,那都是扯淡。就算签了合同你打官司打的赢吗!最后还要搞的身心俱疲不了了之。其实都是靠你自己。参加培训也是靠你自己,不过培训机构能提供你一个学习的平台还有学习的氛围。
好处有坏处就有,首先就是高额的培训费用,加上吃住要两万啊!你家要是很有钱不在乎就当我这一条没说过。再次就是承担的风险,满大街的培训机构真正负责任的少之又少,我接触过几个培训机构,刚开始的时候还挺认真的,后面两个月就忙活后来的人了把前面的人扔了。本来说的 很好一天多少节课,强制上晚自习什么的。到了那里以后上课爱去不去根本没人管你,你不明白说是可以转到下一届,但是申请的时候他不同意你能怎么办?等等等等不胜枚举,名字我就不说了免得你以为我是枪手,你自己心里有数就可以。真决心参加培训的话一定要实地考察。千万不要存在侥幸心理或者怕麻烦。也不要只和老师聊,要和学生多聊聊。再有看看自己适不适合培训。你要是大学里学的不错的话去培训一下也无不可,镀一层金。大学里要是根本没有认真学习或是专业不对口的话我不赞同,真要去也要在家里学到一定基础再去,否则你根本跟不上两万块打水漂哭都没人听。还有,要参加培训的话最好去北京上海这样的大城市,特别是北京,实力比较强。
我暂时想到的能说的也就这么多了。因为我也不是什么高手不能给你好具体的指导,话说回来了除了培训机构做广告的,高手谁来这里和你聊天啊。呵呵呵,当然这些就是代表我的一些个人想法,可能里面也有很多错误的或者不成熟的意见。你在综合一下其他热心的网游的意见吧。只要能对你有一些帮助我就没有浪费这半个小时。
呵呵,累死我了,先说这么多了,好久没有打这么多字了。真下定决心的话一定要努力啊,坚持很重要,相信自己,加油!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-12
我觉得还是先学一下计算机的工作过程,这部分东西不多,网上搜索就可以,这样心里有个数,
再来学一本c语言入门书籍,结合着计算机的工作过程来学比较好理解,关于c,学完入门以后,强烈建议再学学c和指针这本书,这本书对c中的概念有深入的解析,还有一本深入理解指针这本书,该书看起来就比较吃力些,但作用很大
这时候还没搞明白计算机硬件的那些详细细节,工作过程只是让你了解计算机的那些芯片如何协同工作而已,就要转移到汇编上来,intel汇编用的复杂指令集,arm或者risc-V用的是精简指令集,其实我觉得学一样就成,就是为了理解,那些计算机芯片中的详细细节罢了,毕竟无论是我们平常用的那些计算机还是嵌入式芯片,都差不多的器件,都有cpu,内存,i/o,还是可以相互借鉴的
其它的就算了,我们既不用去设计操作系统,再说导引程序,相当于计算机的操作系统,芯片厂商会提供,又不需要自己写,也不会去创造一门新语言来设计一个编译器,数据库也用不到,这一下子就去掉了操作系统,编译原理,数据库原理这三块大头,
但是计算机网络这块还是要了解一下的,只要理解tcp/ip协议就行,其它的就不用了,万一硬件方面要和服务器方面进行相互通信,只去关注客户端那部分网络编程即可,毕竟设备就是一个客户端嘛
其它的就没了吧?如果还要兼顾硬件电路设计,只需要会电路分析即可,芯片外围电路完全可以让厂商提供的嘛,哈哈哈,他们会给的,外围电路也只是为了提供电压,限流,降压,短路保护等,其它的也用不上
第2个回答  2011-11-08
单片机啊,当然语言类,C/C++,汇编,等等,还有就是嵌入式系统原理,dsp,ARM等等
相似回答
大家正在搜