嵌入式系统学习心得【优秀6篇】

时间:2011-08-04 01:24:45
染雾
分享
WORD下载 PDF下载 投诉

嵌入式系统学习心得 篇一

在学习嵌入式系统的过程中,我深刻体会到了嵌入式系统的重要性和应用广泛性。嵌入式系统是一种特殊的计算机系统,它被嵌入到其他设备或系统中,用于控制和执行特定的任务。它广泛应用于家电、汽车、医疗设备、机器人等各个领域,是现代社会不可或缺的一部分。

首先,学习嵌入式系统让我对计算机硬件有了更深入的了解。嵌入式系统通常由处理器、内存、输入输出设备等硬件组成,对硬件的了解是学习嵌入式系统的基础。通过学习,我了解到了各种不同的处理器架构,例如ARM、MIPS等,并学会了如何根据不同的需求选择适合的处理器。此外,我还学习了如何设计和连接各种输入输出设备,包括传感器、显示器、通信模块等,使其能够与嵌入式系统进行交互。

其次,学习嵌入式系统让我对软件开发有了更深入的了解。嵌入式系统的软件开发与传统的桌面应用程序开发有所不同,需要考虑到资源受限的问题。通过学习,我了解到了如何进行嵌入式系统的裁剪和优化,以减少系统资源的占用。我还学习了如何使用嵌入式操作系统(如Linux、FreeRTOS等)来管理系统资源和调度任务,以提高系统的性能和可靠性。

最后,学习嵌入式系统让我对系统调试和故障排除有了更深入的了解。由于嵌入式系统通常与其他硬件设备或外部系统进行交互,因此在开发和部署过程中可能会遇到各种问题。通过学习,我学会了如何使用调试工具和技术来定位和解决问题。我还学习了如何进行系统性能分析和调优,以提高系统的响应速度和稳定性。

总的来说,学习嵌入式系统是一项具有挑战性但也非常有意义的任务。通过学习,我不仅扩展了对计算机硬件和软件开发的知识,还培养了解决问题和团队合作的能力。嵌入式系统的学习不仅仅是为了掌握一门技术,更是为了应对日益复杂和多样化的现代社会需求。我相信,通过不断学习和实践,我能够在嵌入式系统领域取得更大的成就。

嵌入式系统学习心得 篇二

在学习嵌入式系统的过程中,我深刻体会到了嵌入式系统的应用广泛性和发展前景。嵌入式系统作为一种特殊的计算机系统,被广泛应用于各个领域,如家电、汽车、医疗设备等。随着科技的发展和社会的进步,嵌入式系统的需求也越来越大,因此学习嵌入式系统对于我来说是非常有意义的。

首先,学习嵌入式系统让我了解到了嵌入式系统的应用场景和特点。嵌入式系统通常被嵌入到其他设备或系统中,用于控制和执行特定的任务。它具有体积小、功耗低、性能高、可靠性强等特点,能够满足各种特殊需求。通过学习,我了解到了嵌入式系统在家电领域的应用,如智能电视、智能空调等;在汽车领域的应用,如车载导航、智能驾驶等;以及在医疗设备领域的应用,如心脏起搏器、健康监测设备等。这些应用不仅方便了人们的生活,也提高了工作效率和生产效益。

其次,学习嵌入式系统让我了解到了嵌入式系统的开发流程和方法。嵌入式系统的开发流程包括需求分析、系统设计、软硬件开发、调试验证等多个阶段。通过学习,我学会了如何进行需求分析和系统设计,如何选择合适的硬件和软件平台,如何进行软硬件的开发和集成,以及如何进行系统的调试和验证。这些知识和技能对于我未来从事嵌入式系统开发工作非常有帮助。

最后,学习嵌入式系统让我了解到了嵌入式系统的未来发展趋势。随着物联网和人工智能的兴起,嵌入式系统的需求将进一步增加。嵌入式系统将与云计算、大数据、人工智能等技术相结合,为人们提供更加智能化、便捷化的服务和产品。通过学习,我了解到了嵌入式系统与物联网和人工智能的关系,以及它们在未来的发展方向和应用前景。

总的来说,学习嵌入式系统是一项具有挑战性但也非常有前景的任务。通过学习,我不仅扩展了对嵌入式系统的了解和知识,还培养了解决问题和创新思维的能力。我相信,通过不断学习和实践,我能够在嵌入式系统领域取得更大的成就,并为社会的发展做出自己的贡献。

嵌入式系统学习心得 篇三

  一、嵌入式系统的概念

  着重理解“嵌入”的概念

  主要从三个方面上来理解。

  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中就实现了一个真正的“嵌入”。

  以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科

  二、嵌入式系统的分层与专业的分类。

  嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。

  1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。

  硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。

  2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。

  驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。

  3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。

  4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Java方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。

  三、目标与定位。

  先有目标,再去定位。

  学ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面的驱动、移植了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上基于API的应用层的编程,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。因此针对于嵌入式系统的硬件层和驱动程的人,ARM的接口电路设计、ARM的C语言和汇编语言编程及调试开发环境还是需要掌握的。

  因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。

  如果想从嵌入式系统的应用层面的走的话,可能与ARM及其它体系相去较远,要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如WinCe操作系统下的EVC应用开发(与windows下的VC相类似),如果想再有突破就往某些音视频类的协议上靠,比如VOIP领域的基于SIP或H。323协议的应用层开发,或是基于嵌入式网络数据库的开发等等。

  对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应的高工资,我是做硬件层的,以前每月工资中个人所得税要被扣上近3千大元,当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间就那些。硬件这方面上可能与我PK的人很少了,才让我拿到那么多的工资。

  四、开发系统选择。

  很多ARM初学者都希望有一套自己能用的系统,但他们住住会产生一种错误认识就是认为处理器版本越高、性能越高越好,就象很多人认为ARM9与ARM7好,我想对于初学者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的那个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操作系统层面或应用层面上走,不管是驱动还是应用,那当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。

  在某种意义上请,ARM7与9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如286和386。对于用户来讲可能觉查不到什么,只能是感觉速度有些快而已。

  ARM7比较适合于那些想从硬件层面上走的人,因为ARM7系列处理器内部带MMU的很少,而且比较好控制,就比如S3C44B0来讲,可以很容易将Cache关了,而且内部接口寄存器很容易看明白,各种接口对于用硬件程序控制或AXD单步命令行指令都可以控制起来,基于51单片机的思想很容易能把他搞懂,就当成个32位的单片机,从而消除很多51工程师想转为嵌入式系统硬件ARM开发工程师的困惑,从而不会被业界某此不是真正懂嵌入式烂公司带到操作系统层面上去,让他们望而失畏,让业界更加缺少这方面的人才。

  而嵌入式系统不管硬件设计还是软件驱动方面都是十分注重接口这部分的,选择平台还要考察一个处理器的外部资源,你接触外部资源越多,越熟悉他们那你以后就业成功的机率就越高,这就是招聘时所说的有无“相关技能”,因为一个人不可能在短短几年内把所有的处理器都接触一遍,而招聘单位所用的处理器就可能是我们完全没有见过的,就拿台湾数十家小公司(市价几千万)的公司生产的ARM类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能招有相关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口设计,在软件上讲是操作系统方面相关接口驱动及应用开发经验。我从业近十年,20xx年ARM出现,我一天始做ARM7,然后直接跑到了Xscale(这个板本在ARM10—11之间),一做就是五年,招人面试都不下数百人,在这些方面还是深有体会的。

  我个人认为三星的S3C44b0对初学者来说比较合适,为什么这么说哪?因为接口资源比较丰富,技术成熟,资料较多,应该十分适合于初学者,有问题可能很容易找人帮且解决,因为大多数人都很熟悉,就如同51类的单片机,有N多位专家级的人物可以给你帮忙,相关问题得以很快解答,所然业界认为这款ARM都做用得烂了,但对于初学者来,就却是件好事。

  因此开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资源、还要看业界的通用性。

  五、如何看待培训。

  首先说说我自己,我目前从业近十年,与国内嵌入式系统行业共同起步,一直站在嵌入式系统行业前沿,设计过多款高端嵌入式系统平台产品并为众多公司提供过解决方案,离职前为从事VOIP的美资公司设计IP—PBX,历任项目经理、项目主管、技术总监、部门经理,积累众多人脉,并集多年经验所得,考虑到学生就业与公司招人的不相匹配,公司想招人招不到,而学生和刚毕业的工程师想找份工作也不太容易,于此力创知天行科技有限公司,开展嵌入式系统教育培训。

  因一线的科研人员和一线的教师不相接触,导至国内嵌入式人才缺乏,国外高校的技术超前于业界公司,而国内情况是业界公司方面的嵌入式系统技术要远远领先于高校。为架构业界与高校沟通的桥梁,把先进技能带给高校学子,为学生在就业竞争中打造一张王牌,并为业界工程师快速提升实现自我创造机遇,我就这样辞去了外企年薪20多万的职位,做嵌入式系统方面的培训了。

  对于培训来讲,是花钱来买时间,很多工程师都喜欢自己学,认为培训不值,这也是有可能的,纯为赚钱的培训当然不会太有价值,但对于实力型的培训他们可能就亏大了,有这样一笔帐不知他们算过没有,如果一个一周的培训,能带给他们自学两年后才能掌握的知识,在培训完后他们用三个月到半年时间消化培训内容,这样他会省约至少一年半的时间来学其它的或重新站在另一个高度上工作,那么他将最迟一年后会拿到他两年后水平所对应的工资,就是在工资与水平对应的关系上比同批人缩短一年,每月按最少1千计,再减去培训费用至少多1.0万,同时也省了一年时间,不管是休闲也好,再继续提高也好,总之是跑到了队伍的前面了。

  另一层面上讲,对于新人的培训相当于他们为自己提前买了份失业保险,有师傅会带领他们入道,我今年暑假时班里最年轻的一个学生是大二的,今年才上大三,这学期才刚学单片机,但现在ARM方面的编程工作已经搞得有声有色了,再过一年多毕业,他还会失业吗?再者通过培训,你可以知道很多业界不为常人所知的事,同时也为自己找了个师傅,就比如说,两个工程师分别用S3C2410和PXA255来做手持设备,同样两人都工作四年,再出去找工作,两人工资可能最多可相差一倍,为什么?这就是业界不为常人所知的规则,2410属于民品,被业界用烂了,做产品时成本特敏感,当然也对人才成本敏感了,PXA255是intel的东西,一个255 CPU能买三个2410,一直被业界定义为贵族产品,用的公司都是大公司或为军方服务的公司,不会在乎成本,只要把东西做好,一切都好说,但这方面做的人也少啊,因为开发系统贵啊。

  对于说为自已找了个好师傅,我想是这样的,因为同级工程师间存在着某此潜在的竞争关系,有很多人不愿意把自己知道的东西教给别人,这意味着他将要失业,就是所说的教会徒弟,饿死师傅,但对于我们这些人就不存在这样的关系了,我是在嵌入式系统平台设计上走到了一定程序,目前在国内这块的技术上已经是自己很难再突破自己,因此很多东西我对大家都是OPEN的,就比如说下面那部分关于接口设计中所提到的时序接口东西,我要是不讲,却使是高级硬件工程师我想也几乎只有10%的人能知道吧。

  六、成为高级嵌入式系统硬件工程师要具备的技能。

  首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。

  对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15K以上。

  另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类,国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗,即使做个IC前端验证工程师,也要搞上几年才能胜任。DSP硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如PXA255处理器I2C要求速度在100Kbps,如果把一个I2C外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接LCD,但为什么这种LCD就不能挂在ARM的总线上,还有ARM7总线上可以外接个Winband的SD卡控制器,但为什么这种控制器接不到ARM9或是Xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5V变1。8V的DC芯片,直接更换成LDO,有时就会把CPU烧上几个。前几天还有人希望我帮忙把他们以前基于PXA255平台的手持GPS设备做下程序优化,我问了一下情况,地图是存在SD卡中的,而SD卡与PXA255的MMC控制器间采用的SPI接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工

程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计PCB绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ECAD工程师,就是专业的画PCB板的工程师,和EMC设计工程师,帮人家解决EMC的问题。硬件工程师再往上就是板级测试工程师,就是C语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行验证。然后再交给基于操作系统级的驱动开发人员。

  总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头脑。

  那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握EDA设计的辅助工具类如ProtelORCADPowperPCBMaplux2ISE、VDHL语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方案设计这块,那就基本上快成为资深工程师了。

嵌入式系统学习心得 篇四

  嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

  看到了嵌入式系统的范围,你也应该知道嵌入式系统工程师是做什么的,就是开发上面的那些电子产品的工程师。

  关于如何学习嵌入式?

  学习嵌入式,该学习什么基本的知识呢?

  首先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,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。

  最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持,也可以看看如何坚持嵌入式学习!

嵌入式系统学习心得 篇五

  一、嵌入式系统及其应用概述

  嵌入式系统是以应用为中心,以计算机技术为基础,软件可编程,硬件可剪裁、重构的专用计算机系统。该系统通常嵌入在对象环境中,并通过其在对象环境下运行的特定程序,完成对外界物理参数地采集、处理,达到对控制对象地响应或人机交互的功能。

  目前,嵌入式系统的发展方向主要是解决接口多样性、适应性、灵活性和集成开发环境等的特定应用问题。嵌入式系统应用的底层性与对象系统的紧耦合性是其显着的基本特征。所以,最大限度的满足对象数据采集、控制、开发环境、功耗,以及适应能力、可靠性等品质因数是选择嵌入式系统的标准。

  为适应技术发展需求,嵌入系统在不断追求结构紧凑、坚固可靠、技术密集、高度分散的同时,尤以不断创新为嵌入式系统的发展核心。使嵌入系统凸现了高技术门槛,主要表现在软硬件设计的紧密相关性上,特别是构建RTOS系统需透彻了解RTOS的工作机制和系统资源配制,掌握底层软件、系统软件和应用软件的设计、调试方法。

  随着对嵌入式系统的智能化愈加关注,现场可编程、调试、引脚配置变得非常重要和必不可少。所以,用户可配置的SCO(在片系统)已成为现阶段嵌入式系统的核心发展技术。通过现场可编程阵列把接口应用设计和系统开发留给系统设计者,提供灵活、多样的片上电路设计平台,使电路板设计变成在片的芯片配置,将嵌入系统地设计带入了软硬件的双编程时期,进一步缩短了产品开发周期。而下一代的在片系统还将发展成一个MUC数量可缩放的集合体。

  在嵌入式应用系统中,虽然高端产品不断涌现,但由于应用对象、环境的不同特点,嵌入系统的8位机产品仍因应用对象的有限响应时间、完备的集成开发环境、良好的性价比等优势仍然占据着低端应用系统的主流地位。Cygnel公司的C8051F系列产品就充分印证了这点。

  回顾嵌入式系统的发展历程,已经历了由模拟向数字的演进过程,现又逐步演变为数模并存情形。由最初软件编程主宰的微处理器(嵌入式微处理器、数字信号处理器、单片机),到硬编程主宰的专用集成电路时代,再到今天的现场可编配置时代。嵌入式系统的核心技术正沿着“许氏循环”的浪潮不断前行。而配套的软件设计平台也随着科技进步在不断得到完善。可以预期,软硬双可编程的嵌入式系统时代必会带来更加便捷的开发环境和技术支持。

  二、嵌入系统的设计原则

  嵌入系统设计具有很强的针对性,软硬件协同设计是系统设计的关键。需解决好软硬件的同步与集成设计问题,要结合具体应用进行综合考虑,保证设计工作的一致性与正确性。在针对具体应用系统的功能目标分析基础上,分解整个系统的各项功能指标和技术要求,结合系统的实时响应要求、接口功能定义与标准、嵌入芯片的处理能力、编程语言、开发环境、产品的升级与维护问题、开发投入能力、产品综合成本等多方面因素进行权衡考虑。

  (一)在明确系统性能需求的基础上,细化以下考虑因素

  1、系统功能实现手段的软硬件分配。

  2、器(部)件选择和系统构建。包括微处理器芯片、外围接口电路、各种驱动电路形式、器部件类型、前后向通道处理方式、人机界面和手段等。

  3、控制算法设计以及软件系统的架构形式。

  4、语言选择。依据设计者熟练程度和习惯、开发环境和控制功能要求选取。

  5、抗干扰问题的解决与设计。包括软件的和硬件的、常规的和特定的。

  6、实现工艺和方式。包括印制板设计、走线安装、装配工艺、新材料或新技术的应用等。

  在各实施阶段,对项目进度、关键技术的风险因素必须进行审查评估,评价软一硬件的功能设计与分配,以及实现的技术性能、工作量和时间进度。明确电路之间的接口参数、软一硬件功能衔接,以及项目中存在的问题和缺陷,及时发现关键部位或矛盾突出点的瓶颈问题,将隐患排除在早期设计阶段。

  (二)嵌入系统中微处理器选择应考虑

  1、MCU的算术、逻辑处理能力;运算速度和时钟频率;总线控制功能、中断方式和仲裁机制;RAM和FLASHROM容量;软件加密保护。

  2、外围接口功能的可重构配置能力;数据通讯模式;前后向通道类型;端口电压的适应能力等;

  3、开发工具的在线调试或仿真能力;FLASH代码读写环境;编程语言的支持程度;代码的可移植性等。

  4、电源电压;功耗等。

  三、嵌入系统的软件特点

  嵌入式系统是可利用资源有限、专用性很强、实时性要求也很高的应用控制系统。故在软件设计方法和实现手段上,嵌入系统软件同PC机软件存在很大差异,主要表现在:

  (一)实时性的控制方法

  PC软件提升速率方法,极大依赖处理器性能提升,还体现在缓存方案、动态分配等技术手段上。但在嵌入式系统中应用这些技术就存在硬件资源不足、工作频率低的现实问题,会降低系统的可靠性。

  (二)特定的异构特征

  嵌入式控制软件设计既要考虑特定的硬件固有部分,也要考虑来自系统之外的各种通讯、传感器的专用信号处理接口,以及不同控制目标的实时期望和执行机构的.异步并发事件处理能力。因此不同的硬件系统或控制目标,将会产生不同的系统构建方案。

  (三)系统的性能目标

  编写嵌入式软件必须着重考虑与硬件系统相匹配的功耗、不间断运行、故障恢复、高可靠性等方面的约束条件,实现特定应用环境下的控制功能、实时性响应的目标要求。因此,嵌入系统要在借鉴通用软件技术,遵循软件工程理论,规范软件开发过程的同时。还应根据嵌入式系统特点研究开发技术和算法结构,提高开发效率,确保系统软件的质量和可靠性,以及软件的复用性、可移植性和易维护性。纵观嵌入式软件设计方法的发展历程,走过了从结构化设计、面向对象设计、基于构件的设计阶段,经历了单任务到多任务的系统转变。

嵌入式系统学习心得 篇六

  研究嵌入式系统已经有快两年的时间了。很庆幸自己当初选择了嵌入式系统作为自己的研究和职业方向,可以说它是一种催化剂,让我自身的修养和研究能力都有了很大的提高。

  在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢迎高手前辈们指正,以供刚接触的新人参考。

  在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,如果你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进行。

  (1)学习与生活心态

  很多朋友都是在刚步入大学校门开始接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的管理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追逐热门的东西。

  不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔XXX的都知道,乔老爷子最常说的一句就是要享受比赛的时间。

  因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。

  我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不开心的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。

  一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难受和可惜)。

  要给人以帮助。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可改变的。

  (2)编程语言的选择语言的争论。

  很多初学择,老是在学习何种语言上举棋不定,试问,中国牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的出现肯定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。

  就像高,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的基础上。放心,技术再飞跃也不会今天奔I,明天扣肉的迅速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。

  表明你是从基础学起才会问出这样的话来。但换而言之你一开始对这门语言调查的信息不足。庙算者胜,对自己身边的事物了解是非常重要的,这也能说明说你的教材或者教导你的人不够充分。如果是我对新手交流,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。

  这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,因为你知道这门语言的体系架构,你可以从更多的特性角度去挖掘使用它。提高自己对语言阅读能力。如何快速的进步?可以告诉你没有一步登天的办法,但是也可以告诉你如何让你快速掌握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么掌握普通话的,方法就不具体说了。

  编程的思维。计算机是充满诱惑的东西,很多人都说热爱计算机,那只是它的表面,你热爱的只是他的一种扩展性的东西。能学计算机我很高兴,因为计算机从某种意义上来说将空间的距离给消除掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的逻辑思维来解决它,可以以一种战争狂人的思维来摧毁它。

  你可以将你的这种思维体现在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比如数学,微积分,离散,无数的定理,你学完以后可能永远都用不到,但是你可能有这种感觉,在你碰到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。

嵌入式系统学习心得【优秀6篇】

手机扫码分享

Top