【导语】嵌入式学习心得体会怎么写好?本为精选了4篇优秀的嵌入式学习心得体会范文范文,都是标准的书写参考模板。以下是小编为大家收集的嵌入式学习心得体会,仅供参考,希望您能喜欢。
1、熟悉cpu。x86中存在实模式和保护模式,cpu一上电后进入的是实模式,要进入保护模式则需要做一定的设置,最后做一个长跳转,就能进入保护模式。对于这一处理器的熟悉和了解,使得我对于处理器有一个很好的认识。此外,还得明白什么是芯片组、pci的原理和配置方法、sdram如何配置、ide的pio模式如何工作。
2、熟悉uc/osrtos并对其进行扩展。理解任务是如何实现的、任务是如何被调度的、mutex和semaphore是如何实现的、对处理器进行开关中断的目的是什么且要注意什么,等等。对于rtos的扩展则包括实现了一个采用malloc/free进行内存分配的堆管理模块,这一管理模块是参照xinu操作系统来实现的;对任务调度部分进行修改以方便中断服务程序的管理。
3、minux操作系统的文件系统移植到我们的dvr上。minux中采用的就是unix中的i-node的方式来管理文件的,这种方式在现在的linux中也能看到。由于minux的文件系统是针对小型存储设备的,所以对其代码要进行修改,以适应当时所采用的上g的硬盘。
4、xinu中的tcp协议栈移植到dvr上。
以上的工作内容让嵌入式技术人员对于操作系统的原理和实现得到了很好的实操。不过在嵌入式系统开发领域中这也只是入门级别。后续还有处理器操作、rtems操作系统、编译器和c语言的使用等都需要嵌入式开发人员慢慢精通。
嵌入式学习心得体会1
时间过的紧快,在粤嵌教育已经培训有5个月了,培训期间收获很多,也认识了班上的学习大神,经过系统的学习,老师的细心指导,我的付出努力,对于嵌入式上,学到很多实用的知识,在动手操作能力也加强了,不仅在专业技术方面有了很大进步,而且在实践操作方面我也对嵌入式有了更深入的了解。也许这5个月是我在外面学习和生活最宝贵的时间。
在校两年,读于电子信息工程技术专业的我,就觉得这专业学的知识太广了,不管基础还是动手操作,都要比较灵活。在校期间,学习单片机,传感器,c语言,嵌入式应用技术等课程。感觉学起来,对我来说接受还是比较快的,那时就有想过:学的多不如学的巧,也许在校对课程多于理论为主,理解它的原理和基本编程方式。其实,我还是有努力去学的,可以说,在校科任老师都教会我很多专业知识,为我将来的学习和发展打好基础。
在大三期间,为了更明确自己要走的方向,去培训嵌入式软件开发。也许将要投身嵌入式行业的我,就注定这条路要付出很多时间和精力,但可能我好求比较强,接受还行,就不停给自己打气,努力!要去培训嵌入式时,我从网上也对它有更加的理解,也看下大2学的嵌入式应用技术书,嵌入式系统是软件和硬件的综合体,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
刚开始嵌入式学习,对linux系统的知识加于巩固。一些简单的代码,c语言,对于嵌入式软件还是硬件开发的人员,对c语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用c语言。在下来几个月就对linux系统,数据结构、系统移植的方法、a8的体系结构、linux内核及驱动设计、android、c+java的jni应用编程的系统学习。在每学个阶段就作一个考试,对前面所学的知识进行复习,有些会做一个简单的小项目,学以致用。知识量还是比较多,但教学也比较快,有些知识还没消化完,第二天又接受新知识,对于能在课上就可以对知识完全懂的并不多,晚上都用一两个小时来复习。经过5个月系统的学习,嵌入式技术方面有了很大进步,实践操作方面也对嵌入式有了更深入的了解。在最后一个月,基于a8(s5pv210)的嵌入式智能家居系统制作。
下面我谈谈在粤嵌教育的培训感受,我培训的地点是在科学城粤嵌教育培训中心的多媒体课室里,这里有学习环境非常好,在紧张的学习的过程中,你可以得到名师的指导,也可以体会到一流企业高质量的培训。在课堂上,老师们认真的演讲,以及手把手地教导,使每个学生都能够扎实地掌握到嵌入式的各方面的知识。而粤嵌教育的老师也是操作实践为主,实践是非常重要的,只有把知识掌握到位,才能达到学习的目的。
感谢粤嵌教育机构,感谢粤嵌教育老师。
嵌入式学习心得体会2
首先,我们学习的课本是嵌入式系统应用教程。我学习的体会是这样的: 开始时,由于是刚刚入门,对老师书的好多东西是好奇的,好多名词也是新鲜的,不过不太懂什么意思。但是慢慢的,了解的深入让我有了更深的感触和体会。
在嵌入式的学习过程中,让我了解了什么是嵌入式系统。它就是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能、可靠性、成本、体积、功耗有严格要求的计算机系统。他一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序四个部分组成,用于实现对其他设备的控制、监视或管理功能。嵌入式系统已经应用于科学研究、工业控制、军事技术、交通通信、医疗卫生、消费娱乐等领域,人们日常使用的手机、pda、汽车、智能家电、gps等均是嵌入式系统的典型代表。
一开始我们就学习嵌入式的系统的基础部分,那很简单,就是一些定义或是介绍之类的。在进入第二章时,就开始学习了嵌入式开发过程中的主要操作系统——linux,在接下来的课程中,我发现嵌入式的学习过程还是蛮有趣的。在对linux的学习中,我们对它有了一点点的了解,接着就是学习一虚拟机的方式安装linux。对我来说有趣的就是安装的过程了,首先我们跟着老师的脚步走,学会了怎么安装,在自己动手进行对它的安装,这个过程是简单而有趣的。这样的开始让我对它充满了兴趣,也对以后的学习充满了信心。
其次就是安装好了之后,老师就更深一步的教我们应用了。在这是老师首先交给我们的是一些简单的命令应用,linux具有很丰富的命令,绝大多数命令具有大量的参数。在学习命令的过程中,只要你认真的看着老师操作还有认真听着他讲,你就会发现有些命令的操作还是很简单的,不过在操作的过程中,我也有遇到有些困难,会出现你按照书上学习的例子,将命令输入终端时会出现你不想要的结果,也就是错误的结果。这是问问旁边的同学或是懂的同学就可以解决了。在对于这部分的学习中,让我知道了命令对于嵌入式的重要性。它是linux的重要内容,linux中所有的`功能都是通过命令执行。在实际应用中,为了减少系统开销,经常不使用图形界面,此时,对系统的所有操作都需要以命令方式来执行。在嵌入式系统开发过程中,由于目标机的性能和配置比较低,因此,一般情况下目标机仅具有命令窗口而没有图形界面,对目标机的所有操作都通过命令来实现。
还有的那就是进一步学习与嵌入式系统开发相关的linux的服务,他们的启动、设置等的操作和应用。而在学习之中,我们主要介绍的是嵌入式系统中开发工程使用的tftp、telent和nfs服务。第一个实现的事上机位与下机位之间文件的传输、无磁盘网络的设备的启动等功能;第二个实现的事远程登录功能;第三个实现的是网络文件系统功能。
从以上的内容之中,并不难感受到我们的学习过程是由浅入深的,这对于我们的学习也有了较好的帮助。
当然,我们学习的不仅仅是这么几个内容,其中还有相关的实验内容。在我们基础的学习的过程之中,我有了这么一点的感受,总的来说就是概念加专业名词还有介绍加实验。不过你绝对不能小看那些概念和介绍,它对我们有着很重要的指导作用哦!实验那就更不用说了,它提高我们的动手能力,在实验的过程中还能让你更加理解书中的理念,这就是我学习嵌入式的感受。
嵌入式学习的心得体会
导语:嵌入式是指以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。下面是小编给大家整理的嵌入式学习的心得体会,希望能给你带来帮助!
本人本科学的是电子信息工程专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下c语言语法,学完之后还不知道什么是c语言,只记住了char,int,long等占几个字节,if, while,for循环什么的,感觉也就能算一些小学就会的题目,全国计算机二级c语言也就糊涂的过了。我这个专业没学过c++,一开始不知道什么是面向对象,这可能会让人笑话了。不过这说的是实话,本科的时候,学院安排的课程大部分偏硬件部分,动手机会比较多,自然而然比较喜欢硬件方面。
在大二的时候就听学长说,单片机很难学,那时候经学长介绍,淘宝买了本郭天祥老师出的书《51单片机c语言教程》,一开始还真是不怎么懂,感觉有点像是看天书,然后硬着头皮去看,当我把51的结构看完了,就不像一开始那样一头雾水了,自己在纸上把51的结构图默画一遍,然后再把各个寄存器功能写一下,各个功能口的结构粗略画了下,然后觉得51整体已在我心中了,虽然没有什么作用,但是至少懂得这门课要怎么去学习。其实有些时候不是这个东西你不会,而是在不会的时候自己先告诉自己这个太难了,自己先放弃了。
在大三的时候,第一学期课比较少,我就经常待在图书馆,会去蛮看些专业相关的书籍,现在想想,那时候也是机缘巧合下,看到了一本书《从51到arm》,讲述的是从51系列单片机的一般知识出发,将arm处理器和51系列单片机进行对比,引导读者去理解和学习arm处理器的知识。那个时候也有考虑到以后就业的问题,就想到一件事情,如果去应聘工作的话,每个工科院校电子信息类的毕业生都会异口同声地说:我会51系列单片机。当他说这句话的时候,他和别人是站在同一起跑线上的。可我们完全有可能和别人不站在同一起跑线上。正是这本书给我开启了另外一扇大门,让我初步了解了嵌入式。后来去报考全国计算机等级考试三级教程——嵌入式系统开发技术,在图书馆奋斗了两个月,最后取得优秀的成绩,也让我进一步了解嵌入式系统。
在大四的时候,我们有嵌入式的选修课,不过当时因为考研的缘故,就没有去上过这门课,好可惜呀!但是,在选择读研研究方向的时候我还是毅然选择了嵌入式方向,我知道这将成为我未来三年研究的方向。这学期(研一下学期),很开心能够再次接触嵌入式系统这门课程,对于导师教的这门课程,我觉得自己上课还是蛮认真听讲的,当然也被师在台上那讲得头头是道,温文儒雅的风姿所吸引。对于没有学过微机8086的我,有些时候,老师用微机与嵌入式的对比让我头脑没有相关概念...
首先,我对嵌入式在概念上有了一个比较精确的了解。嵌入式是指以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。它由硬件平台和系统软件组成。硬件平台指嵌入式处理器和与之通过接口连接的外围硬件平台。系统软件是指实时操作系统和用户应用软件。
谈到硬件部分,我首先想到的是嵌入式处理器那些外围功能模块。对于这部分的学习,我当初花了好长时间看《深入浅出arm7——lpc2400》这本书,现在想想觉得自己学习方法没用对,完全没有那个必要,自己却花了大把时间在看这些寄存器引脚的使用,因为单纯的看过之后还是很容易忘的,之后在进行实验的时候还是翻书来查就证明了这一点。不过一些最基本的模块,例如通用输入/输出口(gpio),通用异步收发器(uart),向量中断控制器(vic),外部中断输入和定时器/计数器还是需要看书认真去记住那些常用的引脚功能。对于cpu异常这部分,我一开始以为异常就是中断,因为处理程序流程设计是相似的,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。当时还对老师提出的一个看法有点疑义,51可以处理中断嵌套而arm处理器却不能?我当时脑子里面就在想:中断不都是有硬件设备产生的,那按常理来讲arm处理器也可以处理的呀。后来在认真查书,发现cpu异常有7种:复位,数据中止,中断,快中断,预取中止,未定义,软件中断。而异常向量会使cpu转入异常入口地址执行程序,开始了异常处理。同理的话,中断向量使cpu转入中断入口地址执行程序,开始了中断处理。即当发生irq中断时,程序返回地址被存入该irq中断模式下的lr,如果继续发生irq中断,那第二次的中断返回地址也还是被存入该irq中断模式下的lr中,那先前发生中断时候存入的程序返回地址将被覆盖掉,导致不能返回正确的位置。在我解决这个问题的期间,每次睡前思维准会定格在这问题上,久久不能绕出来,其实有时候查书还是最好的解决方案,因为网络资源只能提供给我们部分的参考资料。
对于arm汇编语言这部分的学习,我认为是需要重视的,学汇编不是说用这语言做多牛逼的事情, 问题的关键在于, 学透了汇编会使你真正理解计算机。另外一方面,只要以后在嵌入式工作中你迟早会在某个阴暗的角落里遇到汇编。“不管你承认不承认, 现在的cpu没有直接跑高级语言的, 哪怕是虚拟机也都是类似汇编的指令集.当遇到崩溃分析, 性能优化甚至编译器抽风等等的时候, 汇编是你最后一根救命稻草(这句话是福来师兄讲的)。”为此他给了我们一份资料,周立功lpc21xx/lpc22xx系列arm7启动代码分析,主要讲述的是startup.s文件的分析,看了下才发现老师上课讲的那个启动代码分析很多不理解之处这里都有详细的介绍,这分析太精辟了。
学 arm7这么久,我认为从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和c语言的板级编程。如果从软件上讲,就是要学习基于arm处理器的操作系统层面 的驱动和移植。这些对于我们初学者来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和c编程还是要会的。
μc/os-ii 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。μc /os-ii是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μc/os-ii绝大部分的代码是用ansi的c语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。
μc/os-ii可以大致分成内核结构、任务管理、时间管理、任务之间通信与同步4个部分。内核结构是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。任务管理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μc/os-ii是以任务为基本单位调度的,所以这部分内容也相当重要。μc/os-ii中的最小时钟单位是timetick(时钟节拍),任务延时等操作是在时间管理这部分完成的。任务之间通信与同步为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。μc/os-ⅱ操作系统是在main中建立的,首先要系统初始化,osinit,初始化系统所有的变量和数据结构。然后进行任务的创建,ostaskcreate;之后进行多任务的启动,osstart。在进行任务的并行处理的时候,一个任务的程序是顺序执行的,而不同任务的程序却是并行执行的。从应用程序的观点来看,此处的并行处理只是一个假象。而实际上它是通过实时操作系统的内核控制任务之间的切换来实现的,也就是任务调度啦。
μcos-ⅱ总是运行进入就绪态任务中优先级最高的那一个。当创建新任务时,或当前任务调用一些可能把自己挂起的系统函数(如osmboxpend)时,内核就要进行任务切换。在上述的场合,任务级的调度是由函数ossched完成的。
在一个多任务的应用工程中,任务之间并不是完全独立的,它们存在一些需相互配合的处理,这些相互配合是靠任务间的通讯或同步,信号量、邮箱、消息队列可以实现这种任务与任务,任务与中断服务函数间的通讯与同步。
邮箱可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的'变量。而信号量不可以,其只能发送信号量。消息队列可以使一个任务或者中断服务子程序向另一个任务发送以指针方式定义的变量。因具体的应用有所不同,每个指针指向的数据结构变量也有所不同,实际上,我们可以将消息队列看作多个邮箱组成的数组,只是它们共用一个等待任务列表。
我们实验所用的arm开发工具是ads1.2。armads全称为arm developer suite,是arm公司推出的新一代arm集成开发工具。现在ads的最新版本是1.2,支持软件调试及jtag硬件仿真调试、支持汇编、c语言、c++源程序,具有编译效率高、系统库功能强等特点。在安装ads1.2的时候出现过小问题,当时我的电脑是64位的,安装完之后显示不了,后来百度查找到原因,竟然是文件夹放错地方,应该放在program files(x86)这个文件夹中。后来有同学问我这方面的问题,但是发现他们的ads1.2安装不了的原因是因为licence弄错了。在打开codewarrior for arm developer suite的时候,一定要记得选debuginchipram,否则make都出现很多error,而且那些几乎都是未定义函数的错误。之后就进行debug,调试成功之后会跳出axd的界面,选择options里面的configuretarget,再添加h-jtag的文件,之后点击go,程序会跳出汇编语言的界面,再点击下就跳到c语言程序入口地址,之后再点击下go,程序就开始跑起来。前面所述的这些步骤是理想情况下程序自身没有发生错误,当然在调试过程中,还是有很多硬件上的问题,一方面是有些开发板可能用久了,用jtag并口连接的时候接触不良,很容易自动掉线,常出现未连接设备的的error,还有一方面是跑程序过程常会出现兼容性的问题,导致程序axd调试时候会出现卡在某个部分一直进入死循环,这个后来是解决了,但是偶尔还是会出现这个bug。
通过这学期对嵌入式的学习,我发现自己尚未掌握的知识点还是蛮多的,尤其是对μc/os-ii的移植方面,我只是理论上粗略了解,没有经过实验的操作。还有对存储器加速模块(mam)这方面不够了解,主要一方面当初在做消息队列采集实验(keysem_sampdataqeue),这个模块被代替掉,不需要使用它,所以后来也没有去掌握相关知识点。对于任务就绪算法这部分,我只是上课的时候听“懂”了,课后自己再看完全懵了。对于can总线调试的部分,老师上课没有讲到这部分的介绍与应用,但是后来通过自己对实验室师兄们所做的课题初步了解,发现我自己有必要去弄懂它的构造和原理。
“看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。”依然记得当初不懂怎么解决某个问题的时候请教李硕师兄,师兄对我说的这番话。自己在μc/os-ii这部分内容挣扎了好久,现在想想,觉得当初不应该一上来就直接阅读内核源代码,看了一些自己把头撞破也想不明白的事,这样直接正面打击我学习嵌入式的积极性。学习啊,还是得要循序渐进。如果你想学习嵌入式一定要有块学习板。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西。记得我第一次仿写led的驱动,想自己试一下,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。
对于初学者,有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,最后等着别人去回复,当见没人回复就开始抱怨。这种做法是不可取的,有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。
最后,我想说的是嵌入式系统的学习和研究一旦我们达到了一定的水平后,其实很简单,就是如何去看cpu和相关芯片的datasheet!
我们学习的课本是嵌入式系统应用教程。我学习的体会是这样的:
开始时,由于是刚刚入门,对老师说的好多东西很好奇,列如c语言也是新鲜的,不过不太懂什么意思。但是慢慢的,了解深入后让我有了更深的感触和体会。在嵌入式的学习过程中,让我了解了什么是嵌入式系统。它就是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能、可靠性、成本、体积、功耗有严格要求的计算机系统。他一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序四个部分组成,用于实现对其他设备的控制、监视或管理功能。嵌入式系统已经应用于科学研究、工业控制、军事技术、交通通信、医疗卫生、消费娱乐等领域,人们日常使用的手机、pda、汽车、智能家电、gps等均是嵌入式系统的典型代表。
在学习命令的过程中,只要你认真的看着老师操作还有认真听着他讲,你就会发现有些命令的操作还是很简单的,不过在操作的过程中,有时也会遇到困难,有时你按照书上学习的例子,命令输入终端时会出现你不想要的结果,也就是错误的结果。这是问问旁边的同学或是懂得的同学就可以解决了。
在对于这部分的学习中,让我知道了命令对于嵌入式的重要性。它是linux的重要内容,linux中所有的功能都是通过命令执行。在实际应用中,为了减少系统开销,经常不使用图形界面,此时,对系统的所有操作都需要以命令方式来执行。在嵌入式系统开发过程中,由于目标机的性能和配置比较低,因此,一般情况下标机仅具有命令窗口而没有图形界面,对目标机的所有操作都通过命令来实现。还有的那就是进一步学习与嵌入式系统开发相关的linux的服务,他们的启动、设置等的操作和应用。而在学习之中,我们主要介绍的是嵌入式系统中开发工程使用的tftp、telent和nfs服务。第一个实现的是上机位与下机位之间文件的传输、无磁盘网络设备的启动等功能;第二个实现的是远程登录功能;第三个实现的是网络文件系统功能。
从以上的内容之中,并不难感受到我们的学习过程是由浅入深的,这对于我们的学习也有了较好的帮助。当然,我们学习的不仅仅是这么几个内容,其中还有相关的实验内容。在我们基础的学习过程之中,我有了这么一点的感受,总的来说就是概念加专业名词还有介绍加实验。不过你绝对不能小看那些概念和介绍,它对我们有着很重要的指导作用哦!实验那就更不用说了,它提高我们的动手能力,在实验的过程中还能让你更加理解书中的理念,这就是我学习嵌入式的感受。
学习是可贵的,培训是精彩的。通过这次可贵而精彩的培训学习,我们向嵌入式迈进了一步。感叹与憧憬之余,我想我们只有靠自己的聪明与才智、努力与勤奋去追求我们的美好生活。
4位用户关注
7位用户关注
3位用户关注
3位用户关注
3位用户关注
3位用户关注
10位用户关注
15位用户关注