嵌入式linux下的文件系统_第1页
嵌入式linux下的文件系统_第2页
嵌入式linux下的文件系统_第3页
嵌入式linux下的文件系统_第4页
嵌入式linux下的文件系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

.嵌入式linux下常见的文件系统RomFS:只读文件系统,可以放在ROM空间,也感谢阅读可以在系统的RAM中,嵌入式linux中常用来作谢谢阅读根文件系统RamFS:利用VFS自身结构而形成的内存文件系统,使用系统的RAM空间感谢阅读JFFS/JFFS2:为Flash设计的日志文件系统精品文档放心下载Yaffs:专门为NandFlash设计proc:为内核和内核模块将信息发送给进程提供一种机制,可以查看系统模块装载的信息感谢阅读devFS:设备文件系统支持4TB存储、文件名称最长1012字符可选择逻辑块快速符号链接Ext2不适合flash设备是为象IDE设备那样的块设备设计的,逻辑块大小必须是512byte、1KB、2KB等精品文档放心下载没有提供对基于扇区的擦除/写操作的良好管理如果在一个扇区中擦除单个字节,必须将整个扇区复制到RAM,然后擦除,再重写入.在出现电源故障时,Ext2fs是不能防止崩溃的文件系统不支持损耗平衡,缩短了flash的寿命jffs/jffs2文件系统的优缺点日志文件系统提供了更好的崩溃、掉电安全保护jffs2支持对flash的均匀磨损在扇区级别上执行闪存擦除/写/读操作要比Ext2文件系统好精品文档放心下载文件系统接近满时,JFFS2会大大放慢运行速度——垃圾收集感谢阅读专门为Nandflash设计的日志文件系统jffs/jffs2不适合大容量的Nandflash感谢阅读jffs的日志通过jffs_node建立在RAM中,占用感谢阅读来维护节点启动的时候需要扫描日志节点,不适合大容量的Nandflash谢谢阅读FAT系统没有日志编译yaffs文件系统mtd的最新补丁升级?接口更新,适合与yaffs.与原有的mtd驱动程序不兼容,需要重写如果使用旧mtd驱动需要定义Makefile中精品文档放心下载参考文档:yaffs-rootfs-howto最新版的yaffs网站:使用yaffs文件系统通过cat/proc/yaffs命令可以看到yaffs系感谢阅读统的相关信息mount-tyaffs/dev/mtdblock/0/mnt/yaffs谢谢阅读关于Linux文件系统JFFS全称为:TheJournallingFlashFileSystem(日志闪存文件系统)最初由瑞典的Axis精品文档放心下载Communications开发,RedHat的DavidWoodhouse对它进行了改进。作为用于微谢谢阅读型嵌入式设备的原始闪存芯片的实际文件系统而出现。JFFS文件系统是日志结构化的,这谢谢阅读意味着它基本上是一长列节点。每个节点包含有关文件的部分信息—可能是文件的名称、谢谢阅读也许是一些数据。相对于Ext2fs,JFFS因为有以下这些优点而在无盘嵌入式设备中越来感谢阅读越受欢迎:.1JFFS在扇区级别上执行闪存擦除/写/读操作要比Ext2文件系统好。谢谢阅读2JFFS提供了比Ext2更好的崩溃/掉电安全保护。当需要更改少量数据时,Ext2文精品文档放心下载件系统将整个扇区复制到内存(DRAM)中,在内存中合并新数据,并写回整个扇区。这谢谢阅读意味着为了更改单个字,必须对整个扇区(64KB)执行读/擦除/写例程—这样做的效感谢阅读率非常低。要是运气差,当正在DRAM中合并数据时,发生了电源故障或其它事故,那感谢阅读么将丢失整个数据集合,因为在将数据读入DRAM后就擦除了闪存扇区。JFFS附加文件谢谢阅读而不是重写整个扇区,并且具有崩溃/掉电安全保护这一功能。精品文档放心下载这可能是最重要的一点:JFFS是专门为象闪存芯片那样的嵌入式设备创建的,所以它的整个设计提供了更好的闪存管理。感谢阅读要构建JFFS文件系统,首先要有硬件设备FLASH及支持JFFS文件系统的操作系统。精品文档放心下载摘要:本文主要分析了uclinux2.4内核的jffs文件系统机制。希望能对基于uclinux开发感谢阅读产品的广大工程师有所帮助。关键词:uclinuxvfsjffs申明:这份文档是按照自由软件开放源代码的精神发布的,任何人可以免费获得、使用和重感谢阅读新发布,但是你没有限制别人重新发布你发布内容的权利。发布本文的目的是希望它能对读感谢阅读者有用,但没有任何担保,甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU精品文档放心下载通用公共许可证(GPL),以及GNU自由文档协议(GFDL)。谢谢阅读.你应该已经和文档一起收到一份GNU通用公共许可证(GPL)的副本。如果还没有,写信给:感谢阅读TheFreeSoftwareFoundation,Inc.,675MassAve,Cambridge,MA02139,USA谢谢阅读欢迎各位指出文档中的错误与疑问一、flash读写的特殊性对于嵌入式系统,flash是很常见的一种设备,而大部分的嵌入式系统都是把文件系统建立感谢阅读在flash之上,由于对flash操作的特殊性,使得在flash上的文件系统和普通磁盘上的文感谢阅读件系统有很大的差别,对flash操作的特殊性包括:谢谢阅读(1)不能对单个字节进行擦除,最小的擦写单位是一个block,有时候也称为一个扇区。精品文档放心下载典型的一个block的大小是64k。不同的flash会有不同,具体参考flash芯片的规范。精品文档放心下载(2)写操作只能对一个原来是空(也就是该地址的内容是全f)的位置操作,如果该位置谢谢阅读非空,写操作不起作用,也就是说如果要改写一个原来已经有内容的空间,只能是读出该感谢阅读sector到ram,在ram中改写,然后写整个sector。精品文档放心下载由于这些特殊写,所以在flash这样的设备上建立文件也有自己独特的特点,下面我们就以谢谢阅读jffs为例进行分析。二、jffs体系结构介绍1、存储结构在jffs中,所有的文件和目录是一样对待的,都是用一个jffs_raw_inode来表示谢谢阅读.整个flash上就是由一个一个的rawinode排列组成,一个目录只有一个rawinode,对于精品文档放心下载文件则是由一个或多个rawinode组成。2、文件组成在文件系统mount到flash设备上的时候,会扫描flash,从而根据flash上的所有属于一感谢阅读个文件的rawinode建立一个jffs_file结构以及nodelist。精品文档放心下载下面的图显示了一个文件的组成一个文件是由若干个jffs_node组成,每一个jffs_node是根据flash上得jffs_raw_inode感谢阅读而建立的,jffs_file主要维护两个链表版本链表:主要是描述该node创建的早晚,就是说version_head指向的是一个最老的感谢阅读node,也就意味着垃圾回收的时候最该回收的就是这个最老的node。精品文档放心下载区域链表:这个链表主要是为读写文件创建的,version_head指向的node代表的文件数精品文档放心下载据区域是0~~~n-1之后依次的节点分别是n~~~m-1m~~~~o-1…….其中n<M<=""感谢阅读p=""/>3、操作对文件的读操作应该是比较简单,但是写操作,包括更改文件名等操作都是引起一个新的感谢阅读jffs_node的诞生,同时要写一个相映的rawinode到flash上,这样的操作有可能导致前谢谢阅读面的某个jffs_node上面的数据完全失效,从而导致对应flash上的rawinode的空间成为谢谢阅读.dirty。下面举一个例子可能会更清楚一些。一个文件的rangelist是由上面的三个jffs_node组成,当我们做如下写操作的时候感谢阅读lseek(fd,10,SEEK_SET);精品文档放心下载write(fd,buf,40);第一个和最后一个node被截短了,第二个node完全被新数据替换,该node会从链表上谢谢阅读摘下来,flash上空间变成dirty。如果做如下写操作的时候谢谢阅读lseek(fd,23,SEEK_SET);谢谢阅读write(fd,buf,5);此时,第二个node被分裂成两个node,同时产生一个新的node,range链表的元素变精品文档放心下载成五个。基于Linux2.6的YAFFS文件系统移植感谢阅读v1.0,2005-6-6一、YAFFS文件系统简介YAFFS,YetAnotherFlashFileSystem,是一种类似于JFFS/JFFS2的专门为Flash设计谢谢阅读的嵌入式文件系统。与JFFS相比,它减少了一些功能,因此速度更快、占用内存更少。感谢阅读YAFFS和JFFS都提供了写均衡,垃圾收集等底层操作。它们的不同之处在于:感谢阅读.(1)、JFFS是一种日志文件系统,通过日志机制保证文件系统的稳定性。YAFFS仅仅借鉴精品文档放心下载了日志系统的思想,不提供日志机能,所以稳定性不如JAFFS,但是资源占用少。感谢阅读(2)、JFFS中使用多级链表管理需要回收的脏块,并且使用系统生成伪随机变量决定要回精品文档放心下载收的块,通过这种方法能提供较好的写均衡,在YAFFS中是从头到尾对块搜索,所以在垃精品文档放心下载圾收集上JFFS的速度慢,但是能延长NAND的寿命。感谢阅读(3)、JFFS支持文件压缩,适合存储容量较小的系统;YAFFS不支持压缩,更适合存储容感谢阅读量大的系统。YAFFS还带有NAND芯片驱动,并为嵌入式系统提供了直接访问文件系统的API,用户可谢谢阅读以不使用Linux中的MTD和VFS,直接对文件进行操作。NANDFlash大多采用精品文档放心下载MTD+YAFFS的模式。MTD(MemoryTechnologyDevices,内存技术设备)是对Flash谢谢阅读操作的接口,提供了一系列的标准函数,将硬件驱动设计和系统程序设计分开。精品文档放心下载二、YAFFS文件系统的移植yaffs代码可以从http://www.aleph1.co.uk/armlinux/projects/下载(yaffs代码包括精品文档放心下载yaffs_ecc.c,yaffs_fileem.c,yaffs_fs.c,yaffs_guts.c,yaffs_mtdif.c,yaffs_ramem.c。)感谢阅读表一Yaffs文件系统源代码相关文件及功能描述文件名功能yaffs_ecc.cECC校验算法yaffs_fileem.c测试flashyaffs_fs.c文件系统接口函数yaffs_guts.cYaffs文件系统算法yaffs_mtdif.cNAND函数.yaffs_ramem.cRamdisk实现1.内核中没有YAFFS,所以需要自己建立YAFFS目录,并把下载的YAFFS代码复制到该目精品文档放心下载录下面。#mkdirfs/yaffs#cp*.c(yaffssourcecode)fs/yaffs精品文档放心下载2.修改fs/Kconfig,使得可以配置yaffs:精品文档放心下载source"fs/yaffs/Kconfig"3.修改fs/makefile,添加如下内容:obj-$(CONFIG_YAFFS_FS)+=yaffs/精品文档放心下载4.在fs目录下生成yaffs目录,并在里面生成一个makefile和Kconfig感谢阅读Makefile内容为:yaffs-objs:=yaffs_fs.oyaffs_guts.oyaffs_mtdif.oyaffs_ecc.o谢谢阅读EXTRA_CFLAGS+=$(YAFFS_CONFIGS)-DCONFIG_KERNEL_2_6精品文档放心下载Kconfig内容为:##YAFFSfilesystemconfigurations谢谢阅读#configYAFFS_FStristate"YetAnotherFlashFilingSystem(YAFFS)filesystemsupport"精品文档放心下载helpYAFFS,forYetAnotherFlashFilingSystem,isafilingsystem精品文档放心下载optimisedforNANDFlashchips.精品文档放心下载.TocompiletheYAFFSfilesystemsupportasamodule,chooseMhere:精品文档放心下载themodulewillbecalledyaffs.感谢阅读Ifunsure,sayN.FurtherinformationonYAFFSisavailableat感谢阅读<http://www.aleph1.co.uk/yaffs/>.谢谢阅读configYAFFS_MTD_ENABLEDbool"NANDmtdsupport"dependsonYAFFS_FShelpThisaddstheyaffsfilesystemsupportforworkingwithaNANDmtd.感谢阅读Ifunsure,sayY.configYAFFS_RAM_ENABLEDbool"yaffsramfilesystemsupport"精品文档放心下载dependsonYAFFS_FShelpThisaddstheyaffsramfilesystemsupport.Nicefortestingonx86,感谢阅读.butuses2MBofRAM.Don'tenableforNAND-basedtargets.感谢阅读Ifunsure,sayN.comment"WARNING:mtdand/oryaffsramsupportshouldbeselected"感谢阅读dependsonYAFFS_FS&&!YAFFS_MTD_ENABLED&&!YAFFS_RAM_ENABLED谢谢阅读configYAFFS_USE_OLD_MTDbool"Oldmtdsupport"dependsonYAFFS_FS&&0helpEnablethistousetheoldMTDstuffthatdidnothaveyaffssupport.谢谢阅读Youcanusethistogetaroundcompilationproblems,butthebest感谢阅读thingtodoistoupgradeyourMTDsupport.Youwillgetbetterspeed.精品文档放心下载Ifunsure,sayN.configYAFFS_USE_NANDECCbool"UseECCfunctionsofthegenericMTD-NANDdriver"精品文档放心下载dependsonYAFFS_FSdefaultyhelp.ThisenablestheECCfunctionsofthegenericMTD-NANDdriver.感谢阅读Thiswillnotworkifyouareusingtheoldmtd.感谢阅读NBUseNANDECCdoesnotworkatpresentwithyaffsram.感谢阅读Ifunsure,sayY.configYAFFS_ECC_WRONG_ORDER感谢阅读bool"UsethesameeccbyteorderasStevenHill'snand_ecc.c"精品文档放心下载dependsonYAFFS_FShelpThismakesyaffs_ecc.cusethesameeccbyteorderas感谢阅读StevenHill'snand_ecc.c.Ifnotset,thenyougetthe精品文档放心下载sameeccbyteorderasSmartMedia.精品文档放心下载Ifunsure,sayN.configYAFFS_USE_GENERIC_RW精品文档放心下载bool"UseLinuxfilecachinglayer"谢谢阅读defaultydependsonYAFFS_FShelp.Usegeneric_read/generic_writeforreading/writingfiles.This精品文档放心下载enablestheuseoftheLinuxfilecachinglayer.谢谢阅读Ifyoudisablethis,thencachingisdisabledandfileread/write谢谢阅读isdirect.Ifunsure,sayY.configYAFFS_USE_HEADER_FILE_SIZE谢谢阅读bool"Useobjectheadersize"精品文档放心下载dependsonYAFFS_FShelpWhentheflashisscanned,twofilesizesareconstructed:谢谢阅读Thesizetakenfromtheobjectheaderforthefile.精品文档放心下载Thesizefiguredoutbyscanningthedatachunks.感谢阅读Ifthisoptionisenabled,thentheobjectheadersizeisused,感谢阅读otherwisethescannedsizeisused.谢谢阅读Ifunsure,sayN.configYAFFS_DISABLE_CHUNK_ERASED_CHECK感谢阅读bool"Turnoffdebugchunkerasecheck"感谢阅读.dependsonYAFFS_FSdefaultyhelpEnablingthisturnsoffthetestthatchunksareerasedinflash精品文档放心下载beforewritingtothem.Thisissafe,sincethewriteverification感谢阅读willfail.Suggestenablingthetest(ie.sayN)感谢阅读duringdevelopmenttohelpdebugthings.谢谢阅读Ifunsure,sayY.#configYAFFS_DISABLE_WRITE_VERIFY感谢阅读#bool"Disablewriteverify(DANGEROUS)"谢谢阅读#dependsonYAFFS_FS&&EXPERIMENTAL感谢阅读#help#Iamseverelyreluctanttoprovidethisconfig.Disablingthe感谢阅读#verificationisnotagoodthingtodosinceNANDwritescan感谢阅读#failsilently.Disablingthewriteverificationwillcauseyour精品文档放心下载#teethtorot,ratstoeatyourcornandgiveyousplitends.感谢阅读#Youhavebeenwarned.ie.Don'tuncommentthefollowingline.精品文档放心下载##Ifunsure,sayN.#.configYAFFS_SHORT_NAMES_IN_RAM精品文档放心下载bool"CacheshortnamesinRAM"谢谢阅读dependsonYAFFS_FSdefaultyhelpIfthisconfigisset,thenshortnamesarestoredwiththe感谢阅读yaffs_Object.Thiscostsanextra16bytesofRAMperobject,谢谢阅读butmakeslook-upsfaster.谢谢阅读Ifunsure,sayY.5.在/arch/arm/mach-s3c2410/mach-smdk2410.c找到smdk_default_nand_part结谢谢阅读构,修改nand分区,如下:structmtd_partitionsmdk_default_nand_part[]={谢谢阅读[0]={.name="vivi",.size=0x00020000,.offset=0x00000000,},[1]={.name="param",.size=0x00010000,..offset=0x00020000,},[2]={.name="kernel",.size=0x00100000,.offset=0x00030000,},[3]={.name="root",.size=0x01900000,.offset=0x00130000,},[4]={.name="user",.size=0x025d0000,.offset=0x01a30000,}};注:此分区要结合vivi里面的分区来进行设置。6.配置内核时选中MTD支持:MemoryTechnologyDevices(MTD)--->精品文档放心下载<*>MemoryTechnologyDevice(MTD)support谢谢阅读.MTDpartitioningsupport……UserModulesAndTranslationLayers<*>DirectchardeviceaccesstoMTDdevices<*>CachingblockdeviceaccesstoMTDdevices谢谢阅读……NANDFlashDeviceDrivers---><*>NANDDeviceSupport精品文档放心下载<*>NANDFlashsupportforS3C2410SoC谢谢阅读S3C2410NANDdriverdebug7.配置内核时选中YAFFS支持:Filesystems--->Miscellaneousfilesystems--->感谢阅读<*>YetAnotherFlashFilingSystem(YAFFS)filesystemsupport感谢阅读NANDmtdsupportUseECCfunctionsofthegenericMTD-NANDdriver感谢阅读UseLinuxfilecachinglayer精品文档放心下载.Turnoffdebugchunkerasecheck谢谢阅读CacheshortnamesinRAM8.编译内核并将内核下载到开发板的flash中。精品文档放心下载三、Yaffs文件系统测试:1.内核启动之后,在启动信息里面可以看到如下内容:NANDdevice:ManufacturerID:0xec,ChipID:0x76(SamsungNAND64MiB3,3V精品文档放心下载8-bit)Scanningdeviceforbadblocks谢谢阅读Creating5MTDpartitionson"NAND64MiB3,3V8-bit":精品文档放心下载0x00000000-0x00020000:"vivi"精品文档放心下载0x00020000-0x00030000:"param"谢谢阅读0x00030000-0x00130000:"kernel"精品文档放心下载0x00130000-0x01a30000:"root"感谢阅读0x01a30000-0x04100000:"user"谢谢阅读2.如果在内核里面添加了proc文件系统的支持那么你在proc里面可以看到有关yaffs的信谢谢阅读息~#catproc/filesystemsnodevsysfsnodevrootfsnodevbdev.nodevprocnodevsockfsnodevpipefsnodevfutexfsnodevtmpfsnodeveventpollfsnodevdevptsnodevramfsvfatnodevdevfsnodevnfsyaffsnodevrpc_pipefs3.查看dev目录下相关目录可以看到:~#lsdev/mtd-aldrwxr-xr-x1rootroot0Jan100:00.谢谢阅读drwxr-xr-x1rootroot0Jan100:00..感谢阅读crw-rw-rw-1rootroot90,0Jan100:000感谢阅读cr--r--r--1rootroot90,1Jan100:000ro感谢阅读crw-rw-rw-1rootroot90,2Jan100:001精品文档放心下载cr--r--r--1rootroot90,3Jan100:001ro精品文档放心下载crw-rw-rw-1rootroot90,4Jan100:002谢谢阅读.cr--r--r--1rootroot90,5Jan100:002ro感谢阅读crw-rw-rw-1rootroot90,6Jan100:003谢谢阅读cr--r--r--1rootroot90,7Jan100:003ro感谢阅读crw-rw-rw-1rootroot90,8Jan100:004精品文档放心下载cr--r--r--1rootroot90,9Jan100:004ro精品文档放心下载~#lsdev/mtdblock/-aldrwxr-xr-x1rootroot0Jan100:00.感谢阅读drwxr-xr-x1rootroot0Jan100:00..感谢阅读brw-------1rootroot31,0Jan100:000谢谢阅读brw-------1rootroot31,1Jan100:001感谢阅读brw-------1rootroot31,2Jan100:002感谢阅读brw-------1rootroot31,3Jan100:003感谢阅读brw-------1rootroot31,4Jan100:004精品文档放心下载4.mount、umount建立mount目录#mkdir/mnt/flash0#mkdir/mnt/flash1Mountblockdevice设备感谢阅读#mount–tyaffs/dev/mtdblock/3/mnt/flash0感谢阅读#mount–tyaffs/dev/mtdblock/4/mnt/flash1精品文档放心下载#cp1.txt/mnt/flash0.~#cp2.txt/mnt/flash1查看mount上的目录,可以看到该目录下有刚才拷贝的文件,将其umount后,再次mount谢谢阅读上来可以发现拷贝的文件仍然存在,这时删除该文件然后umount,再次mount后,可以感谢阅读发现拷贝的文件已经被删除,由此可以该分区可以正常读写。感谢阅读5.在flash上建立根文件系统#mount–tyaffs/dev/mtdblock/3/mnt/flash0谢谢阅读#cp(yourrootfs)/mnt/flash0感谢阅读#umount/mnt/flash0重新启动,改变启动参数:param set linux_cmd_line "noinitrd root=/dev/mtdblock3 init=/linuxrc感谢阅读console=ttySAC0"重新启动,开发板就可以从flash启动根文件系统了。谢谢阅读注:这里你得在内核中添加devfs文件系统的支持,否则内核无法找到/dev/mtdblock/3谢谢阅读目录目前flash的文件系统比较多,用的比较多的就是JFFS2文件系统。基于NORflash上的感谢阅读JFFS2文件系统可以说算是比较成熟了,支持NANDflash的JFFS2也已经发布了。源代感谢阅读码可以到上面下载。但是在我的测试过程中,在精品文档放心下载nandflash上挂接的JFFS2文件系统很不稳定,经常有CRC错误产生。特别是进行写操作谢谢阅读的时候,每次复位都会产生CRC错误,可以说支持NANDflash的JFFS2文件系统目前还精品文档放心下载.不成熟。而YAFFS文件系统则是专门针对NANDflash的,源代码可以到精品文档放心下载http://www.aleph1.co.uk/yaffs/index.html上下载。在测试过程中稳定性能比JFFS2文精品文档放心下载件系统要稳定的多,而且mount分区的时间也比JFFS2文件系统少的多。用JFFS2mount谢谢阅读一个2m的文件系统大约需要1s。下面分别介绍在uclinux下面使用JFFS2和YAFFS文件感谢阅读系统。1、JFFS2到上面下载最新的MTD和JFFS2压缩包。压缩包精品文档放心下载里面还有有关的内核补丁和一些MTD的相关工具。主要的补丁就是ilookup-2.4.23.patch,谢谢阅读因为最新的MTD驱动中要用到一个ilookup()函数。打完补丁、更新了MTD驱动和JFFS2精品文档放心下载文件系统之后就开始写自己nandflash驱动了。如果不想把JFFS2作为根文件系统的话,精品文档放心下载还需要修改MTD_BLOCK_MAJOR。驱动可以参考里面的例子,最简单的就是参考spia.c。谢谢阅读写驱动主要工作是定义flash分区结构、定义flash读写地址、写控制flash的**_hwcontrol()精品文档放心下载函数。具体的操作要看所用的nandflash的芯片资料。相对NORflash来说驱动要简单多谢谢阅读了。:)改完之后再配置MemoryTechnologyDevices(MTD)下精品文档放心下载CONFIG_MTD=YCONFIG_MTD_DEBUG=YCONFIG_MTD_DEBUG_VERBOSE=3精品文档放心下载CONFIG_MTD_PARTITIONS=YCONFIG_MTD_CHAR=YCONFIG_MTD_BLOCK=Y.NANDFlashDeviceDrivers下感谢阅读CONFIG_MTD_NAN

温馨提示

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

评论

0/150

提交评论