嵌入式实训心得第1部分
我们学习的教材是《嵌入式系统应用教程》。 我的学习经历是这样的:
一开始,因为刚刚入门,所以对老师讲的很多东西都很好奇。 比如C语言也是新的,但我不太明白它的意思。 但慢慢地,随着了解的深入,我有了更深的感受和理解。 在嵌入式学习过程中,我了解了什么是嵌入式系统。 它是以计算机技术为基础、以应用为中心、软硬件可定制、适合不同应用、对功能、可靠性、成本、体积、功耗有严格要求的计算机系统。 它一般由四部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序,用于控制、监视或管理其他设备。 嵌入式系统已应用于科学研究、工业控制、军事技术、交通通信、医疗卫生、消费娱乐等领域。 人们日常使用的手机、PDA、汽车、智能家电、GPS等都是嵌入式系统的典型代表。
在学习命令的过程中,只要你仔细看老师操作,仔细听他说的话,你会发现有些命令的操作还是很简单的,但是在操作的过程中,有时你会遇到困难。 有时,当你按照书上学到的例子,在终端中输入命令时,你会得到不想要的结果,即错误的结果。 这个可以询问旁边的同学或者懂的人来解决。
在这部分的学习中,我了解到了命令对于嵌入式的重要性。 它是Linux的重要组成部分。 Linux中的所有功能都是通过命令来执行的。 在实际应用中,为了减少系统开销,往往不使用图形界面。 此时对系统的所有操作都需要在命令模式下进行。 在嵌入式系统的开发过程中,由于目标机的性能和配置比较低,一般目标机只有命令窗口,没有图形界面,对目标机的所有操作都是通过命令来实现。 另外就是进一步学习嵌入式系统开发相关的Linux服务,它们的启动、设置等操作和应用。 在学习过程中,我们主要介绍了嵌入式系统开发项目中使用的TFTP、Telent和NFS服务。 第一个实现上位机和下位机之间的文件传输、无盘网络设备的启动等功能; 第二个实现远程登录功能; 三是实现网络文件系统功能。
从上面的内容我们不难感受到我们的学习过程是由浅入深的,这对于我们的学习也是很有帮助的。 当然,我们学习的不仅仅是这几个内容,还有相关的实验内容。 在我们基础学习的过程中,我有这样的一点体会。 总的来说就是概念加专业术语,介绍加实验。 但你千万不要低估那些概念和介绍。 对我们有着非常重要的指导作用! 实验就更不用说了,提高了我们的动手能力,让你在实验的过程中更好的理解书本。 概念,这就是我学习嵌入式的感受。
学习是有价值的,培训是美妙的。 通过这次宝贵而精彩的培训和学习,我们向嵌入性迈出了一步。 除了感叹和憧憬之外,我想我们只能依靠自己的聪明才智、勤奋和勤奋来追求我们美好的生活。
嵌入式实训心得第二部分
4月10日,一期Linux开发基础培训班圆满结束。 回顾这些天所学到的一切,灵活应用过程中知识点的积累和Linux操作的速度让我深受感动。 高效的表现,这也是我追求的效率!
刚开始参加培训班第一课的时候,大家都说Linux操作非常繁琐复杂,我心里总是有一些顾忌。 带着种种不安和一点竞争的决心,我开始了自我提升的“充电”阶段,在徐海兵老师的指导下,我们在基础课的训练中,像小学生一样认真记笔记,认真听,学。如何应用我们在实践中学到的Linux下各种强大的命令集。
在第一单元中,徐老师详细、形象地向我们讲述了Linux的诞生、最初的成长以及发展至今的辉煌。 未来它的应用范围会越来越广泛,他还讲解了很多为Linux这个伟大的操作系统做出了巨大贡献的东西。 他们是杰出而伟大的人。 他们的钻研精神、毅力和抓住难得机会的勇气。 他们从小事做起,脚踏实地创建了Linux,为人类科技的发展做出了杰出的贡献。 Unix)系统,都值得我们深刻反思、刻苦学习、继承和永恒发展。
检查IP地址和重新启动网络服务是我学到的第一个命令:ifconfig eth0,ifconfig eth0 IP地址,服务网络重新启动。 我了解到xmanager可以作为远程登录软件。
secureCRT是我们常用的。 安装完成后,我们用它来登录Red Hat Linux。 我们需要知道Linux主机的IP地址。 徐老师给我们介绍了重要的内容:SHELL,也就是运行程序的程序。 例如echo $$SHELL可以检查SHELL的环境变量是csh还是bash。 命令pwd可以查看当前路径,passwd:Linux下更改密码,只有root用户有此权限。 当然,我们使用虚拟机VMware程序来运行Linux操作系统,我们知道如何设置虚拟机的网卡设置、暂停、恢复、全屏等。
嵌入式实训心得第三部分
这学期刚接触嵌入式系统,感觉还不是入门。 通过学习,我了解到嵌入式有很大的发展前景。 嵌入式应用于各个领域。 如果你学好嵌入式,你就不用为生计发愁了。
广义上讲,任何带有微处理器的专用软件和硬件系统都是嵌入式系统。 如各类单片机和DSP系统。 狭义上讲,那些采用嵌入式微处理器组成独立系统、有自己的操作系统、具有特定功能、用于特定场合的专用软硬件系统称为嵌入式系统。 嵌入式系统由嵌入式硬件和嵌入式软件组成; 嵌入式硬件以芯片、模板、组件和控制器的形式嵌入设备内部。
理解“嵌入性”的概念主要从三个方面来理解。
1、硬件方面,将基于CPU的外围设备集成到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内存、1G10或10G1以太网口或Febre通道光通道。 IXP系列应该是Intel基于ARM系统架构集成Xscale核心的最高处理器。
2. 要启动软件,请在定制的操作系统内核中选择应用程序,编译它,并将内核下载到ROM。 定制操作系统内核时选择的应用组件完成了软件的“嵌入”。 比如WinCE在定制内核时会有相应的选择,包括写字板、PDF、MediaPlay等,如果我们选择了,CE启动后,就可以在界面中找到这些东西。 如果是之前PC的Windows操作系统,大部分东西都需要重新安装。
3、将软件内核或者应用文件系统等东西烧录到嵌入式系统硬件平台中的ROM中,实现了真正的“嵌入”。 。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层是整个嵌入式系统的基础。 如果你熟悉微控制器和接口,并且会用C和汇编语言进行编程,那么从嵌入式系统的硬件层转移过来会相对容易。 硬件层也是驱动程序。 在层的基础上,一个优秀的驱动工程师必须能够看懂硬件的电路图,并能自己完成CPLD的逻辑设计。 同时,他必须对操作系统内核及其调度非常熟悉。 但硬件平台是基础,增值要靠软件。 硬件层比较适合电子、通信、自动化、机电一体化、信息工程专业的人。 他们需要掌握的基础专业知识包括单片机原理与接口技术、微机原理与接口技术、C语言。
2.驱动层,这部分比较难。 驱动工程师不仅要懂电路图,还要非常精通操作系统内核,这样他写的驱动程序在系统调用时才不会独占操作系统时间片。 结果,其他任务无法执行。 他们不了解操作系统内核架构和实时调度,也没有良好的驱动编写风格。 按照大多数书上介绍的添加驱动程序的方法,很多人都可以做到,但即使是一个人也不一定能做到。 初级驾驶员工程师的水平达不到这个水平。 当应用程序调用驱动程序时,就像我们在Windows下打开一个程序并运行它一样,当我们打开另一个程序时,它要么中断前面的程序,要么等待。 运行稍后打开的程序需要一段时间。 如果你想成为一名优秀的司机,你不需要三四年的经验,也不需要研究几年操作系统内核。 想要成功并不容易,但是薪资是四层嵌入式系统中最高的。
驱动层比较适合电子、通信、自动化、机电一体化、信息工程专业的人,特别是计算机体系结构专业的人。 除了硬件层的基础学科外,还需要对数据结构、算法、运算有深入的了解。 你必须非常精通系统原理和编译原理。
3.操作系统层。 操作系统层目前只能说是简单的移植,很少有人来自于已经写好的操作系统,或者写出缺胳膊少腿的操作系统。 大部分工作是由驱动工程师完成的。 结束。 操作系统负责调试系统任务以及管理磁盘和文件,嵌入式系统的实时性非常重要。 据说微软投入了300人,花了两年时间才完成了XP操作系统。 总工时为600人年。 据估计,中科院软件所的女娲希望操作系统也花了数百人年才完成。 因此,这部分工作是比较没有意义的。
4、应用层比较容易。 如果你知道如何在Windows下调用编程接口函数,那么操作系统下的编译和开发环境就会相应改变。 如果涉及到Java编程也是同样的道理。 嵌入式系统中涉及的算法是由专门研究算法的人来处理的,并不一定属于嵌入式系统的范围。 但如果涉及到嵌入式系统下的嵌入式数据库、基于嵌入式系统的网络编程、基于某些应用层面的协议应用开发(如基于SIP、H.323、Astrisk),那就比较复杂和困难了。
通过网上调研,我发现目前国内外这个领域的人很少。 一方面,这是因为这个领域的进入门槛比较高,不仅需要了解底层软件(如操作系统层、驱动层软件),而且对软件专业要求较高(嵌入式系统需要时间)。和软件设计中的空间效率)。 (要求较高),并且必须了解硬件的工作原理,非专业IT人员很难进入该领域; 另一方面,由于这个领域比较新,目前发展太快,很多软硬件技术都出现很久了。 或者正在兴起(如ARM处理器、嵌入式操作系统等),当然掌握这些新技术的人很少。 嵌入式人才稀缺,身价自然高。 他们的经验越丰富,价格就会越高。 事实上,嵌入式人才是稀缺的。 根本原因可能是大多数人无条件访问,这就需要相应的嵌入式开发板和软件,并且需要有经验的人来指导开发过程。 我们软件系研究嵌入式的人显然应该重点关注嵌入式软件,尤其是嵌入式操作系统。 对于从事嵌入式软件的人来说,最重要的技术显然是掌握主流嵌入式微处理器的结构和原理。 必须掌握一套嵌入式操作系统,熟悉嵌入式软件开发流程,做过至少一个嵌入式软件项目。
然而我们都没有做过嵌入式软件项目,甚至不知道嵌入式开发流程。 我只知道如何使用简单的工具做一个简单的实验。 只有专攻研究,才能在嵌入式领域立足,只有比别人懂得更多,才能更有竞争力。 通过网上查询了嵌入式的介绍以及需要的知识,其中C语言尤为重要。 无论是开发嵌入式软件还是硬件,掌握C语言都是必要的,尤其是为了以后的工作。 现在从事嵌入式软件开发的人大多使用C语言。 其次,你应该对操作系统有一些了解,这对你了解硬件和软件肯定有很大的帮助。 你应该了解系统的管理,比如进程、线程,系统如何分配资源,系统如何管理硬件; 了解了C语言和操作系统之后,我们再来看看嵌入式系统。 我们主要研究ARM。 我用的是ARM7。 深入了解ARM并不容易。 了解了ARM的相关知识才可以说是入门了嵌入式。 还学了很多嵌入式相关的知识,但是无法综合运用,包括组成原理、数据结构、操作系统、C++。 这三个与嵌入式密切相关的科目是系统学习过的,但是因为很久没有使用就忘记了。 从网上了解到嵌入式学习和这些书有很大关系,结合之前学过的嵌入式知识,发现很多嵌入式实验都是通用的。 ,对嵌入式有了初步的了解。
我认为学习嵌入式应该分为2个部分:软件和硬件。 关于硬件,接触了数字电路教材和模拟电路知识。 但如果没有嵌入式CPU,自己很难实现嵌入式相关理论。 嵌入式入门需要不断的实验和分析。 我只在实验班学习。 制作一些与给定程序相关的小程序来实现它; 软件方面,我学过C语言,熟悉其中常用的语法; 我通过以下方法将C语言适配到嵌入式应用:首先,重新翻阅C教材,看一些常用语法,然后从编译器的角度看C。 刚刚学习了编译原理,感觉高级语言和低级语言的翻译在嵌入式系统中用的比较多; 最后,从硬件角度来看C。 嵌入式的核心包括嵌入式操作系统、嵌入式软件开发平台和工具、嵌入式应用软件。 这些决定了如何开发一个好的嵌入式系统。 说说我所知道的嵌入式相关知识和应用:
首先,嵌入式系统以应用为中心,以计算机技术为基础,可以对软件和硬件进行裁减,以适应应用系统对功能、可靠性、成本、体积、功耗的严格要求。 嵌入式具有以下突出优点:1.系统内核小,2.专业性强,3.系统精简,4.实时性能高。 OS5嵌入式系统应用程序可以直接在芯片上运行,无需操作系统。 6.嵌入式系统需要开发工具和环境。
嵌入式系统是近几年才开始流行的,但这个概念并不新鲜。 从20世纪70年代微控制器的出现(最早的微控制器是1976年出现的Intel的8048)到今天各种嵌入式微处理器和微控制器的大规模应用,嵌入式系统已经有近30年的发展历史。 经过30年的发展,嵌入式技术已日趋成熟。 在国内,嵌入式计算机一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序四部分组成,用于实现对其他设备的控制。 控制、监视或管理功能。
其次,嵌入式系统无疑是最热门、最有前途的IT应用领域之一。 嵌入式系统用于一些特定的专用设备上。 通常这些设备的硬件资源非常有限(如处理器、内存等),对成本非常敏感,有时对实时响应要求很高。 尤其是随着消费类家电变得更加智能,嵌入式技术变得更加重要。 嵌入式系统是一门结合软件和硬件的学科。 专攻嵌入式系统的人通常有两类:一类是电子工程、通信工程等硬件专业的人,另一类是软件或计算机科学专业的人。 主要从事嵌入式操作系统和应用软件的开发。 我是一名软件专业的学生,研究嵌入式系统。 越智能的设备成为越复杂的系统,软件就越发挥关键作用,这是当前的趋势。 嵌入式应用程序应用于很多方面。 具体可分为工业控制、交通管理、信息家电、家庭智能管理系统、POS网络与电子商务、环境工程与自然、机器人、机电产品应用等。其中,嵌入式系统的优势有已经在服务领域得到了展示,例如远程点餐机。 例外的是,有很多地方都使用嵌入式系统。 近日,飞利浦与ARM联合推出了一款32位RISC嵌入式控制器,适用于工业控制。 它采用最先进的0.18微米CMOS嵌入式闪存处理技术,工作电压可低至1.2伏。 ,还可以降低25%至30%的制造成本,使其成为工业领域最终用户极具成本效益的解决方案。
那么如何学好嵌入式,我认为应该从以下几点入手:
首先,C语言是毫无疑问的。 无论你是开发嵌入式软件还是硬件,掌握C语言都是必要的,尤其是对于将来致力于嵌入式软件开发的人来说。 现在大部分都是用C语言。 你以为不掌握就可以了吗? 至于如何学习C语言,我想每个人对于这些基础知识都有自己的方法。 关键是要学会它,无论是看书还是在网上看一些视频。 很多人会问如何学习C语言。 我认为这个问题没有标准答案。 我想至少在你理解了一些基本概念之后,就该写代码了。 亲力亲为最重要。 做起来遇到问题,然后依次学习,查课本。 到时候,收获就不是光靠读书就能得到的了。
其次,你应该对操作系统有一些了解,这对你了解硬件和软件肯定有很大的帮助。 你应该了解系统的管理,比如进程、线程,系统如何分配资源,系统如何管理硬件。 当然,光靠看书是无法彻底理解这些的。 如果你一下子看不懂,也没关系,多读读。 结合以后的项目经验,你会有更好的理解。
还应该学习一下linux或者wince下的编程,这对以后的应用编程会有很大的帮助。 当然,如果你是做手机的,可以学习MTK、Symbian、Android等操作系统。 Android是未来的发展趋势。 现在很流行,而且Android也是基于Linux系统封装的,所以建议先学习Linux。
此外,您还应该了解微控制器或 ARM 或 MIPS。 很多人说我没有单片机经验。 我可以直接学习ARM吗? 我认为完全没有问题。 当然,如果你学过单片机那就最好了。 以后你可以从中学习。 ARM 就更简单了。
最后,如果你了解了上面的知识,你应该阅读一些优秀的代码,比如结合arm芯片手册研究UBOOT的源码,了解最小系统开发,这会对你的整个嵌入式系统产生很大的影响。 对发展有很大帮助。 如果可能的话,还可以研究一下Linux的源代码。 当然,如果你直接看2.6的代码,我想你会很痛苦。 可以先看一下早期版本的Linux代码,比如0.12的代码。 等等,麻雀虽小,五脏俱全。 如果您阅读了全部内容,那么我认为您是一位非常成功的嵌入式工程师。