FAT32是从FAT12、FAT16发展而来,目前主要应用在移动存储设备中,比如SD卡、TF卡。隐藏的 FAT文件系统 现在也有被大量使用在UEFI启动分区中。 为使文章简单易读,下面内容特意隐藏了很多实现细节,关于分区、格式化等相关的内容,可以查看之前的文章: 文件系统(一):存储介质、原理与架构 文件系统(二):分区、格式化数据结构 文件系统(三):嵌入式、计算机系统启动流程与步骤 (一)FAT32 磁盘布局 拿一个FAT32文件系统的存储设备,我们可以看到,它整个存储设备大概可以分为5个部分: 引导、保留扇区、FAT表、目录和文件、备份 。 (1)引导与保留扇区 引导和保留扇区部分,会因为分区方式的不同(MBR与GPT)而不同,同时也会因为存储设备分区个数的不同也会有差异。 下面这个是使用GPT方式将存储设备分为1个分区并格式化为FAT32文件系统格式的数据分布示意图。 (2)备份 在磁盘末尾的备份区域,主要是使用GPT方式分区的时候,会将分区表信息备份到存储设备的最后区域。对于MBR分区方式,并没有这部分。 (3)FAT表与目录项 在FAT32文件系统的使用过程中,FAT表和目录项是其核心部分,将在下面介绍 (二)文件在哪里? 将一个存储设备格式化成FAT32格式文件系统,然后再在上面创建几个文件夹和文件,那么这些文件和文件夹的名字信息是存储在什么位置?文件里面的数据又是存储在哪?要怎样才能找到这些文件? 上面在一个TF卡中创建了test1、test2、test3、test4 四个文件夹和一个0000.media媒体文件。 System Volume Information 目录及其下面的文件是在Windows系统格式化的时候系统写入的系统文件。 目录项 FAT表后面的区域,是根目录的存储区域,目录和文件以及文件中的实际数据都存储在这个一个大的区域。根目录是在该区域最开始的位置。 从根文件所在扇区的数据我们可以看到根目录的目录项信息: 从 WinHex 工具上,根目录所在位置的还有4个“ 新建文件夹 ”项。这个是因为在Windows创建文件夹的时候,开始的名字是“新建文件夹”,后面被我重命名成了test1~4 目录项分为 长文件名 和 短文件名 如果一个文件它的名字大于11个字节,那它就至少有两个目录项,一个短文件名项和一个长文件名项。 文件名长度小于等于11个字节的话,就只有一个短文件名项。短文件名目录项长度为32个字节,各字节的定义如下: 根据上面定义可以对根目录下的目录项进行解析: 以test2目录项举例,我们可以看到: 文件名为test2 (短文件名) 文件属性为 10 (子目录 ) 这里时间需要转换,2字节用不同的位表示年月日和时分秒 起始簇号为 07 号 如果目录项是以 E5 开头,那表示该项是无效的或是已经删除了的目录项,比如上面的四个"新建文件夹"目录项 通过目录项,我们可以知道存储设备上都有哪些文件和目录,相应的子目录也是一样的实现,只不过子目录下面的目录项是在子目录所在的簇中记录。 (三)文件磁盘空间分配 在FAT32文件系统中,它是以簇为单位进行空间分配和管理。一般一个簇的大小为4KB(下面均以4KB做参考)。 一个文件或是一个目录,它是通过目录项知道它在存储设备上存放的的开始位置,也就是开始簇号,而簇号信息,是存储在FAT表上, 一个FAT32文件系统有两个FAT表,一个正常使用,另外一个为备份FAT表 通过分区上的DBR和FSINFO信息可以知道FAT表的大小和所在位置等信息。 FAT32 是以32位(4Byte)来定义一个FAT表项,也就是一个簇的状态,下表是FAT表项中值的含义: 对于FAT表,第0号簇是固定的0x0FFFFFF8,第1号簇项0xFFFFFFFF是被系统使用 第3号簇是根目录的开始簇,如果其值是0x0FFFFFFF,表示根目录只占用一个簇的空间,也就是4KB大小空间,如果其值是0x00000002~0x0FFFFFFE,表示根目录的下一个簇号,直到出现文件结束簇0x0FFFFFFF,也就是根目录大于4KB的大小。 下面是对FAT表现的一个解析。 从上面可以看出: 如果文件或是目录小于4K(一个簇),那它所占用的空间就是目录项中起始簇号所分配的空间,该簇号的值为结束簇号的值(0x0FFFFFFF) 如果一个文件大于4K(一个簇),目录项中的起始簇号所在位置的值,就是下一个位置存储的簇号值,比如0000.media 文件,它的起始簇号是10,第10簇号(0x0000000B)->第11簇号(0x0000000C)->......第241簇号(0x0x00000F2)->第242簇号(0x0FFFFFFF 结束簇号) 上面这个0000.media文件是以连续的方式存储在磁盘中,当磁盘满了或是使用久了之后,会存在磁盘碎片,有可能就不是连续的空间了。 (四)实现原理 我们从文件的创建、数据写入、文件删除等操作流程看文件系统的基本实现原理 (1)文件创建 创建文件或是目录的时候,会先在当前目录所在位置的目录项中添加一个目录项 目录项会记录文件的起始簇号,创建、修改时间,文件属性等信息 (2)文件增删数据 如果起始簇空间写满了,系统会查找一个空闲簇,数据将继续写入到该空闲簇中,FAT表中该空闲簇会被标记已经被使用,同时,该文件的结束簇号也会往后移动一个簇。 更新该目录项中的修改时间、文件大小等信息 删除或是修改文件里面的数据,就是一个反向的过程 (3)文件数据读取 通过目录项,找需要读取文件所在的开始簇位置 如果文件大于一个簇,开始簇位置的值为下一个簇的位置,可以顺着这个簇链一直查找,直到结束簇出现。 (4)文件删除 文件删除的时候,根目录中该目录项的信息并不会被删除,而是将该目录项标记为删除状态 FAT表中该文件所占用的簇号,会被标记为0,表示该簇为未使用的簇。 该文件所在簇号所对应扇区的实际文件数据不会被擦除,文件里面的数据还是存储在删除上。 文件删除,实际上也就是将该文件在FAT表中的簇信息标记为可使用,然后将目录项标记为已删除,实际数据不会做删除处理 如果要恢复被删除的文件,可以根据目录项中的信息进行恢复,前提是不要再创建新文件和写入新数据,因为新的数据容易将原来文件所在扇区的数据覆盖或是擦除。 (5)基本原理 FAT32文件系统的基本原理,是通过目录项来管理磁盘的文件目录结构,然后通过FAT表来管理磁盘文件所使用的簇(扇区)空间。 FAT32 文件系统的FAT表是通过单向链式的方法来管理扇区,这种方式在小文件和小容量的储存设备上使用比较方便,但不适合于大文件和大容量的存储设备。 目前大于32GB的SDXC卡,SD协会已采用 exFAT 作为默认的文件系统。 (五)优缺点 (1)优点 FAT32 文件系统现在还在被大量使用,其主要的优势在于: 兼容性强和实现简单 兼容性强 : 它可以同时支持Windows、Linux、Mac OS 三个操作系统,同时因为它的历史悠久,很早就已经被广泛使用,所以很多老旧电脑系统和设备都可以支持。 实现简单 : 它的设计相对简单、易于实现和维护,特别是在系统资源紧张的嵌入式设备中。 (2)缺点 它的缺点主要有: 不适合大文件、磁盘碎片化、安全性较差 不适合大文件 : 目录项中使用4个字节表示文件大小,其最大表示的值为4GB,所以FAT32对于单个文件的最大大小限制为4GB。 安全性较差 : 相比一些现代文件系统(如NTFS、exFAT等),FAT32的安全性较差。它缺乏对文件和文件夹的访问控制、加密、日志记录等高级功能,因此不适合用于存储敏感数据或需要更高安全性的场景。 (3)磁盘碎片化 磁盘碎片化这里描述详细一些,因为它会影响到文件系统的性能。 静态分配簇 : FAT32使用固定大小的簇(cluster)来管理存储空间。每个文件都被分配到一个或多个簇来存储,这些簇在存储设备上连续地排列。当文件大小超过一个簇的容量时,系统会分配额外的簇给文件。但是,如果在磁盘上没有足够的连续空闲簇来容纳整个文件,文件就会被分割成多个片段并存储在不同的地方,导致碎片化。 文件删除和大小改变 : FAT32文件系统的碎片化还会因为文件的删除和大小的改变而产生。当文件被删除时,它占用的簇会被标记为空闲,可以被其他文件使用。如果其他文件需要的空间无法与原文件的簇连续,新文件就会分配到磁盘上的不同位置,造成碎片化。同样地,当文件的大小发生改变时,如果新的大小需要的簇数超过了原文件所占用的连续簇数,文件也会发生碎片化。 碎片化的影响 : 碎片化会影响文件的读取和写入性能。当文件被分割成多个片段时,系统需要花费更多的时间来定位和读取这些片段,从而降低了文件的读取速度。另外,由于文件存储不连续,存储设备上可能会出现许多小的空闲碎片,导致存储空间的浪费。 结尾 上面内容是以比较概况的方式来介绍FAT32文件系统的实现原理和它的优缺点,至于FAT32文件系统的详细实现细节,可以通过官方文档进行了解(晦涩难懂),也可以找张TF卡,通过winhex等工具,自己动手查看它的实现细节。 ---------------------------End--------------------------- 如需获取更多内容 请关注 liwen01 公众号
大概6-7年前,在网上看到过一篇用STM32F1的DMA控制GPIO输出高速数字波形的帖子。觉得很有意思,就自己试了试:控制GPIO输出波形翻转的速度最高只能达到3-4MHz,且容易受到STM32F1的APB2总线其他设备读写的影响,输出的方波不稳定。由于问题较多,对高速实时性提升不大,感觉基本不实用,就没有再进一步研究。 前几天在研究STM32F4和STM32F1的区别时,发现STM32F4进行了两项升级:1、把GPIO连接从APB2总线改到AHB总线上,极大的改善了GPIO输入、输出的实时性和时序控制能力。2、增加DMA stream的概念(参见拙作 https://www.cnblogs.com/helesheng/p/18167026 ),使得DMA传输请求的来源更明确。 DMA控制器的上述升级,使得STM32F1上比较“鸡肋”的DMA高速并行同步传输能力得到了较大提升 ,具备了一定的实用性。我尝试用STM32F407VE的DMA2在TIM1的触发配合下,实现了对并行接口的流水线型ADC的控制和读取。理论读取速度可达40MSPS以上,实测读取速度可超过AD9200E的理论上限——20MSPS。设计思路、程序和电路如下,供大家参考和指正。 以下原创内容欢迎网友转载,但请注明出处: https://www.cnblogs.com/helesheng 一、DMA控制高速同步并行数据传输的原理分析 本文基于DMA的GPIO高速并行读写程序,主要利用了STM32F4系列DMA的以下关键特性: 1)STM32的DMA传输可分为外设和内存之间,以及内存之间两种传输模式。这两种模式的最重要区别是: 外设和内存之前的DMA传输必须由其他外部 请求 信号触发;而内存和内存之间的DMA传输则不会等待其他触发,它会在上一次传输进行完之后自动进行下一次传输 。 在STM32的嵌入式系统中,除去少数只追求传输带宽的纯数据传输任务以外,大部分与硬件相关的DMA传输,还要要求在恰当的时刻完成传输。以本文要完成的高速A/D数据读取为例,读写数据的时刻必须收到采样间隔的严格控制。也就要求由定时器TIM来实现采样间隔的定时,即 由TIM产生DMA传输的请求信号,而数据则通过DMA在GPIO 数据寄存器 和内存之间进行传输 。 2)外设和内存之间的DMA传输的请求信号,可以是本次DMA传输的源或目的的外设,也可以是其他外设。 STM32F4的DMA传输请求信号由DMA的流(stream)和请求信号(或称通道channel)共同决定;但传输源和目的外设种类却由源和目的地址决定 。 二者不能混为一谈。 3)STM32F4的 两个DMA控制器的两个端口被指定为特定的数据源 。具体连接关系如下图所示。以GPIO为例,STM32F4把它连接到AHB1总线上,由下图可知连接到AHB1外设的只有蓝色和黑色两种颜色的线,也就意味着,左侧的两个DMA控制器中只有连接了蓝色和黑色的 DMA2 可以实现与GPIO之间的DMA传输。 图1 STM32F4系列两个DMA控制器端口(源和目标)连接的外设/存储器种类 通过查询STM32F4的数据手册中的DMA请求信号表可知,可用于请求DMA2的定时器只有TIM1和TIM8两个高级定时器。我选择了TIM1的更新事件TIM1_UP来请求DMA传输。 图2 STMF4系列DMA2控制器的外设传输请求表 另外,控制高速ADC还要求单次DMA传输耗时要小于采样间隔,而 STM32F4把GPIO连接到AHB1总线的意义也就在于此——相比之前将GPIO连接到APB2总线的STM32F1系列,STM32F4将能够更快速的对GPIO进行读写 ,从而提高与所控制ADC的数据读取速率。 最后,流水线型ADC还需要一个采样同步时钟;由于数据读取也是在该时钟的同步下进行,自然只能由TIM1时基部分同时产生该时钟。一种合理的解决办法是用TIM1的输出比较(OC)功能电路来产生。这也意味着该时钟只能由TIM1的某个通道(CHx)产生,从而只能在某些管脚上输出,这一点必须在硬件设计时加以注意。 二、高速并行接口ADC读取的程序和电路设计 1、硬件设计 下图是我采用的ADI公司的标称转换速率为20MSPS的流水线型A/D转换器——AD9200E(10bits分辨率)的工作时序图。 图3 AD9200的读取时序 可以发现,数据的更新发生在 上升沿 后25ns左右。 如果输出比较OC电路采用时基计数的前段输出高电平,比较翻转的后输出低电平的模式,就会使得输出PWM信号的上升沿发生在TIM1更新时。而如前所述STM32F4的DMA2数据传输则发生在TIM1更新事件后,这就有由于高速数字电路的竞争与冒险造成读取时序不收敛。 我曾在某论坛看到过有人对AD9226做类似尝试,仅在16MSPS以上时就出现采样点读取错误的问题(https://blog.csdn.net/cusichidouren/article/details/126002742),我猜测就是由于这个原因。 合理的解决方案其实也不复杂:对OC电路输出的PWM信号反相,使其在下降沿时触发DMA2传输请求。幸运的是STM32的OC输出支持负逻辑的PWM输出,不需要附加进一步的门电路。具体配置代码请参见软件设计部分。 具体GPIO选择方面,我用了PE0~16号端口来实现对AD9200的控制和读取。其中,PE口中PE11管脚可以配置为TIM1的通道2(CH2),可以作为AD9200的转换时钟(INPUT CLOCK)。而AD9200的10根数据线则用PE0~9负责读取,低位对齐的做法也有利于后续的数据读取和整理。AD9200的钳位控制(CLAMP)、溢出指示(OTR)、低功耗待机(STBY)等管脚则连接到PE口的其他管脚。原理图太简单,这里就不贴出来了,放一张实物图。 注意:AD9200的模拟驱动应使用一个高压摆率的宽带运放,我使用了低成本的AD8052。 图4 实验系统实物图 2、软件设计 正如本文前面“原理分析”介绍的,DMA传输的通道、流、数据源/目标、传输请求信号如下图所示。 图5 DMA工作原理示意图 3、遇到的几个“坑” 尽管STM32F4是非常成熟的MCU产品线,但本文所述的“基于DMA的高速并行GPIO读写”并不是常见的功能,因此在调试过程中我还是遇到并克服了一些问题。个人觉得是芯片本身以及标准外设库的一些小问题造成的,但也可能是由于我才疏学浅、考虑不周的原因。罗列与此,供大家参考和指正。 1)官方提供的标准外设库高速外部晶振频率不匹配问题 我使用了ST官方提供的标准外设库作为开发平台,其中配置的高速外部晶振HSE的频率(HSE_VALUE)为25MHz。而我实际使用的晶振为8MHz,这除了导致UART通信的波特率不准之外,更重要的是还会导致TIM1输出比较OC电路输出的时钟频率不对。在固件库stm32f4xx.h中搜索宏“HSE_VALUE”,将其改为8000000即可解决问题。 2)PA8管脚复用为TIM1_CH1输出比较功能时无输出的问题 我最初进行硬件设计时,曾想用管脚PA8复用的TIM1_CH1功能输出AD9200所需的转换时钟。但折腾了很长时间都无法让PA8管脚输出所需时钟(PWM)信号,在网上搜索后发现问题是STM32芯片的一个“顽疾”( www.openedv.com/posts/list/49738.htm )——只要使能复用在PA8、PA8、PA10等管脚上的USART1功能,就会导致PA8上的TIM1_CH1无法输出PWM信号。修补这个BUG也不困难:我改成使用TIM1_CH2(在PE11管脚上)输出PWM波,就很好的解决了这个问题。 三、测试结果 下图所示的是VOFA+软件显示的采集信号 图6 AD9200采集的信号波形(采样率为21MS,输入正弦信号为1MHz,采样长度为512点) 相关问题分析如下: 四、DMA控制高速并行ADC/DAC的弊端和问题 1、采样触发信号问题 及其解决办法 1) 用STM32这样的MCU代替FPGA来控制高速ADC,最大的问题在于MCU软件的实时性远远赶不上硬件控制的FPGA。例如,前面提供的主程序代码中,用检测按键的方式触发DMA实现采样。显然无论是检测按键的程序的时间精度还是程序调用外设库启动DMA传输的时间精度都远远低于ADC采样的100ns数量级的时间精度。致使采样触发信号的实时性只能满足对“时间平稳信号”分析的需要,无法达到对非平稳信号进行时域分析的需求。 2)另外,从图6中可以发现信号刚开始的一段信号是混乱的,造成混乱的原因有二: 其一:在高速传输条件下, 在传输刚开始的一段时间 S TM32的DMA控制器无法及时的响应传输请求 ,从而造成DMA只能在TIM1的采样请求已经发出一段时间后才读取ADC的输出数据,结果自然不正确。 其二:流水线型ADC的数据传输和采样值之间存在延迟。从图3给出的时序图也可以发现,当前读取的数据是四个时钟之前“潜伏”在ADC的流水线中的,从而造成了缓冲区中开始一段的信号错误。 以上两个原因,都可以通过丢掉缓冲器中开始的一段数据的方法掩盖,但这无疑也是对采样触发信号的实时性的进一步降低。 2、TIM1输出采样时钟抖动问题及其解决办法 下图是用20G采样率的示波器DSOX6004A采集到的TIM1_CH2(PE11)输出的采样时钟信号。 图7 TIM1的PWM功能产生的采样时钟的孔径抖动(触发后100us处) 为了测试采样时钟信号的孔径抖动情况,我将观察窗对准采样触发后100us的地方(触发-采样延迟如图中红色圈内数据所示),可以发现该处时钟上升沿的抖动达到了5ns左右(图中示波器横轴每个为5ns,如图中黄色圈所示)。这表明TIM1的OC模块产生的采样时钟孔径抖动品质较差,大大降低了采样信号的信噪比。 为解决这个问题,可以使用片外模拟锁相环PLL输出的时钟信号作为ADC的采样时钟。至于STM32F407的TIM1_CH2则由输出比较模式(OC)变为输入捕获模式(IC),由外部锁相环产生的时钟信号作为TIM1_CH2的捕获(IC)对象。 下图是我使用单独的模拟锁相环PLL芯片Si5351产生相同的21MHz信号,同样在采样触发后100us的地方观察时钟抖动情况。可以明显的看到锁相环芯片产生的时钟的孔径抖动性能明显由于定时器输出比较模式输出的时钟。 图8 模拟锁相环芯片Si5351产生的采样时钟的孔径抖动(触发后100us处) 3、同步传输速率被限制在10MSPS左右 从本质上讲,DMA是与CPU内核共享片上的总线资源的,当使用DMA高速传输并行数据时必然挤占CPU读取指令和数据的总线时间。如果DMA传输的是SRAM中的数据,某一笔传输由于总线被占用而延期并不会影响传输整体的正确性。但对于ADC和DAC这样的高速数据传输,某一笔数据的延迟就有可能造成采样的错误。 经过测试,我整体的感觉是: 即使把DMA传输数据的优先级设为非常高(DMA_Priority_VeryHigh),且在采集期间不执行中断服务(ISR)等可能打断DMA的程序,当把DMA同步传输速率提升到10MSPS以上就很难保证每一笔传输的可靠实时性了 。当然在极限情况下,同步传输速率是可以达到40MSPS的,但不建议大家在产品中使用。 4、 单端数字信号,抗干扰能力弱于差分数据线 当数字信号在PCB上传输的速率达到10MSPS以上时,STM32中使用的单端3.3V CMOS在很多情况下就有可能出现传输错误,一般的解决方案是使用LVDS等差分传输标准。但STM32F4系列中没有类似硬件配置,导致同步传输速率达到10MSPS以上时系统的抗干扰能力和传输正确率都会有所下降。
淘宝最近在App Store上线了Vision Pro版本,用户可以通过Vision Pro将商品投影到现实中查看,并与其他商品对比,真正实现了足不出户就能体验“真实”的购物。 官方在介绍中写道,使用Vision Pro逛淘宝可以获得3D立体的购物体验,Vision Pro在识别到平面之后,商品会吸附在平面上,同时有真实世界的光影效果。用户可以自行放大缩小查看商品细节,也可以选择1:1比例模拟物品在真实世界的大小。 淘宝展示的App界面可以了解到,Vision Pro版淘宝可以同时展示多个商品,方便用户进行比较,还可以直观地看到物品的长宽高数据。同时,该应用还支持搜索物品并识别物品的形状和大小。
在家也可实现烤鱼自由香喷喷的烤鱼看起来是特别诱人的。去饭店吃一盆烤鱼,虽然价格不是特别贵,但终归没有在家里面做方便。而且自己在家里面做得既干净又卫生,吃起来也比较放心,今天教大家做一个简单的家庭版烤鱼。先去市场上买鱼,顺便带回来配菜。鲤鱼或者草鱼,清江鱼都可以。配菜需要清笋,菜花,木耳,豆皮儿,黄豆芽,香芹,土豆,也可以根据自己的喜好加入莲藕等。先把鱼清洗干净,尤其是于表面的黏液,一定要刮干净。在市场上让商贩宰鱼的时候,可以从背部拉开腹部连接在一起,这样回家之后比较好操作。洗干净的鱼背部拉上滑道,擦干水分派上适量的干淀粉。把所有的配菜改造成自己喜欢的形状。锅里面油热之后把土豆条放进去,炸到断生捞出来备用。所有的青菜下锅炒熟,不用炒太烂,七八分熟就可以。锅里面多烧点油。油温7成热,看着表面冒青烟,把鱼放进去,小火慢炸。炸到两面金黄鱼皮的颜色,看起来有些发焦。露出来等油温再次升高放进去复炸一遍,这样炸出来的鱼吃起来口感更加香脆。炸好的鱼放在炒熟的青菜上面。锅里面再烧上一点油,放入葱段姜片炒香,再加入适量豆瓣酱炒出红油,加入适量清水煮开。加入适量盐,白糖,蚝油,味极鲜调味。然后用漏网把里面的料渣捞干净,这样做出来的鱼看起来比较清爽。把煮好的汤料倒在鱼身上面再撒上适量葱花,香菜段儿。提前炸好的花生米和大蒜粒也撒在上面,再撒上点干辣椒,锅里面多烧点油,放入一大把麻椒炸香,然后趁热把油倒在鱼身上面。发出干辣椒的香味,如果喜欢吃辣一些的,也可以把干辣椒放在油锅里面炸一下。就是这么简单,家庭版的烤鱼就做好了。
我热爱口袋妖怪TCG套牌的主题。1月份的Paldean Fates扩展是我迄今为止最喜欢的扩展之一,这不仅仅是因为我在第一包中就抽到了闪光的喷火龙。增加的抽卡率和对稀有度类型的更改使得寻找闪光口袋妖怪的乐趣与以往的隐藏命运时代一样有趣,甚至更胜一筹。 所以,我本来对这个月的临时力量(Temporal Forces)并没有抱太大期望,因为历史上闪光扩展的后续(如战斗风格、宇宙大爆炸、深红入侵)通常有点乏味。但我对这个新扩展有多少角色和个性感到惊喜。它不仅延续了《Paradox Rift》中引入的古代和未来机制,还在十多年后首次重新引入了ACE SPEC卡。临时力量不甘于处于Paldean Fates的阴影之下,我不得不对此感到印象深刻。 ACE SPEC卡是在黑白时代的尾声首次引入的,它们是一种改进的物品卡,非常强大,你只能在整个套牌中拥有一张ACE SPEC卡。临时力量保持了这一规则 - 这对我们所有人的钱包来说都是个好消息 - 不过加入了一个新的变化:现在还有ACE SPEC口袋妖怪工具卡和特殊能量卡。 我对竞技场景不够了解,无法推测哪些卡牌会产生最大影响 - 尽管Master Ball可以搜索你的套牌中任何你想要的口袋妖怪,似乎是一个不错的选择 - 但我肯定对这样的设计感到欣赏。这些全荧光粉色的卡牌从上到下都有棱镜银箔图案,重叠在更多的银箔艺术盒上。然后左右两侧有明亮的蓝色装饰,用于识别每张卡 - 就好像不够明显一样 - 是ACE SPEC。我总是对口袋妖怪卡片上的艺术感到印象深刻,尤其是特别插画稀有卡,但这是我第一次被一张物品卡深深吸引。我想收集整套七张卡,将它们(基本上)放在一页夹子上。九张将更好。 说到特别插画稀有卡,这套牌中有一张Chatot卡,是按照电线上的力量排列的,可以读出口袋妖怪中心的旋律。这一定是有史以来最有创意的口袋妖怪卡之一,但这套牌中还有一些其他令人印象深刻的卡。六张Paradox口袋妖怪SIRs - 三只传说之兽和三只正义之剑的变种 - 是完美的收藏品,但我更喜欢Deerling和Sawsbuck,它们被塑造成代表季节变化的五彩缤纷的景观。这让我想起了《新口袋妖怪快照》中的Elsewhere Forest路线,任何能让我想起《新口袋妖怪快照》的东西都是一等一的。 至于我的抽卡率,我没有任何抱怨。在一个精英训练师盒子和预售套装(12包)中,我得到了八张好牌:土鳖龟ex、Wugtrio ex、全艺术烈焰猫咪ex、全艺术铁叶ex、全艺术Bianca的奉献、插画稀有卡Metagross、插画稀有卡Meltan,以及一张ACE SPEC,最大腰带。虽然还没有特别插画稀有卡、闪光卡或金卡,但三张中有两张好牌,这已经值得高兴了。我知道有些人对增加的抽卡率对二手市场的影响感到沮丧,但这只是让我更热爱打开卡包,我感到非常高兴。 让我惊叹不已的是,口袋妖怪公司在这些年来不断寻找保持TCG的新鲜方式,这是一个事实的证明,即使像临时力量这样的扩展也可以成为这个已经有25年历史的游戏中的一个时刻。即使作为一个不是那么喜欢《猩红与紫罗兰》中Paradox口袋妖怪的人,TCG已经将视频游戏的主题带入,并找到了一种可以完美匹配新机制和设计的方式。临时力量提醒我们,交换卡牌游戏真的是享受口袋妖怪的最佳方式。 Next: It Sucks That Our Expectations For Pokemon Are So Low
Kasedo Games和开发商SomaSim公布了《工业崛起2(Rise of Industry 2)》,这是2019年商业管理模拟游戏《工业崛起》的正统续作。新作的发布预告片非常有趣,它采用了模仿80年代电视广告的形式,由一个名叫弗兰克·威尔逊的“成功商人”来完成演示。 这款游戏在充满活力的 20 世纪 80 年代美国尽情探索竞争激烈的工业格局!制定战略性制造决策,优化生产链,获取技术,并通过关键联系人拓展你的全球业务网络。机会正等待着那些足够精明的人去把握! 视频截图:
大熊猫作为中国的标志性动物,凭借着呆萌的外形赢得了许多人的喜爱,不过你知道么,除了卖萌之外,大熊猫原来还有一项神奇的特异功能。牙齿能够实现自我修复的动物牙齿可以进行自我修复的动物是熊猫。熊猫牙釉质界面中含有一种天然的有机质,在水合的条件下会发生溶胀、进而发生玻璃化转变温度降低的转变现象,就可以使牙齿实现牙釉质自修复。熊猫是我国的一级保护动物,属于食肉目熊科,体色为黑白两色,形体身形圆滚,使用内八字的行走方式,牙齿较为锋利。大熊猫善于爬树,也爱嬉戏。爬树的行为一般是临近求婚期,或逃避危险,或彼此相遇时弱者借以回避强者的一种方式。大熊猫每天除去一半进食的时间,剩下的一半时间便是在睡梦中度过。
掌握致命一击技巧!赛尔号手游新玩法大揭秘! 赛尔号手游最近推出了一个新的挑战活动——挑战盖亚。不少玩家可能还不清楚如何参与这一活动,因此今天我们来分享一下该活动的攻略。 游戏规则: 在游戏中,每个精灵都拥有一个“致命一击”的特殊效果。击败敌方后,玩家有一定的概率获得对手的携带属性技能以及装备上的强化道具,并有机会触发额外的暴击或爆伤加成,使自身的伤害更高。此外,击杀盖亚还可以累积连击次数,玩家每次成功攻击对手可以提升自己的连击次数,最多累积6次。每次提升连击次数后,玩家可获得对应的伤害值。当达到连击上限后,该精灵将不再受到连击伤害。同时,玩家每次被敌人连击,都会降低对方连击等级。 游戏共分为三个难度,玩家可以自由选择难度。击败敌方可以获得一定数量的积分;击败其他玩家则能获得更多的积分,当连击达到5次时,将获得最高连击奖励。同时,游戏设定了连击数上限,玩家达到连击最大次数的总和后可以领取额外奖励。当连击超过5次时,将无法再获取积分。 挑战盖亚必备!如何实现赛尔号手游致命一击连击? 在《赛尔号》手游中,挑战盖亚是获取精灵的最快捷方法之一。那么挑战盖亚必备!如何实现致命一击连击?一起来看看吧~ 《赛尔号》手游挑战盖亚必备攻略: 当你成功挑战“盖亚”时,你将得到一张神秘宝藏卡片。打开宝藏卡片你就可以获得1只“盖亚”,或者是“盖亚之魂”(该道具可用于合成精灵盖娅)。此外,你还可以对敌方精灵施展强力攻击。在挑战“盖亚”的时候,你需要注意的是要把握好时间,当你的血量低于50%以下的时候,你将会获得“盖亚徽章”。如果你的血量低于50%以下的话,那么你就需要在5秒内将其杀死(该技能有冷却)并且获得5点能量值。如果是50%以下的话,那么你需要在10秒内将其击败。
随着中国经济的快速发展,越来越多的人开始关注投资理财,寻求实现财富增值的途径。在这个过程中,证券公司作为投资者的重要合作伙伴,扮演着举足轻重的角色。近年来,中投证券凭借其专业的投资顾问团队、丰富的产品线和优质的服务,赢得了广大投资者的信任和支持。为了更好地满足投资者的需求,中投证券推出了加强版服务,旨在进一步提升服务品质,助力投资者实现财富增值。
梦幻西游的飞升系统是玩家在游戏中达到一定等级后,通过完成一系列任务和挑战来提升自己的实力和等级的系统。以下是关于梦幻西游飞升系统的详细介绍: 一、飞升系统的作用 提升玩家等级和实力:通过飞升,玩家的角色等级将得到提升,从而获得更高的属性加成和技能伤害。 解锁更高级的技能和装备:飞升后,玩家可以学习更高级的技能,并获得更强大的装备,从而提升战斗能力。 开启更多游戏内容和挑战:飞升系统将开启更多的游戏场景、任务和挑战,为玩家提供更多的游戏乐趣。 二、飞升系统的操作步骤 达到飞升等级要求:在梦幻西游中,玩家需要先达到一定的等级要求才能进行飞升。通常情况下,飞升等级要求会在游戏中给予提示。 完成飞升任务:飞升任务是玩家进行飞升的主要内容。玩家需要按照任务提示,完成一系列的任务目标,如寻找特定物品、击败特定怪物等。 挑战飞升副本:飞升副本是玩家在飞升过程中需要挑战的关卡。玩家需要组队或单人挑战飞升副本,击败副本中的怪物和boss,完成副本任务并获得奖励。 获得飞升技能和装备:在飞升过程中,玩家可以获得更高级的技能和装备。这些技能和装备通常可以通过完成飞升任务、击败副本boss或者通过游戏商城购买获得。 三、飞升系统注意事项 提前做好准备:在进行飞升之前,玩家需要提前做好准备工作,包括准备足够的药品和装备,以及与其他玩家进行交流和配合。 多方面提升实力:飞升系统不仅仅是提升等级,还需要玩家在技能、装备、宠物等方面进行全面提升。 多与其他玩家交流:在梦幻西游中,与其他玩家的交流和合作是非常重要的。玩家可以通过加入公会、参加活动、与其他玩家组队等方式来与其他玩家交流,获取更多的游戏经验和技巧。 小编认为梦幻西游的飞升系统是一个重要的游戏内容,它为玩家提供了一个提升自己的实力和等级的平台。通过飞升,玩家可以解锁更高级的技能和装备,挑战更多的游戏内容和难度,从而获得更多的游戏乐趣和成就感。
网际快车(FlashGet)是一款非常实用的下载工具,它能够帮助用户快速、高效地下载网络资源,无论是大型软件、电影、音乐,还是各种文档,都可以通过网际快车轻松下载。下面将详细介绍网际快车的使用方法。 1、下载安装:我们需要在网际快车的官方网站上下载最新版本的网际快车软件,然后按照提示进行安装,安装完成后,我们就可以开始使用网际快车了。 2、添加下载任务:打开网际快车,点击左上角的“新建”按钮,然后在弹出的窗口中输入要下载的资源的URL地址,点击“确定”按钮,就可以将这个下载任务添加到网际快车中了。 3、设置下载参数:在添加下载任务后,我们可以对下载参数进行设置,点击右下角的“设置”按钮,然后在弹出的窗口中,我们可以设置下载线程数、下载速度限制、下载路径等参数,这些参数的设置可以帮助我们更好地控制下载过程,提高下载效率。 4、开始下载:设置好下载参数后,点击右下角的“开始”按钮,就可以开始下载了,在下载过程中,我们可以在网际快车的界面上看到下载进度和速度等信息。 5、管理下载任务:在网际快车的界面上,我们可以看到所有的下载任务,我们可以通过点击任务右侧的“暂停”、“继续”、“删除”等按钮,来对下载任务进行管理,如果我们想要查看某个任务的详细信息,只需要双击该任务即可。 6、自动分类:网际快车还具有自动分类的功能,当我们下载一个文件时,网际快车会自动将这个文件分类到相应的文件夹中,这样我们就可以更方便地管理和查找我们下载的文件了。 7、计划下载:除了以上功能外,网际快车还支持计划下载,我们可以在添加下载任务时,设置一个下载计划,让网际快车在指定的时间自动开始下载。 网际快车是一款非常实用的下载工具,它的功能强大,操作简单,非常适合经常需要下载网络资源的用户使用。通过以上的介绍,相信大家已经掌握了网际快车的使用方法,希望大家在使用网际快车的过程中,能够享受到它带来的便利。
英特尔宣布已实现基于业界领先的半导体封装解决方案的大规模生产,其中包括英特尔突破性的3D封装技术Foveros。这一技术为多种芯片的组合提供了灵活的选择,带来更佳的功耗、性能和成本优化。 这一技术是在英特尔最新完成升级的美国新墨西哥州Fab 9投产的。英特尔公司执行副总裁兼首席全球运营官Keyvan Esfarjani表示:“先进封装技术让英特尔脱颖而出,帮助我们的客户在芯片产品的性能、尺寸,以及设计应用的灵活性方面获得竞争优势。” 这一里程碑式的进展还将推动英特尔下一阶段的先进封装技术创新。随着整个半导体行业进入在单个封装中集成多个“芯粒”(chiplets)的异构时代,英特尔的Foveros和EMIB(嵌入式多芯片互连桥接)等先进封装技术提供了速度更快、成本更低的路径,以实现在单个封装中集成一万亿个晶体管,并在2030年后继续推进摩尔定律。 英特尔的3D先进封装技术Foveros是业界领先的解决方案,在处理器的制造过程中,能够以垂直而非水平方式堆叠计算模块。此外,Foveros让英特尔及其代工客户能够集成不同的计算芯片,优化成本和能效。 英特尔将继续致力于推进技术创新,扩大业务规模,满足不断增长的半导体需求。
苦瓜化瓜多发生在结果初期,主要是由于植株的营养生长不良造成的。今天我们为大家具体讲讲苦瓜化瓜是什么原因,从而探讨如何加强苦瓜管理实现高产,一起来看看吧! 1、温度不当引起化瓜 苦瓜在结瓜时期对于温度要求较高,白天的温度不宜高于32度或低于20度,夜间温度也不宜低于18度,否则不利养分的累积,从而造成它营养不良而化瓜。 2、二氧化碳浓度过低 现如今为了增加产量,方便管理,很多种植户都会采用大棚栽培技术,而苦瓜对于二氧化碳较为敏感,一旦棚室内的二氧化碳浓度过低,就会导致其出现化瓜现象。 3、管理不当引起化瓜 在种植时栽培密度过大,造成田间郁闭,植株间的通风透光性较差,不利于植株的光合作用,同化物较少,易出现化瓜现象。 另外,对于肥力管理不当,导致植株缺水缺肥,会在缺乏某些必须的微量元素是,也会影响到植株正常的光合作用,从而出现化瓜。 4、生长过旺引起化瓜 在偏施氮肥、温度过高、水分过盛的因素下,会导致苦瓜的茎蔓生长粗壮,叶片肥厚,植株长势过旺,而瓜条生长缓慢,花果因为得不到同化物而逐渐化掉。 5、病虫害引起化瓜 多种病害都会直接危害到叶片生长,导致叶片枯萎、坏死,严重者导致植株干枯,无法正常的进行光合作用而化瓜。 另外,蚜虫、白粉虱等害虫也会吸食叶片的汁液,它们的排泄物也会污染叶片,破坏叶片的光合作用,导致幼瓜营养不足而化瓜。
鸡蛋是很多平常食材中最不可或缺的,营养丰富价格亲民,每人每天吃一个鸡蛋,才能保证每天的蛋白质摄入。鸡蛋最简单的做法恐怕就是炖蛋了,材料随手可得,做法也简单,不过越简单的东西,想要做好却很难。很多人炖蛋都会一层蛋一层水,不够细嫩,那么炖蛋要怎么做,才能细滑呢?1、先把蛋敲到碗里调匀,加入温白开在拌匀。2、蒸锅里的水必须沸了之后,再把炖蛋的碗放到蒸锅里边,大火蒸两分钟,小火12分钟。
随着新能源汽车的推广,越来越多的车主选择纯电动汽车。那么纯电动汽车如何实现取暖功能呢? 其实,纯电动汽车是通过辅助加热的方式进行取暖的,常见的有电加热管、PTC加热、热泵加热等等,这与吹风机加热、开水加热的原理差不多,空气加热之后直接吹到驾驶室里面,达到取暖的效果。 而纯电动汽车的制冷就与燃油汽车的制冷系统差不多,差别在于燃油汽车通过发动机驱动压缩机,而纯电动汽车通过电动机来驱动压缩机,这个电动机是相对独立的,由驱动汽车的电机直接驱动。 另外,很多车主应该都深有体会的是,受电池容量的影响,目前纯电动汽车的制冷效率有待提高。 以上就是给各位带来的关于纯电动汽车如何实现取暖功能的全部内容了。
明朝是中国历史上一个辉煌的朝代,其经济和文化发展备受关注。在明朝时期,有一些人曾经提出过资本主义的观点,认为通过市场经济和私有制可以促进经济发展。那么,明朝差点实现资本主义了吗?本文将从不同角度分析,明朝是否差点实现了资本主义。 首先,明朝差点实现资本主义的原因之一是封建地主阶级的压迫和剥削。在明朝时期,封建地主阶级对农民的剥削和土地的垄断非常严重,这限制了私人企业和市场的发展。如果没有这样的限制,可能会出现更多的私人企业和市场,从而促进资本主义的发展。 其次,明朝差点实现资本主义的原因之二是官僚制度和儒家思想的影响。在明朝时期,官僚制度和儒家思想占据主导地位,这种政治制度和文化传统对于资本主义的发展不利。因为资本主义需要自由竞争的市场和民主政治的支持,而这些都是在封建社会中难以实现的。 第三,明朝差点实现资本主义的原因之三是外部环境的影响。在明朝时期,中国与西方国家的贸易往来日益频繁,西方列强的侵略也对中国的经济和社会发展产生了影响。如果明朝能够积极应对外部环境的影响,扩大对外贸易,提高国家的综合实力,就有可能更好地发展资本主义。 然而,也有人对明朝差点实现资本主义提出质疑。他们认为,即使没有官僚制度和儒家思想的限制,封建地主阶级的压迫和剥削也会限制资本主义的发展。因此,即使明朝差点实现资本主义,也可能无法真正发展出资本主义。 总的来说,明朝差点实现资本主义是一个复杂的问题,需要从多个角度进行分析。要实现资本主义的发展,需要打破封建制度的束缚,实现土地私有化和商品经济发展;同时还需要改革政治制度和社会文化传统,积极应对外部环境的影响。今天,我们可以从历史经验中吸取启示,为今天的社会发展提供借鉴和参考。 免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。