1/19西安电子科技大学XidianUniversity嵌入式系统设计课程大作业(2015年下半学期)学院:电子工程学院专业:电子信息工程姓名:崔婕学号:14050510030班级:14020142/19目录XidianUniversity1、叙述JTAG接口在嵌入式开发中的作用。2、叙述嵌入式平台的搭建过程,以linux为例。3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品?体系结构是什么?4、现今较流行的嵌入式操作系统有哪些?5、PXA270嵌入式开发板的接口有哪些?6、请写出NorFlash和NandFlash的区别。7、冯。诺依曼架构与哈佛架构的区别。8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束?9、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。(详情见后页)10、基于IntelGilelo开发板,设计一个项目,项目题目自选,给出项目的总体设计图,以及对图中模块的功能分析,若可以,给出实现项目的详细设计和程序及代码,及实物。西安电子科技大学XidianUniversity3/191、JTAG接口在嵌入式开发中的作用。(原创)一、引言JTAG接口为高速发展的嵌入式系统的测试和烧写提供便利,但仍有改进之处。二、JTAG的定义JTAG(JointTestActionGroup):联合测试工作组)IEEE1149.1兼容,多用于芯片内部测试和基于PCB的集成电路调试。大多数的高级器件及嵌入式平台都支持JTAG协议,如DSP、FPGA、ARM器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG较于并口通信正因为其接口少速度快而广受青睐。三、JTAG开发背景目前初学8051单片机等的硬件的学习者们最常见的编程方法是使用编程器(烧录器)编程,而过去的生产部门的负责人则常常会使用OPB模式编程。但硬件学习者在深入学习嵌入式接触到类似ARM的开发板就会注意到传统的编程方式对于日益复杂的变成项目来说已经远远不够,一个小系统的烧录时间也长达分钟。同时在微电子与集成技术飞速发展的今天,工厂编程往往会考虑最大化生产效益,而新旧不同厂家生产的半导体器件编程时间各异,可获性不同,价格悬殊,甚至频繁变更编程规则。此时ATE编程在PCB设计过程中就弊端突出,高端元器件在OPB环境效率低下,嵌入式开发由于测试调控时间过长生产成本上升而生产周期长,上市困难,编程方式亟待更新。四、JTAG特性JTAG主要是利边界扫描编程将指令通过处理器内部的TAP控制器转入FLASH中对芯片进行测试,通过大多数芯片边界扫描单元构成的边界扫描寄存器BSC回路进行,对不同半导体供应商所提供的元器件有很大的兼容性。此通信方式不使用片上资源,即完全非插入式调试,只用一根专用电缆即可完成调试,标准的JTAG线路也只有4个。不仅于此,由于边界扫描寄存器是直接与内部逻辑相连,所以在调试时不用真正调用外部模块,在复杂的嵌入式生产的调试中十分安全。一方面它避免芯片管脚误触发外部器件的失误,另一方面又甚至可以在没有软件的情况下访问CPU连接的设备进行单板调试,大大缩短开发周期。西安电子科技大学XidianUniversity同时有很多类似EmbeddedICE基于JTAG的ARM内核调试通道,以EmbeddedICE4/19为例,这种编程方式支持正常的断点,在调试中可得到完全的源代码级别调试功能,成为程序设计人员在本地或基于ICE的调试中习惯采用的方式,JTAG的方便可见一斑。此外,通过JTAG来对flash烧写程序速度往往非常快,因为JTAG中的TCK线是来做时钟驱动的可以有自己的CPU时钟,所以不受被测试CPU系统时钟的限制。虽然设置时注意应不能过快使程序不稳定。五、JTAG的改进之处虽然JTAG在嵌入式开放中应用广泛,但对于一些元器件仍有不兼容的情况。同时,烧写速度由不同的目标芯片来定,没有统一的标准,工程师们往往需要靠经验和摸索烧写速度,对不同的芯片还要查阅芯片手册了解各种芯片的系统时钟等特性,若生产商没有及时更新数据则会对测试带来不好的影响。六、总结JTAG在嵌入式仿真方面提供的便利是巨大的,本人也使用它完成STM32的调试,亲测比串口下载和人工调试方便很多,通过设置断点等方法非常方便的找出了程序的错误,在程序出错的地方根据推理设置一些断点和运行结果来判断错误类型等等,也很快学会了更多新东西。对于以后的应用想必前景也是巨大的。七、附录参考文献:1.基于JTAG的嵌入式调试技术的研究_彭德刚——《仪表技术》2008年底3期2.嵌入式系统中的JTAG接口编程技术_何希顺——《电子技术应用》2001年第12期3.嵌入式系统开发与应用教程_田泽(北京航空航天大学出版社)4.JTAG百度百科5.编程器百度百科6.中国电子网技术论坛【关于jtag速度的奇怪问题】西安电子科技大学XidianUniversity5/192、叙述嵌入式平台的搭建过程,以linux为例。嵌入式平台的搭建主要分为四个部分:1.开发环境的搭建2.BootLoader移植3.Linux操作系统移植4.根文件的移植1.开发环境的搭建Tftp及nfs安装与配置交叉编译器与SDK安装交叉编译器:(1)针对目标板操作系统的编译器gcc;(2)针对目标板操作系统的二进制编译工具binutils;(3)目标办操作系统的标准c库glibc;(4)目标板操作系统的Linux内核头文件。2.BootLoader移植嵌入式系统一般都需要Bootloader作为引导加载程序其中若选用Uboot作为引导加载程序,则如下:(1)烧写NAND程序(2)装载完成后分别烧写NANDUBL与Uboot3.Linux操作系统移植内核修剪与配置内核下载与烧写4.根文件的移植nfs文件系统挂载启动嵌入式平台自启动西安电子科技大学XidianUniversity6/193、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品?体系结构是什么?芯片名称公司体系架构龙芯中国科学院自主研发MIPS指令集OpteronA1100AMD(AdvancedMicroDevices)Cortex-A57GX-210JAAMD(AdvancedMicroDevices)X86AVRARMARMStellaris®Cortex™-MMCUIT(TexasInstruments)ARMTMS320C2000/C5000IT(TexasInstruments)ARMMCS-29IntelARMTriCoreSimensTriCorearm7ARMARMarm9ARMARM4、现今较流行的嵌入式操作系统有哪些?据百度百科:uTenuxuC/OSIIRT-threaduCLinuxFreeRTOSRTXArm-LinuxVxWorksRTEMSpSOSNucleus个人感受:红色字体我认为是与我们联系比较紧密的,就不都粘贴定义了。目前本人只是试用过ucosII,正在学习linux,个人感觉ucosII系统的多任务进程和自愿的中断部分比起之前学习的单片机的中断和程序的执行来说更有序,感觉更加友好。想必linux也是如此吧。西安电子科技大学XidianUniversityPalmOSWindowsCEWindowsXPEmbeddedWindowsVistaEmbedded嵌入式LinuxECOSQNXLynxAndroid7/195、PXA270嵌入式开发板的接口有哪些?6、请写出NorFlash和NandFlash的区别。性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,西安电子科技大学XidianUniversity8/19与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。●NOR的读速度比NAND稍快一些。●NAND的写入速度比NOR快很多。●NAND的擦除速度远比NOR快。●NAND的擦除单元更小,相应的擦除电路更加简单。●NAND的实际应用方式要比NOR复杂的多。●NOR可以直接使用,并在上面直接运行代码,而NAND需要I/O接口,因此使用时需要驱动。接口差别NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。NOR的特点是芯片内执行(XIP,eXecuteInPlace),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理需要特殊的系统接口。NAND特点编辑容量和成本NANDflash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NORflash占据了容量为1~16MB闪存市场的大部分,而NANDflash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、SecureDigital、PCCards和MMC存储卡市场上所占份额最大。物理构成NANDFlash的数据是以bit的方式保存在memorycell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bitline,形成所谓的byte(x8)/word(x16),这就是NANDDevice的位宽。这些Line会再组成Page,(NANDFlash有多种结构,我使用的NANDFlash是K9F1208,下面内容针对三星的K9F1208U0M),每页528Bytes(512byte(MainArea)+16byte(SpareArea)),每32个page形成一个Block(32*528B)。具体一片flash上有多少个Block视需要所定。我所使用的三星k9f1208U0M具有4096个block,故总容量为4096*西安电子科技大学XidianUniversity9/19(32*528B)=66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。NANDflash以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成所谓的三类地址:ColumnAddress:StartingAddressoftheRegister.翻成中文为列地址,地址的低8位PageAddress:页地址BlockAddress:块地址对于NANDFlash来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8位。可靠耐用性采用flash介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面