好好学习,天天向上,写范文网欢迎您!
当前位置:首页 > > 工作范文 > > 心得体会 > 正文

嵌入式系统学习心得4篇

2022-11-03 13:26:00心得体会

  下面是范文网小编分享的嵌入式系统学习心得4篇,供大家赏析。

嵌入式系统学习心得4篇

嵌入式系统学习心得1

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

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

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

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

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

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

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

  二、嵌入系统的设计原则

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

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

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

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

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

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

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

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

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

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

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

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

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

  4、电源电压;功耗等。

  三、嵌入系统的软件特点

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

  (一)实时性的控制方法

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

  (二)特定的异构特征

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

  (三)系统的性能目标

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

嵌入式系统学习心得2

  嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、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,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。

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

嵌入式系统学习心得3

  就我个人而言,从最开始对嵌入式一窍不通到现在越学越感兴趣,当然相应在嵌入式方面的提高也是很明显的。学习嵌入式越来越成为我学习中的一部分,现在把我的学习过程的心得体会与大家一起分享,希望那些和我一样对嵌入式想学而又迷茫,不知从哪入手的同学朋友有所帮助。

  1 .基础知识

  嵌入式开发很大一部分靠C语言,尤其在底层驱动等用的很多,当然在应用开发还用到诸如C++等其他语言,但我想对于一个初学者有C基础就足够了,等到学到一定程度再去扩展。所以C基础是学嵌入式的前提。

  关于C语言需要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些实际中用的很少的东西。C++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。

  操作系统原理也需要基本理解和掌握的,我记得我上课的时候不以为然没有认真学习,后来发现很多的东西都是在这个课上讲到的。什么时间片啊,任务调度啊,都是在那里知道的。

  Linux基本命令的使用(vi编辑器必须会用,因为在终端修改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我学习嵌入Linux就强迫自己去改掉这个习惯了,Linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。Linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等。

  2.单片机知识的学习

  我觉得单片机、嵌入式等这一类都有很大的相似性,知识功能不一样,但工作的原理、控制原理都和大的相似。就我个人而言,能比较快的进入嵌入式的学习与提高,很大一部分依赖于对单片机的原理有较深入的学习和理解,单片机比较简单,学习起来相对比较容易,所以我建议想学嵌入式的同学,可以和我一样从单片机入手,那样不仅可以理解这些微处理器、微控制器的操作与控制原理,当然还可以顺便学学汇编语言,这对后面的嵌入式学习都有很大的帮助。

  看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读Linux内核源代码,看一些自己把头撞破也想不明白的事,一开始很打击我的积极性,要循序渐进,刚开始我就从学习做led开始的,接着学习做个串口,慢慢的就开始学着做硬件编解码了。

  3.学习开发板

  我在刚开始学习嵌入式时就买了一块学习板,现在的开发板不是很贵,给很我们初学者减轻了经济负担。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西,记得我第一次写led的驱动,想自己试一下,网上也有人写过相关的代码,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。

  4.不要好高骛远,要脚踏实地

  我拿到开发板时,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,“那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!!”,然后等着别人去回复。我觉得有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去Google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得我们有一点点水平啦。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给我们,我们也不明白是怎么回事啊。

  5多看代码,多写代码

  见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。

  个人觉得这是最重要的一种做法。这东西没自己亲手做,程序没亲手写,没有进行调试等,都是很难学到东西,因为很多东西感觉看的都懂,其实真正做起来就什么都不会了。因此买块板来自己做,这样才能真正将所学的应用到实际中去。而且这样做印象才能深刻,死记硬背原理及规则不但不可行还会拖垮你的学习兴趣,自然学不下。

  总之,我觉得,基础知识很重要,但是动手做更重要!

嵌入式系统学习心得4

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

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

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

  (1)学习与生活心态

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

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

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

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

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

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

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

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

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

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

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

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

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


相关热搜
相关文章