DSP的C语言实验指导书(上).doc_第1页
DSP的C语言实验指导书(上).doc_第2页
DSP的C语言实验指导书(上).doc_第3页
DSP的C语言实验指导书(上).doc_第4页
DSP的C语言实验指导书(上).doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计实验实验一 HelloWorld实验一 试验目的1熟悉ARM/DSP/FPGA实验箱2熟悉整个DSP软件开发流程3熟悉如何使用DSP的USB仿真器配合CCS软件进行DSP开发二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是个入门实验,主要是为了让用户了解如何利用本实验系统配合DSP软件以及DSP的USB仿真器来完成代码的开发、下载和验证。在本实验中,首先利用CCS软件创建工程,并加入相应的DSP相关文件,然后对其进行编译、下载、调试以及结果验证等。在进行代码开发之前,首先对本系统中的DSP模块作一些简要介绍。本系统中的DSP采用了TI的TMS320C5410A,该芯片可以稳定工作在160MHz主频;内部具有128KB片内RAM和32KB片内ROM;该芯片内部包含有一个16位定时器,1个6 通道DMA控制器,3个McBSP串行口和1个增强型HPI控制器。对于本实验系统上的DSP模块,板上提供了512KB的Flash ROM,用于存放用户代码。令外由于该DSP内部已经拥有很大的片内RAM,所以本模块没有外扩SRAM。DSP模块的数据和地址总线、I/O相关控制总线均与FPGA相连接,另外对于McBSP0和McBSP1也连接到了FPGA,这些都为DSP通过FPGA控制板上资源创造了非常灵活的条件。由于板上没有扩展外部SRAM,所以在程序设计的时候需要把可执行代码区、数据区以及中断向量表等全部放到DSP的SRAM中,考虑到DSP中还有一些存储器映射的寄存器,所以以上的代码必须放在DSP中的0x00800x7FFF之间。具体的分配可以参考本实验的C54xx.cmd文件。 前面已提到,本实验是一个入门实验,旨在让学生了解整个DSP的开发流程,所以本实验中将不对程序中的代码以及实现过程作过多的说明,后续的实验将会告诉用户如何配置内部的寄存器以及如何正确的操作DSP的片内外设。四 实验步骤1将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。2系统上电后,将USB仿真器的USB连接线插入到计算器的USB接口。3双击桌面上的CCS(C5000)图标(也可以按照图4.1.1所示的方式打开),开打CCS软件。图4.1.1 从开始菜单打开CCS软件 4在CCS中创建一个工程HelloWorld,如图4.1.2所示。图4.1.2 创建HelloWorld工程5将实验系统配套光盘上实验例程中DS文件夹下面的实验一(Exp1)中的HelloWorld.c、C54xx.h、vectors.asm、rts.lib以及C54xx.cmd文件全部拷贝到刚刚创建的工程文件夹下面。6将步骤5中拷贝的文件全部加入到当前工程HelloWorld中如图4.1.3,点击【打开】即可。加入文件后的工程如图4.1.4所示。图4.1.3 添加文件到当前工程图4.1.4 添加了文件的工程界面 7双击c54xx.cmd文件,可以看到如下文件内容:MEMORY PAGE 0: EPROG: origin = 0x4000, len = 0x3f80 VECT: origin = 0x7f80, len = 0x80 PAGE 1: SYSREGS: origin = 0x00, len = 0x60 BIOSREGS: origin = 0x60, len = 0x20 IDATA: origin = 0x80, len = 0x3f00 EDATA: origin = 0x8000, len = 0x8000SECTIONS .vectors: VECT PAGE 0 .sysregs: BIOSREGS PAGE 1 .text: PAGE 0 .cinit: EPROG PAGE 0 .bss: IDATA PAGE 1 .const: IDATA PAGE 1 .switch: IDATA PAGE 1 .sysmem: IDATA PAGE 1 .stack: IDATA PAGE 1从cmd文件的内容中可以看到,中断向量表(.vectors)放在PAGE 0的VECT段,也就是0x7F800x7FFF;系统存储器映射寄存器(.sysregs)放在PAGE 1的BIOSREGS段,即0x000x60的位置;可执行代码(.text)放在PAGE 0的EPROG段,即0x40000x7F7F这些内容就是告诉编译器将源文件中的资源按照cmd文件制定的方式存放。8vectors.asm中存放的是中断入口地址,如果程序中涉及到中断,就需要在vectors.asm中相应的地址放置跳转指令,跳转到相应的中断服务子程序便可。9HelloWorld.c即使本工程中的主文件,该文件中有本实验的功能实现代码,所有的用户要实现的功能都可以写在该文件中。当然对于比较复杂的工程,可以写多个.c或.s文件,只需要将其包含到同一个工程中即可。从本实验的HelloWorld.c中可以看出,本实验仅仅实现一个简单的printf打印功能,打印信息会在stdout窗口显示出来。 10将整个文件之间的关系和本实验要实现的功能理清楚后,即可对本工程进行编译,编译结果如图4.1.5所示。图4.1.5 工程编译结果 11点击File下面的Load Program,选择本工程目录下Debug文件夹下面的HelloWorld.out文件(如图4.1.6所示),点击【打开】,即可将该工程编译后的可执行文件下载到DSP内部的SRAM中。图4.1.6 打开本工程编译的DSP执行代码(.out文件) 12点击“执行”,便可启动DSP执行本工程编译的代码,执行结果如图4.1.7所示。图4.1.7 实验运行结果思考题:n 1.一个C工程中通常包括那几个文件,这些文件在工程中分别起着什么功能?n 2.中断向量表起什么功能的?n 3.如何改变CCS中的output窗口中的输出内容?让其输出自己名字的全拼。能不能输出中文?如何让输出的数字递减?n 4.如何改变输出频率?实验二 GPIO实验一 试验目的1熟悉ARM/DSP/FPGA实验箱的DSP模块2熟悉整个DSP的GPIO的使用3进一步掌握如何使用DSP的USB仿真器配合CCS软件进行DSP开发二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生基本上了解DSP开发流程的基础上,进一步熟悉使用DSP内部的外设资源,控制实验系统的LED、按键和拨挡开关,从而更加直观的让学生体会DSP的工组流程。本实验中采用DSP的McBSP0和McBSP1两个接口的引脚来作为GPIO,部分用来作为按键和拨挡开关的输入,另外一部分作为LED的输出驱动LED显示。DSP的McBSP接口和HPI的数据接口均可以作为GPIO来使用。当下面的条件满足的时候,McBSP接口即可工作在GPIO模式:1)相关的串行端口均处于复位状态,即将SPCR1n和SPCR2n(n代表串口号,即0、1和2)中的RRST位和XRST位清0。具体内容见表4.2.1和表4.2.2。2)使能相关端口位通用I/O,即将PCRn中的RIOEN位和XIOEN位置1。具体内容见表4.2.3。表4.2.1 SPCR1寄存器图4.2.2 SPCR2寄存器表4.2.3 PCR寄存器 在引脚控制寄存器(PCR)中,可以把McBSP的引脚配置为输入或者输出(除某些只能作为输入或输出的引脚外)。表4.2.4列出了具体的引脚功能与寄存器相关位的关系。表4.2.4 McBSP引脚功能与寄存器关系表从表4.2.4中可以看出,对于FSX引脚而言,如果将FSXM位清零,即可将该引脚配置为输入;如果将FSXM置1,即可将其配置为输出。当该引脚被配置为输出的时候,它输出的电平将由PCRn寄存器中FSXP的值来决定;当该引脚配置为输入的时候,FSXP就会变成一个只读位,该位存储的即使FSX输入的信号电平。需要注意的是,McBSP接口中的DX引脚只能被作为输出端口使用,而DR引脚只能被作为输入引脚使用。在本实验中,首先写FPGA控制字,将拨挡开关的K1K3和按键的S1S3映射到DSP的McBSP口的输入,将LED的D1D3、D5D7映射到McBSP口的输出,在DSP程序中读取按键和拨挡开关的状态,然后用LED显示其当前状态。具体的对应关系见表4.2.5。输 入输 出K1DR0D1DX0K2FSR0D2FSX0K3CLKR0D3CLKX0S1DR1D5DX1S2FSR1D6FSX1 S3CLKR1D7CLKX1表4.2.5 资源对应表 另外说明一点,由于实验系统中的资源模块全部与FPGA直接连接,ARM和DSP在使用板上资源之前必须先写FPGA的命令字,以便将板上资源映射到ARM或DSP相应的功能引脚上。四 实验步骤1将实验箱配套光盘上的DSP实验中的实验二(Exp2)拷贝到计算机硬盘上。2将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。3系统上电后,将USB仿真器的USB连接线插入到计算器的USB接口。4打开CCS软件,并打开刚刚拷贝的Exp2文件夹下面的GPIO工程。5查看本实验中的相关代码,查看如何正确的将McBSP接口配置为GPIO口。6对代码整体结构和流程清楚后,编译代码。7编译通过后,下载代码到DSP。8查看代码执行结果是否正确(正确的实验结果是:拨动K1K3,相应的D1D3会体现出它的状态;按下S1S3,相应的D5D7会体现出它的状态)。思考题:n 1.一个键控制6个灯。n 2.编写楼道灯。实验三 中断设计实验一 试验目的1熟悉ARM/DSP/FPGA实验箱的DSP模块2熟悉DSP的中断的原理3掌握如何编写DSP中断服务子程序二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生基本上了解DSP的GPIO使用的基础上,进一步学习如何在DSP内部实现中断服务程序的编写。在TMS320VC5410A的DSP中,可以管理多达29个中断,其中包括1个非屏蔽中断(NMI)、14个软件中断(SINT)、4个外部中断(EINT)、1个定时器中断(TINT)、3个串口接收中断(RINT)、3个串口发送中断(XINT)、2个DMA中断(DMAC)以及1个主机接口中断(HINT)等,表4.3.1是该芯片中支持的所有中断类型、中断好、相对中断偏移地址以及中断优先级等。要正确的完成整个中断服务程序有以下几种方式:1)在中断向量表中对应的中断向量处放置中断跳转命令,跳转至相应的中断服务程序(该方式实现最直接、最易理解,本实验机采用该方式实现中断,)。2)利用CCS的CSL库中的函数来实现。3)利用DSP/BIOS来实现。第二种和第三种方式在后面的实验中会介绍并使用到。完成一个完整的中断过程可以分为以下几步:1)首先在C文件或者asm文件中编写好相应的中断服务子程序。2)在中断向量表(vectors.asm)中相应的中断处放置中断跳转指令,转到1)中编写的函数处(需要注意的是,如果是在C文件中编写的函数,在汇编中调用是需要在函数名称前加下划线_)。3)在主程序中初始化相应的中断屏蔽寄存器(IMR)和中断标志寄存器(IFR),在IFR中清除相应中断标志,并在IMR中使能相应中断。4)使能全局中断,即将ST1寄存器中的INTM位清零。5)根据中断向量表在SRAM中的位置,设置PMST中的中断重映射寄存器(IPTR),使其指向正确的中断向量表入口地址。具体计算公式为中断程序指针PC = (IPTR) 7 + (Vectorn) 2 上是中Vectorn表示表4.3.1中对应的中断偏移量。IFR和IMR的操作均通过寄存器的方式进行操作,即对地址0x0000和0x0001两个地址的存储空间进行操作,而对INTM的操作则可以通过“ssbx INTM”的命令来置位;通过“rsbx INTM”的命令来清零。上述的IMR、IFR以及INTM均只对可屏蔽中断有效,对于非屏蔽中断NMI不起任何作用。表4.3.2是IFR、IMR寄存器的具体内容。表4.3.3是PMST寄存器的具体内容。表4.3.1 DSP中断一览表表4.3.2 IMR和IFR寄存器表4.3.3 PMST寄存器四 实验步骤1将实验箱配套光盘上的DSP实验中的实验三(Exp3)拷贝到计算机硬盘上。2将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。3系统上电后,将USB仿真器的USB连接线插入到计算器的USB接口。4打开CCS软件,并打开刚刚拷贝的Exp3文件夹下面的ExINT工程。5查看本实验中的相关代码,学习如何实现中断跳转,如何编写中断服务子程序等。6对代码整体结构和流程清楚后,编译代码。7编译通过后,下载代码到DSP。8查看代码执行结果是否正确(正确的实验结果是:按下S1S3,相应的D5D7会点亮一会儿然后灭,同时CCS的Stdout窗口会显示相应按键按下的信息,如图4.3.1所示)。图4.3.1 CCS打印的按键中断信息思考题:n 按键流水灯。n 单键控制:按一下亮,在按灭。n 简述DSP中断执行的过程实验四 定时器实验一 试验目的1进一步熟悉DSP的中断机制2在掌握中断服务程序编写的基础上进一步熟悉定时器的运用3进一步掌握如何编写DSP中断服务子程序二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生基本上掌握DSP中断机制的基础上,进一步学习如何在DSP内部实现定时器的正确操作以及定时器中断服务程序的编写。在TMS320VC5410A中,有一个16位的硬件定时器,该定时器有一个4位的预分频器,由CLKOUT来驱动,也就是说在CLKOUT时钟的作用下进行递减计数。当计数器递减到0的时候,会产生一个定时器中断。通过控制定时器相关寄存器,该定时器可以被停止、重新启动、复位或禁止。与该定时器有关的寄存器有定时计数寄存器(TIM)、定时周期寄存器(PRD)以及定时器控制寄存器(TCR)。下面对这几个寄存器作简要介绍:l TIM:该寄存器是一个存储器映射的寄存器,地址为0x0024。该寄存器中保存了定时器当前的计数值,并且该寄存器的值会在预分频器中的计数器递减至0的时候递减1。当TIM寄存器中的至递减至0的时候,定时器复位,TIM重新加载PRD寄存器中的值,开始下一轮计数,与此同时,当该寄存器中的值递减至0的时候,产生定时器中断。l PRD:该寄存器是一个存储器映射的寄存器,地址为0x0025。该寄存器用于控制定时器的周期。l TCR:该寄存器是一个存储器映射的寄存器,地址为0x0026。该寄存器主要用于控制定时器的启动、停止、复位以及初始化定时器的预分频器等操作。该寄存器的具体内容如表4.4.1所示。表4.4.1 TCR寄存器TCR寄存器中的具体内容意义如下:l TDDR:定时器的4位预分频器,TDDR的值为015。l TSS:定时器启动/停止位。1可停止定时器计数;0可启动定时器。l TRB:向该位写入1可复位定时器。l PSC:预分频器的递减计数器。该计数器会在CLKOUT的作用下递减,当递减至0的时候,TIM的值便会递减1,同时PSC会重新加载TDDR的预分频值。l Free:该位用来配置定时器是否工作在Soft制定的工作方式。当该位为0时,选定Soft位所指定的工作模式;当该位为1时,定时器将会正常运行,而不会采取Soft位所指定的工作模式。l Soft:该位用来配置定时器在遇到程序中断时的工作方式。当该位为0时,遇到中断定时器会立即停止运行;当该位为1时,定时器将会正常运行,遇到中断定时器会在递减到0后停止运行。根据以上讲述,可以得到DSP中定时器的中断频率为fT中断 = (fCLKOUT/(TDDR+1)/(PRD+1)要对定时器正确配置和操作,可以通过以下步骤来实现:1)首先通过写TCR寄存器中的TSS位来停止寄存器。2)初始化定时器的预分频器TDDR。3)初始化定时器周期PCR。4)编写定时器中断服务函数。5)在中断向量表中相应的位置放置中断跳转指令,指向4)中定义的函数。6)通过写IFR将定时器中断标志清零,通过写IMR寄存器使能定时器中断。7)使能全局中断INTM。8)通过设置BSCR寄存器中的DIVFCT(见表4.4.2)设置CLKOUT的时钟频率,具体为fCLKOUT =fDSPCLK/(DIVFCT + 1)。9)启动定时器。表4.4.2 BSCR寄存器 本实验要完成的任务就是利用定时器中断配合定时器中断服务函数,学习定时器的具体使用方法。在定时器中断服务子程序中,点亮LED和关灭LED以表示定时器工作正常,同时在CCS的消息输出窗口输出相应的中断信息。四 实验步骤1将实验箱配套光盘上的DSP实验中的实验四(Exp4)拷贝到计算机硬盘上。2将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。3系统上电后,将USB仿真器的USB连接线插入到计算器的USB接口。4打开CCS软件,并打开刚刚拷贝的Exp4文件夹下面的Timer工程。5查看本实验中的相关代码,学习如何实现中断跳转,如何编写定时器中断服务子程序等。6对代码整体结构和流程清楚后,编译代码。7编译通过后,下载代码到DSP。8查看代码执行结果是否正确(正确的实验结果是:LED1LED3和LED5LED7会周期性的量和灭,同时CCS的Stdout窗口会显示相应按键按下的信息,如图4.4.1所示)。图4.4.1 CCS打印的定时器中断信息思考题:n 1.灯以10HZ闪烁n 2.灯以1HZ闪烁n 3.两个灯以不同频率闪烁,并用示波器读频率。实验五 DMA实验一 试验目的1进一步熟悉DSP的中断机制2了解DSP中DMA工作原理3掌握如何正确的配置和使用DMA二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生基本上掌握DSP中断机制的基础上,进一步学习如何使用DSP内部的DMA控制器。在TMS320VC5410A中,有1个6通道的DMA控制器,它可以在存储器之间传输数据而不打断CPU的正常运行。这些DMA允许数据在内部存储单元、内部外设、外部设备以及HPI接口等之间进行传递。该DMA可以完成如下操作:l 读传输:DMA从存储单元、外设、当前程序、数据以及I/O空间读取一个数据单元。l 写传输:DMA向存储单元、外设、当前程序、数据以及I/O空间写入一个数据单元。l 单次传输:DMA向存储单元、外设、当前程序、数据以及I/O空间写入一个数据单元或DMA从存储单元、外设、当前程序、数据以及I/O空间读取一个数据单元,且以上操作仅执行一次。l 帧传输:每个通道可以有一些数据单元数可编程的数据块,在完成一个帧传输过程中,DMA移动该帧中所有的数据单元。l 块传输:每个通道可以有一些帧数可编程的数据块,在完成一个块传输过程中,DMA移动该块中所有的帧单元。DSP中的DMA具有以下特性:l 后台运行:DMA的整个操作无须CPU干预。l 六通道:DMA可以同时传输6个独立通道中的数据内容。l 主机接口(HPI)访问:DMA为HPI的数据提供了一个到存储区的通道,整个过程无须CPU干预。这个特点允许HPI从内存中传递大量的数据。l 多帧传输:每个块传输可以包含很多长度可编程的帧。l 可编程优先级:每个通道均可独立地被编程为高优先级或低优先级。l 可编程地址:每个DMA通道的源地址和目标地址均可被程序改写。这些地址可以是固定地址、递增地址或递减地址。l 满地址范围操作:DMA可以访问到所有的内部存储区、外部存储区、扩展存储区、片内外设、程序空间、数据空间以及I/O空间等。l 可编程传输宽度:每个通道均可独立的被配置为单字(16位)传递或双字(32位)传递模式。l 自动初始化:当一个块传输结束后,该DMA通道可以自动的重新初始化自己,以便进行下一次块传输。l 事件同步:每个数据单元的传输均可被初始化为与某个时间同步,如McBSP接收中断、发送中断和定时器中断等。l 中断机制:在DMA的帧传输和块传输结束后,每个DMA通道均可给CPU发送一个中断请求。与DMA控制器相关的寄存器见表4.5.1、表4.5.2、表4.5.3表4.5.1 MDA通道优先级及使能控制寄存器(DMPREC)表4.5.2 DMA同步事件和帧数寄存器(DMSFCn)(n表示通道号)表 4.5.3 DMA传输模式控制寄存器(DMMCRn)由于涉及寄存器数量太多,加之本实验指导书内容篇幅有限,所以具体的寄存器内容及其意义请查阅CCS的帮助文档。通常要完成正确的DMA操作,可以分为以下几个步骤:1)设定DMA源地址2)设定DMA目标地址3)设定DMA传输长度4)设定DMA工作模式5)编写DMA中断服务子程序(如有DMA中断)6)重映射中断向量表(如果不在0xFF800xFFFF位置)6)在中断向量表中对应的位置写中断跳转指令7)清除DMA中断标志8)使能DMA中断9)使能全局中断10)启动DMA传输 在本实验中,首先在DSP内部开辟两个缓冲区,一个用于存放用户初始化数据,而另一个同样大小的缓冲区在开始的时候全部清零,然后利用DMA将被初始化的缓冲区中的数据传输到被清零的缓冲区中。在DMA传输结束后,在其中断服务程序中修改DMA传输的标志位,以告诉main函数DMA传输结束。在DMA传输结束后,在对以上两个缓冲区的数据逐个比较,如有不同,则累加错误计数器。最后在程序末尾,根据错误计数器判断传输的数据是否正确,然后打印相关信息。表4.5.4 DMA寄存器一览四 实验步骤1将实验箱配套光盘上的DSP实验中的实验五(Exp5)拷贝到计算机硬盘上。2将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。3系统上电后,将USB仿真器的USB连接线插入到计算器的USB接口。4打开CCS软件,并打开刚刚拷贝的Exp5文件夹下面的DMA工程。5查看本实验中的相关代码,学习如何实现中断跳转,如何正确配置DMA等。6对代码整体结构和流程清楚后,编译代码。7编译通过后,下载代码到DSP。8查看代码执行结果是否如图4.5.1所示。图4.5.1 本实验结果实验六 McBSP实验一 试验目的1进一步熟悉DSP的中断机制2了解DSP中McBSP接口的工作原理3掌握如何正确的配置和使用McBSP接口二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生将McBSP接口作为GPIO使用的基础上,进一步学习如何将McBSP工作在串行接口模式,以及如何正确的编写McBSP的中断服务程序。TMS320VC5410A芯片钟提供了3个高速、全双工的多通道串行接口,该接口可以直接与其它C54x/LC54x器件、编码解码器等在同一个系统中进行连接。C5410A的3个McBSPs具有以下特点:l 全双工通信模式l 双缓冲数据寄存器,允许连续的数据流传输l 独立的帧信号和时钟信号来驱动接收和发送模块l 可以直接与以下接口连接: T1/E1帧发生器 MVIP开关兼容设备以及ST-BUS总线设备 IOM-2设备 AC97设备 串行外设接口(SPI)l 最多128通道的发送和接收l 多数据位宽选择:8位、12位、16位、20位、24位和32位l -率和A-率压缩扩展l 可编程帧同步信号和数据时钟的极性l 可编程内部时钟和帧产生图4.6.1是McBSP接口的功能框图。从图中可以看出,McBSP包含了一个数据通路和一个控制通路,通过7个引脚连接到外部器件。与外部器件通信的数据是通过数据发送引脚(DX)和数据接收引脚(DR)连接,控制信号如帧同步信号、发送时钟、接收时钟等均通过相应的引脚连接。C54x的McBSP接口通信是基于一个16位位宽的控制寄存器来连接到内部总线。CPU或DMA控制器从DRR1,2读取接收的数据,向DXR1,2写入发送的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论