嵌入式学习总结.docx
- 文档编号:25351064
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:27
- 大小:127.55KB
嵌入式学习总结.docx
《嵌入式学习总结.docx》由会员分享,可在线阅读,更多相关《嵌入式学习总结.docx(27页珍藏版)》请在冰豆网上搜索。
嵌入式学习总结
嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关于这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发
嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
所以你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:
《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:
《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。
而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。
在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:
交叉编译、make脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。
只要能坚持下来一定会取得成功!
如果之前基本没接触过嵌入式技术的话,建议你去参加嵌入式培训系统的学习这方面的知识,对你以后的就业发展很有好处的,建议你在线看一下千锋嵌入式培训学院相关嵌入式技术专题的视频,先对这个行业有更多了解,具体知道关键的技术点,更好地往这个方向发展。
另外,千锋嵌入式培训学院从06年起陆续出版的四十多本畅销嵌入式专业教材,各大书店和图书馆都有,你可以XX一下“千锋嵌入式培训学院”了解更多嵌入式行业的相关信息。
2
我在学习嵌入式学习网的视频,个人感觉还是很不错的,学习了两个月了,对嵌入式终于有所了解,现在都在学嵌入式linux的编程。
我以前看到这篇文章后才开始学的,转发让你看下,希望对你有所帮助。
关于如何从零基础开始学习嵌入式,我看到一篇很不错的文章,是一个专科生介绍自己如何从零基础开始自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
专科生学嵌入式到找到工作的前前后后--学习的榜样
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。
09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。
所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。
我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。
那天我去新华书店,在计算机分类那边想找本书学习。
后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。
听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。
我就下决心想学嵌入式了。
于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在XX知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。
他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。
这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!
我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《从零基础开始学嵌入式》,网址:
里面的教程还不错,很完整,可以让我从基础的开始学起。
视频不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。
C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。
我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。
因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。
我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。
我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。
没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。
我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。
我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。
我至少不用每天都要靠父母养,我自己也能养活自己的。
我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
最后祝愿所有想学嵌入式的朋友更早的入门!
最近很多朋友都在问,如何学习嵌入式,作为嵌入式的老鸟,我想我可以做一些唠叨,嵌入式的入门门槛稍微高一点,但是再高的城墙也是小砖头筑起来的,所以没有必要因为门槛高就觉得很困难,一步一个脚印,贵在坚持就可以了。
学习嵌入式,该学习什么基本的知识呢?
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?
至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。
很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。
我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。
应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习下linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?
我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux代码早期的版本,比如0.12的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
至于上面说的知识如何学习呢?
每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。
很多人看不进书,那就去看看视频吧。
视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。
我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
我在网上看到,有人把自己学习嵌入式的视频总结出来,嵌入式系列实践和视频教程,大家可以看看网址我仔细看了觉得很不错,我本来也想整理下,可是奈何我自己的电脑硬盘空间才40G,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。
想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。
最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。
送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持!
怎样从零基础学习嵌入式
嵌入式Linux工程师的学习需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!
),之后基本就不再用过的情况,建议零基础学习嵌入式的朋友们在学习之前先复习一下C语言基础这块。
要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:
数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。
此外,在时间允许的情况下,对于零基础学习嵌入式建议大家看一下有关计算机操作系统工作原理以及计算机组成原理等方面的专业书籍。
对于进程、线程、任务调度、总线、I/O等基本概念及工作原理有一个初步的了解和掌握,这部分知识的准备对于后续更好地学习嵌入式Linux系统开发将会起到很好的帮助作用。
下面就介绍一下Linux的学习:
一、从零基础开始:
常常有些大学生在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。
例如:
为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些
问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。
而大多数同学们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基
础;
二、Linux命令是必须学习:
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。
Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令
有许多强大的功能:
从简的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。
举一个例子linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你
一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间.不同版本的Linux命令数量不一样.
三、选择一本好的工具书:
工具书对于学习者而言是相当重要的。
一本错误观念的工具书却会让新手整个误入歧途。
目前国内关于Linux的书籍有很多不过精品的不多,千锋强烈建议阅读影印本的“O’Reilly原版Linux图书;
四、选择一个适合你的Linux发行版本
目前全球有超过1百多个Linux发行版本,在国内也能找到十几个常见版本。
如何选择请根据你的需求和能力,RedhatLinux和ebianLinux是网络管理员的理想选择。
对于英语不是很好的读者红旗Linux、中标Linux这些中文版本比较适合。
现在一些Linux网站有一些Linux版本的免费下载,同学们也可以到武汉千锋智能科技有限公司官方网站下载;
五、养成在命令行下工作:
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。
在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。
从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。
即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。
六、选择一个适合你的Linux社区:
随着Linux应用的扩展,出现了不少Linux社区。
其中有一些非常优秀的社区:
(国内最高水平GNU站点)、(中国最大的Unix技术社区),但是这几个论坛往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
推荐适于初学者的Linux社区:
Linux伊甸园,优秀linux+oracle技术门户,中国Linux公社
七、勤于实践:
要增加自己Linux的技能,只有通过实践来实现了。
所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界。
相信对于你自己的Linux能力必然大有斩获。
七、如何得到联机帮助:
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
1.主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
2.查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
八、在Linux论坛获取帮助:
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。
Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。
如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。
越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
最好先搜寻一下论坛是否有您需要的文章。
这样可以获得事半功倍的效果。
九.用Unix思维学习Linux:
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。
思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
十.学习专业英文:
如果你想深入学习Linux,看不懂因为文档实在是太难了。
写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。
安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。
如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
十一.Linux学习的路线图:
1.掌握至少50个以上的常用命令。
2.熟悉Gnome/KDE等X-windows桌面环境操作。
3.掌握.tgz、.rpm等软件包的常用安装方法
4.学习添加外设,安装设备驱动程序(比如网卡)
5.熟悉Grub/Lilo引导器及简单的修复操作。
6.熟悉Linux文件系统和目录结构。
7.掌握vi,gcc,gdb等常用编辑器,编译器,调试器。
8.理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
9.学习Linux环境下的组网。
十二.寻找专业的Linux培训机构:
选择一家专业的Linux教育培训机构的确可以达到事半功倍的效果。
不仅能大大缩短学员自行摸索和自我积累的时间,而且能帮助学员在更高的起点上超越,从而在“前人”的肩膀上未雨绸缪,少走弯路。
基于ARM的嵌入式学习,技术基础是关键。
首先学习相关的基本硬件知识,例如一般处理器及接口电路(Flash/SRAM/SDRAM/EEPROM/Cache、UART、Timer、GPIO、Watchdog、USB等)等硬件知识,至少了解一种CPU的体系结构;至少了解一种操作系统(中断、优先级、任务通信、同步等)。
对于应用编程,要掌握C、C++和汇编语言程序设计(至少会C语言),对处理器的体系结构、组织结构、指令结构、编程模式和应用编程要有了解。
在此基础上,还需要在实际工程实践中掌握一定的实际项目开发技能。
其次,嵌入式学习要有一个较好的嵌入式开发教学平台,也就是开发板。
再次,必须对基本内容有深入的了解。
在处理器指令系统和应用编程学习的基础上,重点是加强外围功能接口应用的学习。
主要是人机接口和通信接口。
如:
USB接口、AD转换、GPIO、以太网、IIC串行数据通信、音频接口和触摸屏知识。
最后,熟悉至少一种嵌入式操作系统,熟练裁剪、定制及移植、设备驱动程序和应用程序的开发。
嵌入式学习步骤
C语言学习
嵌入式Linux工程师的学习步骤首先需要需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!
),之后基本就不再用过的情况,建议零基础学习嵌入式的朋友们在学习之前先复习一下C语言基础这块。
要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:
数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。
此外,在时间允许的情况下,对于嵌入式学习步骤很重要的一点是建议大家看一下有关计算机操作系统工作原理以及计算机组成原理等方面的专业书籍。
对于进程、线程、任务调度、总线、I/O等基本概念及工作原理有一个初步的了解和掌握,这部分知识的准备对于后续更好地学习嵌入式Linux系统开发将会起到很好的帮助作用。
Linux的学习
从零基础开始:
常常有些大学生在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。
例如:
为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。
而大多数同学们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础;
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。
是学习嵌入式很重要的步骤之一,Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:
从简的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。
举一个例子linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间.不同版本的Linux命令数量不一样.
工具书的选择
工具书对于学习者而言是相当重要的。
一本错误观念的工具书却会让新手整个误入歧途。
目前国内关于Linux的书籍有很多不过精品的不多,千锋强烈建议阅读影印本的“O’Reilly原版Linux图书;
要养成在命令行下工作的习惯
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。
在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。
从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。
即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。
目前全球有超过1百多个Linux发行版本,在国内也能找到十几个常见版本。
如何选择请根据你的需求和能力,RedhatLinux和ebianLinux是网络管理员的理想选择。
对于英语不是很好的读者红旗Linux、中标Linux这些中文版本比较适合。
现在一些Linux网站有一些Linux版本的免费下载,同学们也可以到武汉千锋智能科技有限公司官方网站下载;
选择好的Linux学习社区
随着Linux应用的扩展,出现了不少Linux社区。
其中有一些非常优秀的社区:
(国内最高水平GNU站点)、(中国最大的Unix技术社区),但是这几个论坛往往是Linux高手的舞台,如果在探讨高级技巧的论坛张
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 学习 总结