第一篇:嵌入式培训总结
篇一:嵌入式培训报告 学号:
创新生产实习报
学院 电信学院 专业 班级 学生 实习时间 年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)的嵌入式智能家居系统制作。
下面我谈谈在粤嵌教育的培训感受,我培训的地点是在科学城粤嵌教育培训中心的多媒体课室里,这里有学习环境非常好,在紧张的学习的过程中,你可以得到名师的指导,也可以体会到一流企业高质量的培训。在课堂上,老师们认真的演讲,以及手把手地教导,使每个学生都能够扎实地掌握到嵌入式的各方面的知识。而粤嵌教育的老师也是操作实践为主,实践是非常重要的,只有把知识掌握到位,才能达到学习的目的。感谢粤嵌教育机构,感谢粤嵌教育老师。
第二篇:嵌入式总结
一、嵌入式系统原理与应用课程总结
这个学期我学习了《嵌入式原理与应用》这门课程,虽然这个学期马上就要结束了,对嵌入式的学习也要告一段落了,但是我觉得收获还是很大的。学期开始,我开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,真是茫然无从下手。虽然一个学期的学习时间不是很长,但是我觉得对嵌入式系统也已经有了一个大致的概念。对它的历史发展与今后展望都有了一定的了解。嵌入式技术的掌握是需要一个过程的,对嵌入式技术的全面掌握是有相当难度的。如果要真正掌握的话还是需要一步步积累才能熟练掌握的,所以我们还要自己多加学习,不断地回顾以前学到的知识,也要吸收新的概念与技术,使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的乐趣,更加清楚的认识到自己在软件开发学习上的一些不足之处,并且不断改进以提高自己。
通过这门课程的学习,我了解到了嵌入式系统是一种为特定设备服务,软硬件可裁剪的计算机系统,其英文名称是Embedded System。嵌入式系统的范围很广,特点是形式变化多样、体积小,可以灵活地适应各种设备的需求。嵌入式系统的一些例子:手机、汽车、ATM、数字电视、医疗仪器等等。嵌入式系统本身是一个相对模糊的定义,一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是“用于控制,监视或者辅助操作机器和设备的装备”。一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。嵌入式系统的发展是从电子计算机诞生以来,计算机的发展有两个方向:一个方向是体积大型化、处理能力超强的大型计算机;另一个是向体积小型化,功能多样化的方向发展。嵌入式微控制器,即传统意义上的单片机,是目前嵌入式系统的前身。一般都是8位或者16位。嵌入式微处理器,单片机的发展时间较早,处理能力很低,只能应用在一些相对简单的控制领域。嵌入式微处理器是近几年随着大规模集成电路发展同步发展起来的。与单片机相比,嵌入式微处理器的处理能力更强,主流的嵌入式微处理器都是32位的。嵌入式微处理器在一个芯片上集成了复杂的功能,有的还把常见的外部设备控制器也集成到芯片内部。未来嵌入式系统的发展方向,随着微电子技术的发展和电子制造工艺的进步,嵌入式系统硬件的体积会不断缩小,系统稳定性也在不断增强,可以把更多功能集成到一个芯片上;同时功耗方面也不断降低。随着网络的普及和IPv6技术的应用,IPv6技术主要解决了IPv4的IP地址数目紧缺的现状,越来越多的嵌入式设备也会加入到网络中。典型的嵌入式系统的组成,嵌入式系统包括硬件和软件。硬件包括了嵌入式微处理器和嵌入式微控制器以及一些外围元器件和外部设备;软件包括了嵌入式操作系统和应用软件。嵌入式系统硬件种类繁多,有许多硬件和软件的解决方案,不同嵌入式系统软硬件很难兼容,软件必须修改而硬件必须重新设计才能使用。不仅如此,我们还要对软件硬件都有所了解才可以逐渐有所领悟。软件和硬件都是学习嵌入式系统必不可少的方面。其实我现在仍旧觉得在嵌入式系统这个博大精深的领域,我还有太多太多不懂的地方,需要学习的还有很读。嵌入式软件开发应用广泛而且前景很好,目前正处于人才紧缺的关口,嵌入式技术在未来能够得到更加广泛的应用。学好嵌入式,C语言很重要,所以感觉自己有必要在学习、积累一下这方面的知识。很多东西的学习不死一帆风顺也是比较耗时的,嵌入式也不例外,要想学好还必须下大力气,还必须坚持。这次的课程让我明确了一点:嵌入式开发对于提升我们的系统知识有很大的帮助,尤其是操作系统的知识。嵌入式系统开发对于我们的知识面要求非常的广,且要有一定的深度。,平时上完理论课很少有时间上机进行时间或者隔几天才上机练习,等到上机时一些东西可能遗忘了,比较耗费时间。在课上,有老师在前面演示我们感觉看得懂或感觉没问题,可轮到我们独立完成的时候,因为实际操作的少,跟着问题就来了。有些即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习的方法,一些软件开发需要注意的细节,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,结果什么也学不好。经过这次的课程,我真真确确地感受到了嵌入式在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的水平根本检查不出来是哪里出了错。这时候,老师都会耐心的过来帮助我们一起去解决。在平时我们就需要好好的查阅书籍或者上网搜集相关资料去解决问题。
在了解了基础知识的情况下,我们还同步地进行了上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有很多的指导操作,主要还是要凭借自己去摸索练习。其中的困难可想而知。然而坚持就是胜利,只要坚持做下去。通过这学期的实验课程,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获”。没有付出,何谈回报呢?再者,通过这学期的实验课程,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
其实,我觉得最大的收获不仅仅是我学习到了多少知识,还有学习给我的感悟。首先是心态。一定要有一个积极的心态,独立解决问题的意识,培养扎实基础的认识。不要什么东西都感觉跟简单,很多东西可能是看似简单,就不去做了或者不屑一做,以至于性网上搜搜就可以了,这样很不好。有自己的东西有自己的付出才会有程序运行成功时的喜悦和小自豪,这样也有助于培养自己的兴趣。要时刻牢记态度决定一切。其次是兴趣,感觉学习工作中兴趣很关键,只是一个引发人积极性的问题,有了兴趣就自觉了,效率自然就高了。再次要敢于尝试和挑战。不要安于现成的程序,而且不要害怕失败,在程序调试的过程中这点尤为重要,“发现出问题然后解决问题”是一个积累经验的过程,而且很高效。最后要不懈追求。对于源代码进行不断的完善,要尽可能的实现课题所要求的功能。对于初学者或者开发较少的人来说,大量大写程序还是有必要的,但同时要注意思考,理解其实现的内在意义。还可以自己添加一些有意义的功能来实现。当看到自己编写的程序正常运行时,兴趣也会随之而来,乐此不疲,形成一个良性循环。我相信在以后的学习工作中,我也会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!
第三篇:嵌入式实验总结
如今,嵌入式系统已经在众多电气电子产品上应用,有人预测今后5年发展形势看好。嵌入式是典型的交叉学科,电信、电子、电气、计算机、通信等等都有涉及。
嵌入式理论、实践要求多、门槛高,只有理论、实践同步才能在积累中更好的渐次掌握,这学期我们针对嵌入式入门做了一些实验,通过自己动手和实验箱、实验软件打交道,对嵌入式编程形成初步了解,为今后进一步发展打基础。
实验环境:
武汉创维特公司JXARM9-2410开发板、PC;
Linux、windows操作平台;
DNW、VMwareWorkstation应用软件;
《ARM9嵌入式技术及Linux高级实践教程》、实验参考资料等;
实验内容及目标:
阅读样例程序,进行:
1.熟悉JXARM9-2410开发板、相关应用软件的使用,能成功运行示例实验程序(demo-led);
2.使用VMware,修改demo-led源程序,使开发板上数码管按照demo-led显示方式显示;
3.使用VMware、DNW,修改相关源程序,实现开发板键盘输入的字符在DNW中显示;
4.使用VMware、DNW,修改相关源程序,实现对直流电机转动状态的控制;
观看教学视频,进行交叉编译:
1.加载linux内核;
2.配置、编译linux内核;
3.Windows、linux跨平台文件共享;
4.编译、运行linux程序(helloworld)
5.Linux下编译数码管显示驱动程序;
6.Linux下编译摄像头、GPRS驱动程序;
学习嵌入式是一个漫长的过程,学好它还是需要一番的功夫。通过嵌入式实验由浅入深的动手实践,我渐渐对嵌入式有了具体概念,也逐渐对其产生了兴致和好奇心。
对于初学者,还有一点小建议,不要好高骛远,要脚踏实地.
第四篇:嵌入式存储卡总结
嵌入式作业
1、NandFlash和NorFlash的区别 它们是两种并行FLASH
Flash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗振性强等优点,为嵌入式系统中典型的两种存储设备。
(1)NOR型Flash:如SST39VF160,可以直接读取芯片内存储器的数据,速度比较快,但价格较高;芯片内执行(XIP,eXecute In Place),应用程序可以直接在Flash上运行,不必再把代码读到系统RAM中;
(2)NAND型Flash:如K9F2808U0C,内部数据以块为单位存储,地址线和数据线共用,使用控制信号选择;极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也快,应用NAND型的困难在于Flash的管理需要特殊的系统接口。(3)二者的差别:
接口差别:NOR型Flash采用的SRAM接口,提供足够的地址引脚来寻址,可以很容易的存取其片内的每一个字节;NAND型Flash使用复杂的I/O口来串行的存取数据,各个产品或厂商的方法可能各不相同,通常是采用8个I/O引脚来传送控制、地址、数据信息。
读写的基本单位:NOR型Flash操作是以“字”为基本单位,而NAND型Flash以“页面”为基本单位,页的大小一般为512字节。
性能比较:NOR型Flash的地址线和数据线是分开的,传输效率很高,程序可以在芯片内部执行,NOR型的读速度比NAND稍快一些;NAND型Flash写入速度比NOR型Flash快很多,因为NAND读写以页为基本操作单位。
容量和成本:NAND型Flash具有较高的单元密度,容量可以做得比较大,加之其生产过程更为简单,价格较低;NOR型Flash占据了容量为1~16MB闪存市场的大部分,而NAND型Flash只是用在8~128MB的产品中,这也说明NOR主要用在代码存储介质中,NAND适合数据存储在CompactFlash、PC Cards、MMC存储卡市场上所占的份额最大。
软件支持: NAND型和NOR型Flash在进行写入和擦除时都需要MTD(Memory Technology Drivers,MTD已集成在Flash芯片内部,它是对Flash进行操作的接口。),这是它们的共同特点;但在NOR型Flash上运行代码不需要任何的软件支持,而在NAND型Flash上进行同样操作时,通常需要驱动程序,即内存技术驱动程序MTD。
2、对比总结外部设备(1)MMC MMC卡(Multimedia Card)翻译成中文为“多媒体卡”。是一种快闪存储器卡标准。在1997年由西门子及SanDisk共同开发,技术基于东芝的NAND快闪记忆技术,因此较早期基于IntelNOR快闪记忆技术的记忆卡,例如CF卡更细小。MMC卡大小与一张邮票差不多,约24mm x 32mm x 1.5mm。
可反复进行读写记录30 万次。驱动电压为2.7-3.6V。MMC卡的的容量多达 2 GB,并且用于几乎所有使用存储卡的设备上。、针脚兼容的MMC卡可以用在所有支持SD卡的设备上。MMC卡原本使用1bit串联界面,但较新的标准则容许同时传送4 bit或8 bits的资料。,但由于MMC卡仍可被兼容SD卡的设备所读取,因此仍有使用。
MMC的发展目标主要是针对数码影像、音乐、手机、PDA、电子书、玩具等产品,尺寸只有32mm x 24mm x 1.4mm,只有1.5克。MMC也是把存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性和灵活性。
MMC存贮卡可以分为MMC和SPI两种工作模式,MMC模式是标准的默认模式,具有MMC的全部特性。而SPI模式则是MMC存贮卡可选的第二种模式,这个模式是MMC协议的一个子集,主要用于只需要小数量的卡(通常是1个)和低数据传输率(和MMC协议相比)的系统,这个模式可以把设计花费减到最小,但性能就不如MMC。
MMC被设计作为一种低成本的数据平台和通讯介质,它的接口设计非常简单:只有7针!接口成本低于0.5美元。在接口中,电源供应是3针,而数据操作只用3针的串行总线即可(SPI模式再加上1针用于选择芯片)。
MMC的操作电压为2.7伏到3.6伏,写/读电流只有27mA和23mA,功耗很低。它的读写模式包括流式、多块和单块。最小的数据传送是以块为单位的,缺省的块大小为512bytes。MMC卡也有小尺寸的型号,大约是正常尺寸的一半:24 mm × 18 mm × 1.4这种可选的尺寸称为小尺寸的多媒体卡或者RS-MMC,它是在2004年发布的。RS-MMC卡只是小型号的MMC卡,使用一个简单的机械转接延长它,一个RS-MMC卡能够用在任何MMC(或SD)插槽。RS-MMC卡的容量高达1 GB。
移动式MMC4是老式的RS-MMC的一个翻版,因为它使用了与RS-MMC同样的连接方式和连结标准,但是它的尺寸大约是正常MMC卡的一半。这个标准也定义了secureMMC的规范,它的加密特征类似于Secure Digital或者MagicGateMemory Sticks。
SD卡不是仅有的获得安全数字卡协会认可的快速存储卡标准。其它的安全数字卡协会格式包括miniSD和microSD(在被安全数字卡协会认可以前称为TransFlash)。
这些小型卡能够通过一个转换器(连结电路以及物理连接)在全尺寸的MMC/SD/SDIO插槽上使用。然而,需要注意的是,在SD尺寸上制造输入/输出设备已经非常困难了,在更小的尺寸上制造就变得更加不切实际。
由于SD插槽仍然支持MMC卡,单独发展的更小的MMC变体也与支持SD的设备兼容。与miniSD和microSD(它们与SD有很大不同,制造机械转换器已经很不现实)不同,RS-MMC插槽保持了与全尺寸MMC卡的后向兼容,因为RS-MMC仅仅是短一点儿的MMC卡。关于这些变体的更多信息参见多媒体卡。
大多数,也许是全部的MMC闪存卡都支持SPI模式,尽管每个法定要求但是不支持这种模式将带来严重的兼容性问题。SanDisk、Ritek/Ridata和Kingmax制造的所有闪存卡好像都支持SPI。并且,MMC卡可以认为在电气性能上等同于SD卡,但是它使用一个较薄的包装并且禁止了SD的功能(这样就不再需要支付SD的版权费)。
MMC定义了SPI和1位MMC/SD协议。基本的SPI协议已经作为许多微控制器的一个标准特点存在了许多年。从社会的观点来看,定义一个新的不兼容的SD/MMC协议的理由是值得怀疑的;开发一个不兼容的并且是非必需的新协议可能有利于贸易协会收取授权费用和成员费用,但是它在许多方面增加了硬件和软件的费用。新的协议使用开放的信号转换接头(open collector signalling)以允许在同一总线上使用多个存储卡,但是这实际上在使用更高时钟频率时带来了问题。尽管SPI使用三条共享的信号线外加一个单独的芯片选择每个存储卡,新协议允许多达30块存储卡连结到同样的三条线上(不包含片选),这样做的代价是更加复杂的闪存卡初始化和需要每个卡有一个唯一的序列号用于即插即用;这个特性实际上很少使用并且由于速度和功耗问题在新标准中不建议它的使用。有类似所有权的1位协议被扩展到四位宽(SD和MMC)和八位宽用来支持更高速度,但是计算机产业的其它大部分都在向更高速度更窄的通道转移;标准的SPI能够简单地使用更高数据速度的时钟(如133 MHz)以获得比四位SD更高的性能--没有更高时钟速度的嵌入式处理器无论如何也不能处理更快速度的数据。SD协会放弃了一些旧的一位MMC协议命令的支持并且添加了另外一些与版权保护相关的命令。
(2)SD卡
安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写PDA)和多媒体播放器等。SD卡(Secure Digital Memory Card)是一种基于半导体闪存工艺的存储卡,SD卡具有大容量、高性能、安全等多种特点的多功能存储卡,它比MMC卡多了一个进行数据著作权保护的暗号认证功能(SDMI规格),读写速度比MMC卡要快4倍,达2M/秒。
SD卡的技术是基于Multimedia Card(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。(SD卡外型采用了与MMC卡厚度一样的导轨式设计,以使SD设备可以适合MMC卡。SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。采用了NAND型Flash Memory,基本上和SmartMedia的一样,平均数据传输率能达到2MB/s。
设有SD卡插槽的设备能够使用较簿身的MMC卡,但是标准的SD卡却不能插入到MMC卡插槽。SD卡能够于CF卡和PCMCIA卡上,插上转接器使用;而miniSD卡和microSD卡亦能插上转接器于SD卡插槽使用。一些USB连接器能够插上SD卡,而且一些读卡器亦能够插上SD卡,并由许多连接埠,例如USB、FireWire等存取使用。SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。
SD卡容量目前有3个级别,那就是SD,SDHC和SDXC
SD容量有8MB、16MB、32MB、64MB、128MB、256MB、512MB、1GB、2GB
(所有SD和SDIO卡都必须支持较老的SPI/MMC模式。这个模式支持慢速的四线序列接口(时钟、序列输入,序列输出,芯片选择),兼容于序列终端接口(SPI)和许多微控制器。
MMC模式不支持SD卡的加密特性。从免费的文档里也找不到这些细节。但对于大多数消费者来讲,这无关痛痒,用户只是用来储存不受保护的数据。
SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式(独立指令和数据通道,独有的传输格式),4位SD模式(使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)
SD卡内嵌的数字版权保护方案是按4C提出的可纪录介质内容保护标准(CPRM)所制定。其核心是使用了Cryptomeria密码(也称为“C2”)。这一特性是保密的。DVD-Audio光盘也采用了与CPPM非常相似的加密方案。SD卡(Secure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
SD卡在24mm×32mm×2.1mm的体积内结合了SanDisk快闪记忆卡控制与MLC(Multilevel Cell)技术和Toshiba(东芝)0.16u及0.13u的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏。
SD卡体积小巧,广泛应用在数码相机上,是由日本的松下公司、东芝公司和SanDisk公司共同开发的一种全新的存储卡产品,最大的特点就是通过加密功能,保证数据资料的安全保密。SD卡在外形上同MultiMedia Card卡保持一致,并且兼容MMC卡接口规范。不过注意的是,在某些产品例如手机上,SD卡和MMS卡是不能兼容的。SD 卡在售价方面要高于同容量的MultiMedia Card卡。
SD卡多用于MP3随身听、数码摄像机、数码相机等,其投影面积与MMC卡相同,只是略微厚一点,为2.1mm,但是SD卡的容量大得多,且读写速度也MMC卡快4倍。同时,SD卡的接口与MMC卡是兼容的,支持SD卡的接口大多支持MMC卡。2013年SD卡在数码相机中正在迅速普及,大有成为主流之势。SD卡在2013年的发展很快,已经开始威胁到CF卡的市场分额了。这是由于SD卡的体积要比CF卡小很多,并且SD卡在容量、性能和价格上和CF卡的差距越来越小,而这两年支持SD卡的手机迅速在市场走热,因此,SD卡的迅速成长绝对不是偶然的。最重要的一点就是MMC卡也能和SD卡相兼容,这也正是SD卡迅速走红的原因之一。(3)Memory Stick 最初的Memory Stick提供最多128MB的容量,以及Memory Stick Select容许两张128MB的容量于一张卡内。而含有8GB容量的Memory Stick,已于2006年在拉斯维加斯举行的国际消费电子展中公布,但根据索尼公司的资料,Memory Stick PRO最大可能容量为32GB。一般而言,Memory Stick是用来为手提式装置作为储存媒体的, 以易于移除的方式来被PC存取。例如,索尼的数码相机用Memory Sticks来储存影像档。以Memory Stick读卡器(一般是一个以USB或其他连线方式连接的细小的盒子),用户可不需把索尼数码相机接到电脑而复制图片。有Memory Stick在数码相机的索尼用户、数码音乐播放机,PDA,手提电话,PSP,和其他的装置以及索尼的VAIO个人电脑早已包含Memory Stick插槽。除了从数码相机复制影像档外,用户还可以复制任何类型的档案到记忆棒内或把档案从记忆棒内复制出来。市面上也有PCMCIA、CompactFlash或3.5"存软盘接口的读卡器。兼容性方面,较老的MS卡能够在较新的读取装置上使用,(较短的Memory StickDuo 加上一个适配器后也可以使用)。但是,Memory Stick PRO 和 Memory Stick PRO Duo 通常不能在较老的读取装置上使用。
记忆棒是索尼独家开发的标准,第三方的生产厂家还有SanDisk和Lexar。尽管它是索尼独家支持的标准,记忆棒还是比其它独家支持的快闪存储格式寿命更长。除了外型小巧、具有极高稳定性和版权保护功能以及方便地使用于各种记忆棒系列产品等特点外,记忆棒的优势还在于索尼推出的大量利用该项技术的产品,如DV摄像机、数码相机、VAIO个人电脑、彩色打印机、Walkman、IC录音机、LCD电视等,而PC卡转换器、3.5英寸软盘转换器、并行出口转换器和USB读写器等全线附件使得记忆棒可轻松实现与PC及苹果机的连接。
记忆棒的缺点一是只能在索尼数码相机和PSP中使用,二是容量尚不够大。
尺寸为:50mm x 21.5mm x 2.8mm,重4克。采用精致醒目的蓝色外壳(新的MG为白色),并具有写保护开关。和很多Flash Memory存储卡不同,Memory Stick规范是非公开的,没有什么标准化组织。采用了Sony自己的外型、协议、物理格式和版权保护技术,要使用它的规范就必须和Sony谈判签订许可。Memory Stick也包括了控制器在内,采用10针接口,数据总线为串行,最高频率可达20MHz,电压为2.7伏到3.6伏,电流平均为45mA。可以看出这个规格和差不多同一时间出现的MMC颇为相似。Memory Stick PRO是大容量记忆棒的最终解决方案。大部分老的读取装置也能支持MS PRO。通过Flash ROM的更新,其它较老的读卡器也能兼容MS PRO。MS PRO的传输速率更快,最大支持容量能达到32GB(截至05年6月,最大容量4GB)。所有大于1GB的MS PRO都支持高速传输模式,大容量的记忆棒相比同样容量的SD卡或者CF卡,价格要高的多。
索尼在2005年9月30日宣布,它与SanDisk的合资工厂会推出一种新的记忆棒格式,新的Memory Stick Micro(M2)尺寸仅 15 × 12.5 × 1.2 毫米,理论上支持32 GB。最高传输速度160 MB/秒。特性:
标准传输速度: 最高写速度: 14.4 M比特/秒(1.8 MB/秒);最高读速度: 19.6 M比特/秒(2.5 MB/秒)PRO 传输速度:传输: 160 M比特/秒(20 MB/秒)最小写速度: 15 M比特/秒 Micro 传输速度:传输: 160 M比特/秒(20 MB/秒)外形尺寸:
标准版: 50.0 mm(宽)× 21.5 mm(高)× 2.8 mm(厚)Duo: 31.0 mm(宽)× 20.0 mm(高)× 1.6 mm(厚)Micro: 15.0 mm(高)× 12.5 mm(宽)× 1.2 mm(厚)(4)CompactFlash卡
CompactFlash(CF卡)最初是一种用于便携式电子设备的数据存储设备。作为一种存储设备,它革命性的使用了闪存,于1994年首次由SanDisk公司生产并制定了相关规范。当前,它的物理格式已经被多种设备所采用。从外形上CF卡可以分为两种:CFI型卡以及稍厚一些的CFII型卡。从速度上它可以分为CF卡、高速CF卡(CF+/CF2.0规范)、CF3.0、CF4.0,更快速的CF4.1标准也在2007年被采用。CFII型卡槽主要用于微型硬盘等一些其他的设备。
CF是与出现更早且尺寸更大的PCMCIAI型内存卡竞争的第一批闪存标准之一,它最初是建立在英特尔的或非型闪存的基础上,之后改为使用与非型闪存。CF是最老也是最成功的标准之一,尤其适合专业相机市场。它具有比其他存储方式更长的寿命以及较低的单位容量成本,同时也可以在较小的尺寸上提供较大的容量。
CF卡可以通过适配器直接用于PCMCIA卡插槽,也可以通过读卡器连接到多种常用的端口,如USB、Firewire等。另外,由于它具有较大的尺寸(相对于较晚出现的小型存储卡而言),大多数其他格式的存储卡可以通过适配器在CF卡插槽上使用,其中包括SD卡/MMC卡、MemoryStickDuo、XD卡以及SmartMedia卡等。
闪存型存储设备具有非易失性和固态,所以它比磁盘驱动器更稳固,耗电量仅相当于磁盘驱动器的5%,却仍然具有较快的传输速率(SanDiskExtremeIV型CF卡的写入速度和读取速度可达40MB/s)。它们的工作电压为3.3volts或5volts,可以在不同的系统间转换。闪存型CF卡可以适应极端的温度变化,工业标准的闪存卡可以在-45至85摄氏度的范围内工作。
CF接口已广泛用于PDA、笔记本电脑、数码相机和包括台式机在内的各种设备。
到2007年,CF卡的容量规格从最小的8MB到最大可达64GB。当前已达到256GB,最高读写速度160MB/s。(5)XDpictureCard
XD卡,全称为XDPictureCard,是专为存储数码照片开发的一种存储卡。以袖珍的外形、轻便、小巧等特点成为时下风尚。XD卡具有超大的存储容量和优秀的兼容性,能配合各式读卡器,可以方便的与个人电脑连接。
XD卡是由日本奥林巴斯株式会社和富士有限公司联合推出的一种新型存储卡,有邮票般大小、极其紧凑的外形。外形尺寸为20mm×25mm×1.7mm,总体积只有0.85立方厘米,约为2克重,是目前较为轻便、小巧的数字闪存卡。
XD卡是较为新型的闪存卡,相比于其它闪存卡,它拥有众多的优势特点。
XD卡的理论最大容量可达8GB,具有很大的扩展空间。目前市场上见到的XD卡有512MB、1GB、2GB等不同的容量规格。
XD卡采用单面18针接口,理论上图像存储容量最高可达8GB,2004年富士与奥林巴斯联合推出了存储容量最高达1GB的 xD 卡。而且其读写速度也更高,(读取速率为5MB/S,写入速率为3MB/S左右)可以满足大数据量写入,功耗也更低,XD-Picture存储卡不仅可以同时用于个人电脑适配卡和USB读卡机,使之非常容易与个人电脑连接,而且其还可配合Compact Flash转接适配器,并允许在数码相机里做为Compact Flash卡存储介质使用。虽然XD卡目前的价格有些昂贵,不过由于随着闪存芯片及其它存储卡价格的不断下滑,XD卡的价格将有较大的降价空间。
目前市面上常见到的xD卡有三种类别:标准型、M型、H型
这三种的尺寸都是一样的,不同的地方在于采用的技术以及芯片不同,所以速度也不同。
最早推出的XD卡就是所谓的标准型,这点没有什么争议,标准测试出来的数值大概在读取5M/秒、写入3M/秒。
M型就是采用MLC技术生产的xD卡,这是2005年发表的,为的就是降低售价。然而却碰到与奥林巴斯以及富士一些旧款机型不兼容的问题,而且由于速度慢(MLC最大的缺点),在录像功能上时常出现问题,标准测试出来的数值大概在读取4M/秒、写入2.5M/秒。
H型,就是HIGH-SPEED的意思,读写速度比标准型快2倍、比M型快三倍,名副其实的HIGH SPEED。(6)MMCMobile 为了获得更好的节电性能,MMC协会推出了既能在低电压下工作又能兼容原有RS-MMC的存储卡--MMC moboile,它能在1.65~19.5V和2.7~3.6V电压两种模式下工作,理论传输速度最高可达52MB/s。被称之为双电压RS-MMC。MMC moboile与RS-MMC卡的尺寸大小完全一致,最大的区别在于MMC moboile具有13个金手指。(7)MMC micro 相比microSD卡,MMC micro的体积略大一些,为12mm×14mm×1.1mm。与MMC moboile一样都支持双电压,适用于对尺寸和电池续航能力要求很高的手机以及其他手持便携式设备。传输速度上前面的快(8)MINISD
miniSD卡是SD卡发展而来,性能和传统的SD卡并无大的区别,miniSD卡和SD卡一样,都具有每秒2MB的数据传输速度。与传统SD卡一样,miniSD卡同样具有硬件数据写保护保护开关,可避免储存内容不慎删除的风险。miniSD卡特点是体积小巧(体积只有21.5×20x1.4mm,相比较原来的SD卡减少了40%的体积)、性能稳定,可配合专用转接卡使用,完全兼容标准SD卡插槽。而且miniSD卡采用的是低耗电的设计,比SD卡更适用于移动通信设备,因此主要进攻手机、PDA、掌上电脑的信息终端。
与TF卡相比,miniSD卡就要常见得多了,同样作为一款身材比较苗条的多媒体卡,miniSD卡在手机市场中的使用就要广泛得多了,比如摩托罗拉MPX100、松下X700、BQ S700等品牌的多种手机产品都支持它。同时通过扩展卡它又能作为标准的SD卡使用,非常方便。(9)microSD
Micro SD Card,原名Trans-flash Card(TF卡),2004年正式更名为Micro SD Card,由SanDisk(闪迪)公司发明。在Micro SD面市之前,手机制造商都采用嵌入式记忆体,虽然这类模组容易装设,然而有着无法应实际应潮流需求的困扰--容量被限制住了,无法再有升级空间。Micro SD仿效SIM卡的应用模式,即是同一张卡可以应用在不同型号的行动电话内,让行动电话制造商不用再为插卡式的研发设计而伤脑筋。Micro SD卡足以堪称可移动式的储存IC。Micro SD卡是一种极细小的快闪存储器卡,其格式源自SanDisk创造,原本这种记忆卡称为T-Flash,及后改称为Trans Flash;而重新命名为Micro SD的原因是因为被SD协会(SDA)采立。另一些被SDA采立的记忆卡包括Mini SD和SD卡。其主要应用于移动电话,但因它的体积微小和储存容量的不断提高,已经使用于GPS设备、便携式音乐播放器和一些快闪存储器盘中。它的体积为 15mm x 11mm x1mm,差不多相等于手指甲的大小,是现时最细小的记忆卡。它也能通过SD转接卡来接驳于SD卡插槽中使用。现时MicroSD卡提供128MB、256MB、512MB、1G、2G、4G、8G、16G、32G和64G的容量(MWC 2014 世界移动通信大会期间,SanDisk打破了储存卡最高64GB容量的传统,正式发布了一款容量高达128GB的 Micro SD XC 储存卡。
3、自己手机中的硬件设备
CPU高通骁龙600其中搭载gpu为Adreno320
摄像传感器:背照式2代CMOS
蓝牙4.0
不支持SD卡扩展
第五篇:嵌入式 知识点总结
1、嵌入式系统的特点:
(1).嵌入式系统的个性化很强,软件系统和硬件在不同的应用中均有差异;(2).由通用计算机系统发展而来,根据应用对软硬件进行裁剪;(3).高的可靠性,强的实用性;
(4).高的耗电量直接影响系统的成本及电源寿命;
2、什么是嵌入式系统?
嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁硬件,适用于对功能,可靠性,成本,体积,功耗等有严格要求的专用计算机系统。
3、采用RISC架构的ARM微处理器一般具有如下特点:(1).体积小、功耗低、成本低、性能高;
(2).支持Thumb(16位)/ARM(3位)双指令集,能很好地兼容8位/16位器件;(3).大量使用寄存器,指令执行速度快;(4).大多数数据操作都在寄存器中完成;(5).寻址方式灵活简单,执行效率高;(6).采用固定长度的指令格式;
4、嵌入式系统开发流程:
选择嵌入式处理器(硬件平台)---选择嵌入式操作系统(软件平台)-----开发嵌入式应用软件-----测试通过---(是)---系统测试-----开发结束
5、嵌入式系统软件设计流程:
代码编程(C/汇编源程序)-----交叉编译(OBJ文件)-----交叉函数库----交叉链接(系统映像文件)---(重定向与下载)---目标板----调试;
6、ARM9E处理器有独立的指令缓存(ICACHE)和数据缓存(DCACHE);
7、ARM9系列处理器共有37个寄存器,其中31个属于通用寄存器,6个为ARM处理器;
8、ARM总共有7种不同的处理器模式,分别是:用户模式,快速中断模式,外部中断模式,管理模式,数据访问中止模式,未定义指令中止模式,系统模式
9、R13一般作为栈指针SP;R14被称为连接寄存器LR,作用:一是在通过BL或者BLX指令调用子程序时存放当前子程序的返回地址;二是在发生异常时用来保存该模式基于PC的返回地址;R15是程序计数器PC,用来保存处理器取值的地址;
10、流水线技术的工作原理:
ARM7采用的是3级流水线:FETCH/DECODE/EXECUTE.此时在EXECUTE阶段要完成大量的工作,包括寄存器和存储器的读写操作、移位操作、ALU操作等,这导致在执行阶段往往需要多个时钟周期,从而成为系统性能的瓶颈。
ARM9采用5级流水线技术,分别是FETCH/DECODE/EXECUTE/MEMORY/WRITE.FETCH阶段和之前功能相同,即从指令存储器中取值;DECODE阶段除了译码之外,还读取寄存器操作数;EXECUTE阶段执行运算,产生ALU运算结果或产生存储器地址;MEMORY阶段进行存储器的读写操作;WRITE阶段将结果写回寄存器;
11、ARM9使用一个统一的TLB来缓存页表信息,TLB主页分为两个部分:主TLB和锁定TLB;
12、ARM总共有7种处理器异常:复位异常、未定义指令异常、软件中断异常、指令预取终止异常、数据访问终止异常、外部访问终止异常、快速中断请求异常
13、(1).复位异常和软件中断异常时,处理器进入管理模式;(2).未定义指令异常时,处理器进入未定义模式;
(3).指令预取终止异常和数据访问终止异常时,处理器进入中止模式;(4).外部中断请求时,处理器进入外部中断模式;(5).快速中断请求时,处理器进入快速中断模式; 14.ARM运行状态:ARM状态和Thumb状态;ARM指令必须在ARM状态下执行,同样,Thumb指令也必须处于Thumb状态下执行。
15.ARM状态和Thumb状态切换可以通过BX指令来实现。
16.ARM指令集有5种形式的位移操作:LSL:逻辑左移;LSR:逻辑右移;ASR:算术右移;ROR:循环右移;RRX:带扩展的循环右移;
17.立即数并不是任意数都是合法的,在立即数寻址中,分配给立即数的空间是12位,8位用于保存一个常数,4位用于保存循环右移基数,而循环右移每次需要移动偶数位,即右移的位数是基数*2;假设常数为A,循环右移位数为N,则最后得到的立即数=A循环右移(N*2位);
18.ARM指令的寻址方式及特点:(1)立即寻址;
(2).寄存器偏移寻址;(3).寄存器偏移寻址;(4).寄存器间接寻址;(5).基址变址寻址;(6).多寄存器寻址;
(7).堆栈寻址:满递增堆栈、空递增堆栈、满递减堆栈、空递减堆栈; 19.LDR和STR LDR指令:从内存读取数据装入寄存器; STR指令:将寄存器中的数据存入内存;
20.CDP:是协处理器数据处理指令:用来执行特定的数据操作; MCR:将ARM寄存器中的数据传输到协处理器寄存器中;
MRC:数据传输方向与MCR指令相反,它将协处理器寄存器中的数据传送到ARM处理器寄存器中;
21.ADR:小范围的地址读取伪指令,主要用来读取基于PC相对偏移的地址或基于寄存器相对偏移的地址;
LDR:大范围伪地址读取伪指令,用于加载32位的立即数或是一个地址值; 22.Thumb跳转指令:
B:是Thumb指令中唯一可以条件执行的指令; BL:带链接的长跳转;
BX:指令在跳转的同时,会选择性的切换指令集; BLX:带链接的跳转,并选择性的切换指令集;
23.MMU:其作用主要有2个方面:一是地址映射,负责将虚拟地址映射成物理地址;二是对地址访问的保护和限制;提供硬件机制的内存访问授权,大多数使用虚拟存储器的系统都使用一种称为分页机制,虚拟地址空间划分成大小相同的一组页,每个页有一个用来标记它的页号,而相应的物理地址空间也被进行划分,单位帧、页和页帧的大小必须相同,虚拟地址被送往MMU,MMU将虚拟地址转化为物理地址。
24.进程调度策略可分为:“抢占式调度”和”非抢占式调度”;
25.在用户空间中,进程是由进程标识符(PID)表示的,一个PID在进程的整个生命期间不会更改,但PID可以在进程进行销毁后重新使用;对用户来说,PID是唯一标识一个进程的数字值;
26.Linux进程还可以通过exec系统调用产生; 27.Linux操作系统有三种进程调度策略:(1).分时调度策略;(2).先到先服务的实时调度策略;(3).时间片轮的实时调度策略; 28.嵌入式文件系统分类:(1).基于Flash的文件系统:
JFFS2文件系统;YAFFS文件系统;Cramfs;Romfs;其他文件系统;
(2).基于RAM的文件系统: RamDisk;Ramfs/Tmpfs(3).网络文件系统NFS 29.Boot Loader 阶段一:1.基本的硬件初始化:a.屏蔽所有中断;b.设置CPU的速度和时钟频率;c.RAM初始化;d.初始化LED;30.ARM-Linux内存管理原理:从两方面入手:一是Linux内核对内存的管理(包括最重要的地址映射、内存空间的分配以及地址访问的限制,即保护机制);二是体系对内存管理方面的特殊性;
31.Linux虚拟内存的实现需要6种机制的支持:地址映射机制、请求页机制、内存分配回收机制、缓存和刷新机制、交换机制和内存共享机制; 32.Linux虚拟内存实现机制间的相互关系:
地址映射机制----请求页机制----内存分配和回收机制---交换机制----缓存和刷新机制
33.进程,又称作任务,是一个动态的执行过程,是处于执行期的程序,进程是系统资源分配的最小单位。
34.在Linux系统中,所有的进程都是fork出来的,它们有个共同的祖先:0号进程;
35.init是内核启动的第一个用户级进程,也是系统的第一个真正的进程,是其他所有进程的父进程,所以init内核线程(或进程)的标识符为1,init有很多重要的任务,负责完成系统的一些初始化设置任务,以及执行系统初始化程序,init程序使用/etc/inittab作为脚本文件来创建系统中的新进程;
36.进程的销毁通过以下三个事件驱动:正常的进程结束、信号、exit函数的调用;
37.进程调度时机可分为:主动调度和被动调度;按细分的话:(1)进程状态转换;(2)当前进程的时间片用完;(3)设备驱动程序;(4)进程从中断、异常以及系统调用返回到用户态; 38.选择进程的依据:policy、priority、counter、rt_priority; 39.内核模块全称为动态可加载内核模块,是Linux内核向外部提供的一个插口,简称为模块; 40.加载模块有两种方法:第一种是通过insmod命令手工将module载入内核;第二种是根据需要载入module;kerneld的主要功能是module载入内核和将它卸载出内核; 41.中断是一个流程,一般经过三个环节:中断相应、中断处理、中断返回;
42.ARM-Linux的系统调用原理:系统调用的过程和中断有类似之处,当CPU遇到自陷指令后,跳转到内核态,操作系统首先保存当前运行的信息,然后根据系统调用号来查找相应的函数去执行,执行完了以后恢复原先保存的运行信息返回,比如通常应用程序所用的fork()函数,它是经过包装的函数,其最终的实现是系统调用;
43.在UNIX系统下有两种方式实现系统调用:通过经过封装的C库或者直接调用;
44.系统调用的过程和中断有类似之处,当CPU遇到自陷指令后,跳转到内核态,操作系统首先保存当前运行的信息,然后根据系统调用号查找相应的函数去执行,执行完了以后恢复原先保存的运行信息返回;通过不同的向量索引可以使CPU立即转入不同的处理程序; 45.init进程是系统所有进程的起点,内核在完成核内参数init=XXX来设置init进程,init进程需要读取/etc/inittab文件作为其行为指针,inittab是以行为为单位的描述性(非执行性)文本; 46.存储文件系统的设备称为block设备(块设备);
47.设备驱动的接口API都是从文件管理器API中继承下来的,所以这些设备API都有open().close().read().write().lseek()和ioctl()等与文件API类似的接口;
48.Linux也使用文件管理器,但是它的文件管理器使用了VFS(虚拟文件系统),正是VFS让Linux能够支持目前多种文件系统。VFS具备访问各种各样的文件系统的能力,也是因为VFS在内部去适应各种不同文件系统的差异,而提供给用户进程的是统一的文件API。49.JFFS2嵌入式文件系统原理:
首先JFFS2是一个日志结构文件系统,包含数据和元数据的节点在闪存上顺序存储。JFFS2定义了三种节点类型:JFFS2_NODETYPE_INODE, JFFS2_NODETYPE_DIRENT,JFFS2_NODETYPE_CLEANMARKER。JFFS2中I节点的信息并没有全部存放在内存,mount操作时,会为节点建立映射表,但是这个映射表并不全部存放在内存中,存放在内存中的节点信息是一个缩小尺寸的结构体。JFFS2使用了多个级别的待回收块队列。JFFS2写平衡策略是在垃圾收集中实现的,垃圾收集的时候会读取系统时间,使用这个系统时间产生一个伪随机数。利用这个伪随机数结合不同的待回收链表选择要进行回收的链表。50.JFFS2克服了JFFS中以下缺点:
(1).使用了基于哈希表的日志节点结构,大大加快了对节点的操作速度;(2).支持数据压缩;
(3).提供了”写平衡”支持;
(4).支持多种节点类型(数据I节点,目录I节点等);(5).提高了对闪存的利用率,降低了内存的消耗;
51.系统调用是操作系统内核和应用程序之间的接口,而设备驱动程序则是操作系统内核和机器硬件之间的接口;
52.Linux支持三类硬件设备:字符设备、块设备、网络设备; 53.Linux内核设备模型的目的和功能:
目的:设备模型提供独立的机制表示设备,并表示其在系统中的拓扑结构,这样使系统具有以下优点:代码重复最小;提供如引用计数这样的统一机制;列举系统中所有设备,观察其状态,查看其连接总线;用树的形式将全部设备结构完整、有效地展现,包括所有总线和内部连接;将设备和对应驱动联系起来,将设备按照类型分类;从树的叶子向根的方向依次遍历,确保以正确顺序关闭各个设备的电源;初衷是为了节能,有助于电源管理,通过建立表示系统设备拓扑关系的树结构,能够在内核中实现智能的电源管理;
功能:将系统中的设备组织成层次结构,然后向用户程序提供内核数据结构信息; 54.同步机制的分类及特点:
(1).同步锁:适用于保持时间段的情况,可以在任何上下文使用,不可以睡眠,任何时候,只能有一个持有者;
(2).信号量:不能用在内核之外,是一种睡眠锁,适用于锁会被长期持有的情况,允许多个持有者;
(3).原子操作:在执行完毕前绝不会被任何其他任何或时间打断,是最小的执行单位,主要用在资源计数上;
(4).完成事件:适用于需要睡眠和唤醒的情景,不会引起资源竞争;
55.表示字符设备的设备文件可以通过”ls-l”命令输出的第一列中的“c”来识别,而块设备则用“b”标识;
56.dev t是一个32位的无符号数,其高12位用来表示主设备号,低20位用来表示次设备号;
Register_chrdev_region()函数和alloc_chrdev_region()函数用于分配设备号,这两个函数最终都会调用_register_chrdev_region()函数来注册一组设备的编号范围,它们的区别是后者是以动态的方式分配的,unregister_chrdev_region()函数则用于释放设备号。Alloc_chrdev_region()函数用于动态申请设备号范围,通过指针参数返回实际分配的起始设备号;
Dev_ti_rdev:对于设备文件而言,此成员包含实际的设备号; Struct cdev *i_cdev:字符设备在内核中是用cdev结构来表示的,此成员是指想cdev结构的指针;
57.I/O接口是微控制器必须具备的最基本外设功能。通常在ARM里,所有I/O都是通用的,称为GPIO(通用输入输出);GPIO接口一般至少会有两个寄存器,即控制寄存器和数据寄存器;
58.同步外设接口是由摩托罗拉公司推出的一种高速的、全双工、同步的串行总线; 59.SPI的工作模式有两种:主模式和从模式;
60.字符设备以字节为单位进行读写,而块设备则以块为单位,块设备的I/O请求都有对应的缓冲区并使用了请求队列对请求进行管理,块设备还支持随机访问,而字符设备只能顺序访问。Linux中每一个块设备里请求都有一个I/O请求队列,每个请求队列都有调度器的插口。
61.Bio是底层对部分块设备的I/O请求描述,其包含了驱动程序执行请求所需的全部信息,通常一个I/O请求对应一个bio。I/O调度器可将联系的bio合并成一个请求。
62.MMC/SD卡驱动结构:a.文件结构;b.块设备驱动;c.MMC/SD核心;d.MMC/SD接口;