- 相关推荐
嵌入式培训总结
三个月的培训学习,转眼间就要结束,回忆起这三个月来的学习,以及和大家相处的过程,既难忘又深刻。这三个月,的确是学到了不少的东西。
回忆起刚刚开始培训那时候,总但心自己的水平低,没基础,害怕跟不上进度,或者担心自己吃不消这么强度的上课培训。那时候做的第一份入学考试试卷,觉得很难,压力倍增。经过一段时间的学习后,渐渐地发现,原来曾经的担心、害怕和觉得学习难那都是多余的。虽然基础差了点,但经过自己的努力和秦工的指导,自己的知识水平获得了迅速地提高。
C语言是我们整个学习的基础,虽然只有半个月的正式学习,但基本的知识点已经能够掌握了。剩下的只有靠自己多做题、多练习、多复习才能进一步提高。那时候学完C语言,秦工让我们课后自己练习写完那100道经典的C语言题目,随着后面上单片机课程,到现在这100道题目我只完成了一半。这一点,我是做得不好的,还不够努力,我会挤出时间来完成的,并且经常复习一下C语言。
刚上单片机的时候还算轻松,因为之前有点单片机的基础。但是上到I2C的知识点后,就觉得开始变难了。要看的资料也比较多,写程序要严格按照时序图来写,时序有一点不对,该功能就无法实现。学习单片机,我觉得我学到最实用的知识就是:串口通讯、I2C总线、DS18B20温度传感器、LCD1602字符液晶屏、LCD12864中文液晶屏、DS1302实时时钟、还有红外遥控等。这些是我们日常生活经常接触到的,能做出这些东西来,真的很有用,很贴近生活。
PADS这个画原理图、画PCB板软件是我第一次学习,刚开始的时候,觉得学起来很困难。一是它是全英文的,要找出操作工具较困难,二是不熟悉操作步骤,不看笔记就想不起来该如何操作。经过画
了几个PCB板后,熟练了,就不觉得难了。不过我对走高速线时的蛇形线、差分线、等长线,还有画多层板这些知识点还不是很熟练,毕竟练习得少。我们一般画的是两层板,今后我会多注意练习,巩固一下。
M3算是到目前为止,我们培训课程中最难掌握的一门课程了。它涉及到的寄存器很多,设置寄存器要看很多资料才能完成。因为资料较多,所以能真正记得进脑子里的东西没多少。不管做什么实验,第一步还是得找资料、看资料,离开了资料,我真的是不会什么。要是做学过的实验,虽然有些具体步骤我记不住,但通过查资料,我也能做出来。我在想:像这种记不住,但通过资料也能做出来的情况算不算是掌握了呢?学习了M3,最遗憾的是还有很多知识点还没学,也没有学库函数版,因为在以后的工作中,几乎都是要用库函数写的。M3博大精深,我们掌握的算是皮毛吧!
这三个月来,我是掌握蛮多的知识点,收获也是挺大的,但这远远还未能达到要求。我期待去深圳更深一步的学习,不断努力奋斗,使自己成为一名合格的工程师。
嵌入式学员:何炯林
2015年10月11日
嵌入式培训总结
篇一:嵌入式培训报告
学号:
创新生产实习报
学院 电信学院 专业 班级 学生 实习时间 年12月日至月 告
摘要
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在rom中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如sony 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
嵌入式系统的特点:
1)可裁剪性。支持开放性和可伸缩性的体系结构。
2)强实时性。eos实时性一般较强,可用于各种设备控制中。 3)统一的接口。提供设备统一的驱动接口。
4)操作方便、简单、提供友好的图形gui和图形界面,追求易学易用。 提供强大的网络功能,支持tcp/ip协议及其他协议,提供tcp/udp/ip/ppp协议支持及统一的mac访问层接口,为各种移动计算设备预留接口。
5)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的eos具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的rom中。
7)更好的硬件适应性,也就是良好的移植性。[4]
8)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
嵌入式就业发展空间相对较大。嵌入式系统是当前最热门、最具发展前途的it应用领域之一。包括手机、电子字典、可视电话、数字相机(dc)、数字摄像机(dv)、u-disk、机顶盒(set top box)、高清电视(hdtv)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。因此,通过嵌入式培训成为专业的嵌入式技术人才,其职业发展空间较大。
关键词:嵌入式系统 计算机技术 硬件层 中间层 系统软件层 应用软件层
三种常用的嵌入式操作系统1.palm os
2.windows ce
windows ce的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种cpu。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于windows ce的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使
用的操作系统体积较小,内建有对中断的响应功能。3.linux
linux是一个类似于unix的操作系统。它起源于芬兰一个名为linus torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。linux从1991年问世到现在,短短10年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的linux os已成为microsoft公司的dos和windows 95/98的强劲对手。linux系统不仅能够运行于pc平台,还在嵌入式系统方面大放光芒,在各种嵌入式linux os迅速发展的状况下,linux os逐渐形成了可与windows ce等eos进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择linux作为嵌入式操作系统。linux现已成为嵌入式操作的理想选择。
实训目的
培养技能型嵌入式人才,以动手能力为出发点,以项目驱动教学,培养一流的技术人才,解决学生实习安排与高薪就业的难题。
实训平台设备资源篇二:嵌入式心得体会
这学期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领域都用到了嵌入式,学好嵌入式不愁没饭吃。
广义上讲,凡是带有微处理器的专用软硬件系统都是嵌入式系统。如各类单片机和dsp系统。从狭义上讲,那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的专用软硬件系统称为嵌入式系统。嵌入式系统由嵌入式硬件与嵌入式软件组成; 嵌入式硬件以芯片、模板、组件、控制器形式埋藏于设备内部。
理解“嵌入”的概念 主要从三个方面上来理解。
1、从硬件上,将基于cpu的处围器件,整合到cpu芯片内部,比如早期基于x86体系结构下的计算机,cpu只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16c550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到cpu内部,还有pc机有显卡,而多数嵌入式处理器都带有lcd控制器,但其种意义上就相当于显卡。比较高端的arm类intel xscale架构下的ixp网络处理器cpu内部集成pci控制器(可配成支持4个pci从设备或配成自身为cpi从设备);还集成3个npe网络处理器引擎,其中两个对应于两个mac地址,可用于网关交换用,而另外一个npe网络处理器引擎支持dsl,只要外面再加个phy芯片即可以实现dsl上网功能。ixp系列最高主频可以达到
1.8g,支持2g内存,1g×10或10g×1的以太网口或febre channel的光通道。ixp系列应该是目标基于arm体系统结构下由intel进行整合后成xscale内核的最高的处理器了。
2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到rom中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如wince在内核定制时,会有相应选择,其中就是wordpad,pdf,mediaplay等等选择,如果我们选择了,在ce启动后,就可以在界面中找到这些东西,如果是以前pc的windows操作系统,多半的东西都需要我们得新再装。
3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的rom中就实现了一个真正的“嵌入”。。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层
1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用c和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成cpld的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口-技术、微机原理及接口-技术、c语言。
2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,xp操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及java方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于sip、h.323、astrisk)方面又较为复杂,并且有难度了。
通过网上查询我发现目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业it人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如arm处理器、嵌入式操作系统等),掌握这些新技术的人当然很少。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。我们软件系的人学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面。对于搞嵌入式软件的人,最重要的技术显然是掌握主流嵌入式微处理器的结构与原理,必须掌握一个嵌入式操作系统,必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。
然而我们都没有做过一个嵌入式软件项目,甚至连嵌入式的开发流程我也不清楚,我只了解了使用简单工具做一个简单的实验。只有去专研才能在嵌入式的领域站住脚,只有知道的比别人多才会更有竞争力。通过网上了解,我查询了嵌入式的入门和所需要的知识,其中c语言尤为重要,不管是做嵌入式软件还是硬件开发的人员,对c语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用c语言。其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的;知道了c语言和操作系统之后,再来看看嵌入式系统,我们主要学的是arm,用的是arm7, 深入理解arm不是件容易的事,只有在知道arm相关知识之后才能称得上嵌入式已经入门了。 与嵌入式有关的知识我也学了不少就是不能够综合在一起运用,组成原理,数据结构,操作系统,c++,这3门与嵌入式密切相关的学科都系统的学了一遍,但由于长时间没用到都有点忘记了,从网上得知嵌入式的学习与这些书有很大关系之后,我把嵌入式与以前学过的知识结合起来发现嵌
入式的实验中很多都是共通的,我对嵌入式有了初步的理解。
我以为学习嵌入式应该分为2个部分:软件和硬件。关于硬件方面我接触到了数字电路教材和模拟电路方面的知识,但由于没有嵌入式cpu很难亲自动手来实现嵌入式的相关理论;嵌入式入门则需要不断地实验与分析,我只在实验课时做几个与所给的程序相关的小程序来实现一下;而软件方面则学过c语言,里面通常的语法曾今熟悉过;我通过下列方法来适应c语言在嵌入式中应用:首先重新翻看了下c的教材,看了些常见的语法,接着在编译器的角度来看待c,编译原理我刚学过,其高级语言与低级语言的翻译感觉在嵌入式中用到了很多;最后冲硬件的角度来看待c。嵌入式的核心包括嵌入式操作系统,嵌入式软件开发平台及工具以及嵌入式应用软件。这些决定怎样才能开发一个好的嵌入式系统。 下面谈谈我了解的嵌入式的相关知识与应用:
首先,嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式有如下几个突出的有点1.系统内核小,2专用性强,3系统精简4高实时性os5嵌入式系统的应用程序可以没有操作系统直接在芯片上运行,6嵌入式系统需要开发工具和环境。
嵌入式系统是近几年才风靡起来的,但是这个概念并非新近才出现。从20世纪七十年代单片机(最早的单片机是intel公司的 8048,出现在1976年)的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。经过30年的发展,嵌入式技术已经日趋成熟,在中国嵌入式机一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
其次,嵌入式系统无疑是当前最热门最有发展前途的it应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。 嵌入式系统是软硬结合的学科,通常有两类人会去专研嵌入式:一类是学电子工程、通信工程等偏硬件专业的,另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。我是软件专业的学习嵌入式,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。嵌入式应用在很多方面,具体的可以分为工业控制,交通管理,信息家电,家庭智能管理系统,pos网络及电子商务,环境工程与自然,机器人,机电产品方面应用等方面。其中目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。例外还有很多地方用到了嵌入式系统,最近飞利浦和arm共同推出32位risc嵌入式控制器,适用于工业控制,采用最先进的0.18微米cmos嵌入式闪存处理技术,操作电压可以低至1.2伏,它还能降低25%到30%的制造成本,在工业领域中对最终用户而言是一套极具成本效益的解决方案。
那么该如何学好嵌入式我觉得应该从以下几点入手:
首先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 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
以上就是我在本学期学习嵌入式后的心得及感想。篇三:嵌入式学习心得
嵌入式学习心得 时间过的紧快,在粤嵌教育已经培训有5个月了,培训期间收获很多,也认识了班上的学习大神,经过系统的学习,老师的细心指导,我的付出努力,对于嵌入式上,学到很多实用的知识,在动手操作能力也加强了,不仅在专业技术方面有了很大进步,而且在实践操作方面我也对嵌入式有了更深入的了解。也许这5个月是我在外面学习和生活最宝贵的时间。
在校两年,读于电子信息工程技术专业的我,就觉得这专业学的知识太广了,不管基础还是动手操作,都要比较灵活。在校期间,学习单片机,传感器,c语言,嵌入式应用技术等课程。感觉学起来,对我来说接受还是比较快的,那时就有想过:学的多不如学的巧,也许在校对课程多于理论为主,理解它的原理和基本编程方式。其实,我还是有努力去学的,可以说,在校科任老师都教会我很多专业知识,为我将来的学习和发展打好基础。
在大三期间,为了更明确自己要走的方向,去培训嵌入式软件开发。也许将要投身嵌入式行业的我,就注定这条路要付出很多时间和精力,但可能我好求比较强,接受还行,就不停给自己打气,努力!要去培训嵌入式时,我从网上也对它有更加的理解,也看下大2学的嵌入式应用技术书,嵌入式系统是软件和硬件的综合体,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
刚开始嵌入式学习,对linux系统的知识加于巩固。一些简单的代码,c语言,对于嵌入式软件还是硬件开发的人员,对c语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用c语言。在下来几个月就对linux系统,数据结构、系统移植的方法、a8的体系结构、linux内核及驱动设计、android、c+java的jni应用编程的系统学习。在每学个阶段就作一个考试,对前面所学的知识进行复习,有些会做一个简单的小项目,学以致用。知识量还是比较多,但教学也比较快,有些知识还没消化完,第二天又接受新知识,对于能在课上就可以对知识完全懂的并不多,晚上都用一两个小时来复习。经过5个月系统的学习,嵌入式技术方面有了很大进步,实践操作方面也对嵌入式有了更深入的了解。在最后一个月,基于a8(s5pv210)的嵌入式智能家居系统制作。
下面我谈谈在粤嵌教育的培训感受,我培训的地点是在科学城粤嵌教育培训中心的多媒体课室里,这里有学习环境非常好,在紧张的学习的过程中,你可以得到名师的指导,也可以体会到一流企业高质量的培训。在课堂上,老师们认真的演讲,以及手把手地教导,使每个学生都能够扎实地掌握到嵌入式的各方面的知识。而粤嵌教育的老师也是操作实践为主,实践是非常重要的,只有把知识掌握到位,才能达到学习的目的。
感谢粤嵌教育机构,感谢粤嵌教育老师。
嵌入式学结
一.为什么学习嵌入式?
1.就业前景
近几年,嵌入式系统产品日臻完善,并在全世界各行业得到广泛应用。嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。
随着消费家电的智能化,嵌入式更显重要。像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk 、机顶盒(Set Top Box)、高清电视(HDTV )、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都是典型的嵌入式系统。据预测,随着Internet的迅速发展和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。
在中国,嵌入式软件发展过程中,政府已充分认识到它的重要作用,并在政策、资金等方面给予了大力支持。 2004 年国家发改委、科技部、商务部联合颁布的《当前优先发展的高技术产业化重点领域指南》,把嵌入式软件产业作为国家发展的一个重要领域。
最近几年来,中国的嵌入式软件发展速度一直高于中国软件产业的发展速度和全球嵌入式软件的发展速度,在中国软件产业和全球嵌入式软件产业中所占的比重越来越大。目前,中国嵌入式软件产业在整个软件产业中的比重已经超过了三分之一强。
从2015年至2015年,中国嵌入式软件产业规模仍将保持快速增长态势,年均复合增长率为25.8%,到2015年将达到3339.6亿元的规模。
中国嵌入式软件产业的发展面临着良好的发展环境与机遇,这包括政府的重视与扶植、信息产业与传统产业的融合机遇、垄断局面尚未形成、中国制造的良好基础、自由软件运动的兴起等等。
同时,不可否认的是长期以来,由于人才、宣传、资金等诸多问题以及嵌入式本身所特有的软硬结合特性,使嵌入式软件人才一直处于供不应求的状态。
2.自身发展
嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。
一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。
另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责
开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。
二.怎样学习嵌入式?
1.ARM嵌入式开发领域
包括什么?
软件开发
操作系统以下的底层偏硬件驱动
在简单操作系统如uC/OS-II之上的程序开发
不包括什么?
硬件设计
类似Linux这样操作系统以上的纯应用开发
2.ARM基础知识
#1.ARM体系结构:
Load/Store体系,Big/Little Endian大小端格式,RISC/CISC指令集,Pipeline流水线
#2.ARM工作模式:
7种工作模式:USR,SYS,SVC,IRQ,FIQ,UND,ABT;其中5种异常模式 #3.ARM寄存器:
37个寄存器:R0-R12, R13(SP),R14(LR),R15(PC),CPSR(SPSR)
#4.ARM异常:
7种异常,异常向量表,异常优先级,异常处理程序,处理器现场,现场的保存和恢复
#5.AMBA总线:
AHB(高性能总线),ASB(系统总线),APB(外设总线)
#6.ARM内核技术:
TrustZone,Jazelle,NEON,Thumb-2,SIMD,MMU,MPU
#7.JTAG标准:
IEEE1149.1,TDI,TDO,TCK,TMS,TRST,边界扫描链,H-jtag,Banyan,GiveIO
#8.ARM内核分类:
ARM7TDMI,ARM926,StrongARM/XScale,ARM10,ARM11,Cortex-(A/R/M),SecurCore
#9.ARM汇编指令:
mov,add,sub,b,bl,ldr,str,ldmfd,stmfd,mrs,msr,swi,mrc,mcr #10.MMU内存管理单元:
VA/PA,I-Cache/D-Cache,Write Buffer,Context Switch,CP15,TLB,AP,Domain
Access Control,Cache Coherence
#11.ARM芯片外设控制器:
Memory Controller(内存控制器),WatchDog(看门狗),GPIO(通用IO),UART(串口),Timer(定时器),Interrupt Controller(中断控制器),Nand Flash Controller,Clock & Power Management(时钟和电源管理),DMA(直接存储访问),USB Controller,LCD controller,ADC,IIC,IIS,SPI,AC97,Camera,MMC/SD #12.最小系统:
处理器,时钟,电源,PLL锁相环,存储器,通讯端口,外设接口
存储器件
SRAM,SDRAM,Nor Flash,Nand Flash
#13.ARM处理器:
Samsung: S3C4510,S3C44B0,S3C2410,S3C2440,S3C6410,
#14.SoC设计:
FPGA,CPLD,VHDL,Verilog
#15.ARM开发调试工具:
SDT,ADS1.2,AXD,RealView,KEIL MDK 4.11 (RVMDK4.11)
make,hypertrm(超级终端),minicom
#16.ARM命令行工具:
armcc,armasm,armlink,fromelf
#17.嵌入式操作系统:
VxWorks,RTLinux,uC/OS-II,WinCE/WM
#18.外设驱动程序:
volatile关键字,位操作bit,时序图Timing,管脚功能Pin function,外设控制/数据/状态寄存器
#19.程序的存储,加载和运行:
RO段,RW段,ZI段,ro-base/rw-base,栈空间,堆空间,位置无关代码PIC,启动搬移代码
3.核心概念
#1.寄存器:
ARM内核寄存器
R0-R12 R13(sp) R14(lr) R15(pc) CPSR, SPSR
ARM SoC 特殊功能寄存器
SFR(Special Function Register)
#2.地址
C程序中变量的“地址” :&a
SoC 特殊功能寄存器的“地址” :0x48000000
寻址方式里面的“地址” :ldr r0, [r1]
二进制指令里面的“地址” :0xE59FF018
存储芯片内部的“地址” :0x4h
操作系统之上应用程序的“(虚)地址”
CPLD器件对应的“(假)地址”
#3.异常和中断
异常是属于ARM内核体系结构的概念
中断是属于ARM SoC处理器的概念
了解软件中断(SWI)是实现操作系统提供系统调用的重要手段
了解硬件中断(例如Timer定时器)是实现操作系统时间片的重要手段
三.三个问题。
#1.为什么要编写一个Bootloader?
从根本上掌握一个嵌入式开发板底层的软硬件系统是怎样运转起来的
时钟频率如何设置;看门狗所起作用,串口如何工作;通讯协议如何实现;库函数;反汇编;函数栈空间。
#2.为什么要移植一个操作系统?
了解操作系统和底层硬件之间的依赖关系,知道哪些是移植相关的部分(即接口) 定时器中断(时钟节拍);异常处理和现场保存恢复;进程,进程控制块;处理器现场;进程的上下文切换;中断级别的进程切换。
#3.为什么要实现一个用户应用?
一个音频播放器;DMA控制器,Interrupt中断控制器;IIS 总线;UDA1341声卡芯片驱动;WAV/Mp3 音频文件格式;LCD液晶显示驱动;一个U盘;USB协议;FAT文件系统格式;SCSI命令集;NandFlash存储芯片驱动。
四.经典语段
经典语段一:
嵌入式技术的掌握是需要一个过程的
实事求是的说,嵌入式技术的全面掌握是有相当难度的。可以轻轻松松学会嵌入式技术的说法是夸大其词了。这个就像学英语一样,学英语无论怎样学,不管是“疯狂学”还是用新理念来学,真正掌握的话还是需要一步步积累才能熟练掌握。在此,我建议大家不要想在几天内学会嵌入式,成为这方面的高手。这些想法本身是不太现实的。
现在我们需要做的是:
第一:把心踏实下来,做好打硬仗的准备。
第二:注意学习方法。尽量不要走弯路,争取一鼓作气入门。一旦入门了以后呢就好办了。嵌入式技术的掌握,本身呢就比较难,要是再走些弯路,时间上会浪费,甚至会影响学习的信心。
经典语段二:
最好的学习方法:
做项目。如果有机会大家跟着做一个难度适中的嵌入式项目,相信大家会很快入
门的。也就是说从实战之中来获得进步。但是,在我们没有嵌入式基础之前,不容易获得这样的机会。也就是说,在能力没有到之前,找个这样的工作很难。很显然呢,如果我们具备了获得这样一份工作的能力就好办了。但是,恰恰是这个阶段最难。这个就是搞嵌入式系统的门槛。这个门槛的跨越,我觉得是需要引导的。
比如有的人买了块开发板自学,上来就分析LINUX源码,结果折腾了几个月呢都没有什么收获。有的人只是掩饰了几个基本的功能,放了个MP3,玩了下如何来浏览网页,下不就不知道该怎么做了。实际上呢,学习一门技术是需要一个过程的,期间也会有一定的规律。我们具体来看。
五.学习心得
#1.嵌入式系统的范围很广,指具有计算能力的非PC系统,即具有通常使用的个人电脑的全部或部分特质的专用计算机系统。如生活中的PDA、手机、电视机顶盒、数字电视、数码相机以及工业自动化仪表、医疗仪器等。它分硬件和软件两部分,硬件以嵌入式处理器(相当于PC的CPU)为核心,外扩ROM、RAM(相当于PC的硬盘、内存条)、输入/输出设备(PC的键盘/显示器)、各种通信接口(串口、USB、网络)等。软件由引导程序(PC的BIOS)、嵌入式操作系统(相当于PC机的Windows XP) 和应用程序(相当于在Windows XP上运行的程序,如金山词霸、Word等)3部分组成,或只有其中的某部分。
#2.目标要明确,不要得过且过,不要追逐热门的东西。不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。
#3要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔***的都知道,乔老爷子最常说的一句就是要享受比赛的时间。因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。
#4要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。
【嵌入式培训总结】相关文章:
嵌入式面试技巧04-17
嵌入式岗位职责05-20
嵌入式开发岗位职责04-17
嵌入式面试题及答案04-07
嵌入式面试自我介绍04-18
嵌入式系统发展前景03-21
嵌入式开发岗位职责3篇05-18
高级嵌入式工程师岗位职责05-05
培训公司培训总结09-23