CN102819514B - 存储介质的数据读取方法和设备 - Google Patents
存储介质的数据读取方法和设备 Download PDFInfo
- Publication number
- CN102819514B CN102819514B CN201210237930.XA CN201210237930A CN102819514B CN 102819514 B CN102819514 B CN 102819514B CN 201210237930 A CN201210237930 A CN 201210237930A CN 102819514 B CN102819514 B CN 102819514B
- Authority
- CN
- China
- Prior art keywords
- block
- information
- host computer
- handheld device
- usb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明实施例公开了一种存储介质的数据读取方法和设备,涉及数据存储领域,用于解决手持设备中的存储介质无法作为通用串行总线USB挂载介质与上位机进行通信的问题。本发明中,手持设备在通过USB与上位机连接后,获取该手持设备的存储介质的存储器工艺设备mtd分区中存储有预制内容的块的信息,在接收到上位机的查询命令后,将该块的信息上报给上位机,在接收到上位机的读取命令后,确定该读取命令中携带的根据该块的信息生成的逻辑块地址LBA信息所指向的存储有预制内容的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。采用本方案,可以解决所述问题。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种存储介质的数据读取方法和设备。
背景技术
作为一个开源代码并且免费的操作系统,Linux系统已经广泛应用在各种嵌入式领域。通用串行总线(Univeral Serial Bus,USB)由于其高速的传输速度以及在行业内的通用性,已经成为嵌入式设备与其他设备通信的极为重要的方法。
比如,使用Linux操作系统的手持设备(例如手机)通过USB与上位机(比如PC机)连接后,可以高速的传递数据,又可以用来充电等,使手持设备可以发挥存储设备,无线网卡以及调试等多种功能。
目前,手持设备通过USB与PC机连接后,向PC机传递数据的流程大致如下:
步骤一:PC机向手持设备发送数据读取指令;
步骤二:手持设备接收到数据读取指令后,对该数据读取指令进行解析,得到用来存储数据的存储介质(例如TF卡)的地址信息等;
步骤三:手持设备调用fat文件系统,由于fat文件系统管理有手持设备内各存储介质的信息,因此fat文件系统可以根据解析得到的地址信息找到对应的存储介质,并通过执行读操作读取存储介质中的数据,将读取到的数据送到USB;USB将数据传递给PC机;
步骤四:PC机接收到USB传递过来的数据后,执行对该数据的显示操作等。
将使用Linux操作系统的手持设备中能够通过USB向PC机传递数据的存储介质,称为Linux下的USB挂载介质。对Linux下的USB挂载介质的要求是,能透过fat文件系统对该介质进行访问,这就对存储介质本身增加了限制,对于通常用于嵌入式设备的其他存储介质来说,比如nand flash,由于其存储结构等的限制,无法加载fat文件系统,因而无法将该存储介质作为USB挂载介质与PC机进行通信。
发明内容
本发明实施例提供一种存储介质的数据读取方法和设备,用于解决手持设备中的存储介质由于无法加载fat文件系统而无法作为USB挂载介质与上位机进行通信的问题。
一种存储介质的数据读取方法,该存储介质包含至少一个存储器工艺设备mtd分区,每个mtd分区包含至少一个块,该方法包括:
手持设备在通过通用串行总线USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到所述mtd分区中存储有所述预制内容的块的信息;
手持设备接收上位机的查询命令,将所述块的信息上报给上位机;
手持设备接收上位机的读取命令,该读取命令中携带上位机根据所述块的信息生成的逻辑块地址LBA信息,确定该LBA信息所指向的所述mtd分区中的块,读取确定的块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
一种手持设备,包括存储介质,该存储介质包含至少一个存储器工艺设备mtd分区,每个mtd分区包含至少一个块,该手持设备还包括:
信息获取单元,用于在该手持设备通过通用串行总线USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到所述mtd分区中存储有所述预制内容的块的信息;
信息上报单元,用于接收上位机的查询命令,将所述块的信息上报给上位机;
数据读取上报单元,用于接收上位机的读取命令,该读取命令中携带上位机根据所述块的信息生成的逻辑块地址LBA信息,确定该LBA信息所指向的所述mtd分区中的块,读取确定的块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
本方案中,手持设备在通过USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到该mtd分区中存储有预制内容的块的信息,在接收到上位机的查询命令后,将该块的信息上报给上位机,在接收到上位机的读取命令后,确定该读取命令中携带的根据该块的信息生成的LBA信息所指向的存储有预制内容的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。可见,本方案中实现了上位机对手持设备中的存储介质的读取操作,并且该过程中不需要加载fat文件系统,从而解决了手持设备中的存储介质由于无法加载fat文件系统而无法作为USB挂载介质与上位机进行通信的问题。
附图说明
图1为本发明实施例提供的方法流程示意图;
图2为本发明实施例的数据读取流程示意图;
图3为本发明实施例提供的设备结构示意图。
具体实施方式
为了解决手持设备中的存储介质由于无法加载fat文件系统而无法作为USB挂载介质与上位机进行通信的问题,本发明实施例提供一种存储介质的数据读取方法。该存储介质包含至少一个存储器工艺设备(mtd)分区,每个mtd分区包含至少一个块,每个块包含至少包含一个页。
参见图1,本发明实施例提供的存储介质的数据读取方法,包括以下步骤:
步骤10:手持设备在通过USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到该mtd分区中存储有预制内容的块的信息,具体可以包括存储有预制内容的块的个数;
步骤11:手持设备接收上位机的查询命令,将该块的信息上报给上位机;
步骤12:手持设备接收上位机的读取命令,该读取命令中携带上位机根据该块的信息生成的逻辑块地址(LBA)信息,确定该LBA信息所指向的存储有预制内容的mtd分区中的块,读取确定的块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
较佳的,在手持设备通过USB与上位机连接后,且获取该手持设备的存储介质中存储有预制内容的mtd分区的地址之前,手持设备在上位机对该手持设备的枚举过程中通知上位机该手持设备的设备类型为只读类型。该只读类型可以为光盘cdrom等。
具体的,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到该mtd分区中存储有预制内容的块的信息,具体实现方法可以如下:
手持设备的内核层向用户层上报USB插入事件,用户层接收到该USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层;
内核层接收用户层发送的所述mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到所述mtd分区中存储有所述预制内容的块的信息。
较佳的,步骤11中手持设备将块的信息上报给上位机的同时,还将存储介质的页的信息发送给上位机,相应的,步骤12中手持设备接收到的读取命令中还可以携带上位机根据页的信息生成的需要读取的数据量的信息;
那么,步骤12中手持设备在将读取的预制内容通过USB传输给上位机后,可以根据该数据量的信息判断是否已传输上位机需要读取的数据量,若是,则向上位机发送读操作完成命令,否则,继续进行预制内容的读取,并将读取的预制内容通过USB传输给上位机,直到传输给上位机的数据量达到上位机需要读取的数据量。
较佳的,在步骤10中手持设备在通过USB与上位机连接之前,手持设备可以获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,对该地址对应的mtd分区进行扫描,根据扫描结果确定该mtd分区中的坏块,并记录坏块的信息;
相应的,步骤12中手持设备在确定LBA信息所指向的mtd分区中的块之后,并且读取确定的块中存储的预制内容之前,可以根据记录的坏块的信息,判断该LBA信息所指向的块是否为坏块;
在判断该LBA信息所指向的块不为坏块时,读取确定的块中存储的预制内容;
在判断该LBA信息所指向的块为坏块时,确定该LBA信息所指向的块的下一个未被标记为坏块的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
本方法中,存储介质可以为nand flash或嵌入式多媒体存储卡(EmbeddedMultiMediaCard,EMC)等。
具体实施例如下:
本实施例中,需要预先将预制内容烧写到nand flash中的相关mtd分区中,并将该mtd分区的地址信息写入mtd分区列表中。如图2所示,后续流程如下:
步骤20:手持设备开机启动后,从维护的mtd分区列表中读取该手持设备的nand flash中存储有预制内容的mtd分区的地址,对该地址对应的mtd分区进行扫描,得到并记录该mtd分区中的坏块的信息,具体可以将坏块的信息记录在静态数组中;
这里,对mtd分区进行扫描,得到并记录该mtd分区中的坏块的信息,具体实现可以为:通过mtd设备的坏块管理函数对当前分区的每个块进行扫描,如果当前块为坏块,则将此块的地址偏移量增加到一个坏块数组里,用以在后续读操作时判断当前要读取的块是否为坏块。
步骤21:手持设备通过USB与上位机连接后,上位机建立与USB之间的数据传输通路;手持设备的内核层通过USB通知上位机该手持设备的设备类型为只读类型,比如为cdrom;上位机执行对该手持设备的枚举过程;
步骤22:手持设备将mtd分区的地址作为介质挂载点进行加载,具体的,手持设备的内核层向用户层上报USB插入事件,用户层接收到该USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层;
步骤23:内核层接收用户层发送的mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到该mtd分区中存储有预制内容的块的个数;存储有预制内容的块的个数会预先被保存在该mtd分区的第一个块中;
内核层对读容量命令(Read capacity Command)和读地址命令(Read TocCommand)这两条命令的上报内容进行初始化,以使上位机获得nand flash的正确的页大小和存储有预制内容的块的个数。Read capacity Command是代码为0x25的小型计算机系统接口(small computer system interface,scsi)命令,ReadToc Command是代码为0x43的scsi命令。
初始化完成后,内核层可以向上位机发送初始化完成的通知;
这里,Read capacity Command的上报内容主要包括存储有预制内容的块的个数和nand flash的页大小。
Read Toc Command的上报内容主要包括逻辑块地址(logical blockadressing,LBA)以及分秒帧(Minute,Second,Frame,MSF)信息。初始化后的LBA的值等于mtd分区中存储有预制内容的块的个数;MSF信息为将mtd分区中的预制内容作为媒体进行播放的总播放时长信息,总播放时长信息包括帧分、秒、帧信息。
步骤24:上位机向手持设备依次发送Read capacity Command和Read TocCommand这两条命令;
手持设备接收到Read capacity Command后,将初始化后的mtd分区中存储有预制内容的块的个数以及页大小的信息上报给上位机;
手持设备接收到Read Toc Command后,将初始化后的LBA信息和MSF信息上报给上位机。
步骤25:上位机获得相关信息后,向手持设备发送读取命令,比如read_10命令,以对nand flash进行读操作;读取命令中携带上位机根据存储有预制内容的块的个数生成的LBA以及需要读取的数据量的信息;
读取命令中携带的LBA的值为0到步骤24中手持设备发送的mtd分区中存储有预制内容的块的个数之间的整数,比如,mtd分区中存储有预制内容的块的个数为5,上位机若需要读取mtd分区中第1个块的内容,则读取命令中携带的LBA的值为1,若需要读取mtd分区中第2个块的内容,则读取命令中携带的LBA的值为2,依次类推。读取命令中携带的需要读取的数据量为nandflash中页大小或页大小的整数倍,因为是以页为单位读取nand flash中的数据。read_10命令是代码为0x28的scsi命令;
手持设备将读取命令中携带的LBA转换为nand flash上的地址偏移量,并获得上位机需要读取的数据量的大小,转换后的地址偏移量指向上位机需要读的mtd分区中存储有预制内容的块,转换方法如下:由于nand flash的块大小一般为2048byte或4096byte,LBA为块的个数,则转换后的地址偏移量等于LBA乘以mtd分区中一个块的大小。
步骤26:手持设备根据步骤20中记录的坏块的信息,判断当前地址偏移量指向的块是否为好块,若是,则到步骤27,否则,到步骤28;
步骤27:手持设备读取当前地址偏移量指向的块中一个页大小的预制内容,将读取的预制内容放入缓存区,到步骤29;
步骤28:将当前的地址偏移量更新为当前块的下一个好块的地址偏移量,返回步骤27;
步骤29:通过USB将缓存区中的预制内容发送给上位机;
步骤30:手持设备判断当前的读操作是否完成,即判断是否已传输完上位机需要读取的数据量,若是,则到步骤31,否则,到步骤32:
这里,手持设备判断当前的读操作是否完成,具体为:更新需要读取的数据量,更新后的需要读取的数据量等于更新前的需要读取的数据量-本次读取的数据量;若更新后的需要读取的数据量等于0,则当前的读操作完成,否则未完成。
步骤31:手持设备向上位机发送读操作完成命令,通知上位机此次读操作完成,本流程结束;
步骤32:将当前的地址偏移量进行更新,更新后的地址偏移量等于更新前的地址偏移量减去页大小,返回步骤26。
本实施例中的手持设备可以采用linux 2.6版本的操作系统,nand flash的页大小为2kB,总容量为512MB。
本实施例通过直接访问nand flash的方法,配合对scsi命令的配置,使得上位机顺利得到其所需数据,从而完整的读出mtd分区的所有预制内容,以cdrom的方式呈现给用户。由于cdrom只读的特性,所以不会直接对nand flash进行写操作,也就无需对预制内容增加负载均衡算法。通过预制内容到nandflash的操作,降低了手持设备的成本,提供友好的使用方式给用户,扩展了USB的使用方法。
参见图3,本发明实施例还提供一种手持设备,包括存储介质,该存储介质包含至少一个存储器工艺设备mtd分区,每个mtd分区包含至少一个块,每个块包含至少一个页;该手持设备还包括:
信息获取单元31,用于在该手持设备通过通用串行总线USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到所述mtd分区中存储有所述预制内容的块的信息;
信息上报单元32,用于接收上位机的查询命令,将所述块的信息上报给上位机;
数据读取上报单元33,用于接收上位机的读取命令,该读取命令中携带上位机根据所述块的信息生成的逻辑块地址LBA信息,确定该LBA信息所指向的所述mtd分区中的块,读取确定的块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
进一步的,该手持设备还包括:
类型上报单元34,用于在该手持设备通过USB与上位机连接后,且获取该手持设备的存储介质中存储有预制内容的mtd分区的地址之前,在上位机对该手持设备的枚举过程中通知上位机该手持设备的设备类型为只读类型。
进一步的,所述信息获取单元31包括:
内核层单元,在该手持设备通过通用串行总线USB与上位机连接后,向用户层单元上报USB插入事件;接收用户层单元发来的mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到所述mtd分区中存储有所述预制内容的块的信息。
用户层单元,用于接收到所述USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层单元。
进一步的,所述信息上报单元32在将所述块的信息上报给上位机的同时,还将所述存储介质的页的信息发送给上位机;所述读取命令中还携带上位机根据所述页的信息生成的需要读取的数据量的信息;
所述数据读取上报单元33还用于:在将读取的预制内容通过USB传输给上位机后,根据所述数据量的信息判断是否已传输上位机需要读取的数据量,若是,则向上位机发送读操作完成命令,否则,继续进行预制内容的读取,并将读取的预制内容通过USB传输给上位机,直到传输给上位机的数据量达到所述需要读取的数据量。
进一步的,该手持设备还包括:
坏块标记单元35,用于在手持设备在通过USB与上位机连接之前,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,对该地址对应的mtd分区进行扫描,根据扫描结果确定该mtd分区中的坏块,并记录坏块的信息;
所述数据读取上报单元33还用于:在确定该LBA信息所指向的所述mtd分区中的块之后,并且读取确定的块中存储的预制内容之前,根据记录的坏块的信息,判断该LBA信息所指向的块是否为坏块;在判断该LBA信息所指向的块不为坏块时,读取确定的块中存储的预制内容。
进一步的,所述数据读取上报单元33还用于:
在判断该LBA信息所指向的块为坏块时,确定该LBA信息所指向的块的下一个未被标记为坏块的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
进一步的,所述存储介质为nand flash。
综上,本发明的有益效果包括:
本发明实施例提供的方案中,手持设备在通过USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到该mtd分区中存储有预制内容的块的信息,在接收到上位机的查询命令后,将该块的信息上报给上位机,在接收到上位机的读取命令后,确定该读取命令中携带的根据该块的信息生成的LBA信息所指向的存储有预制内容的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。可见,本方案中实现了上位机对手持设备中的存储介质的读取操作,并且该过程中不需要加载fat文件系统,从而解决了手持设备中的存储介质由于无法加载fat文件系统而无法作为USB挂载介质与上位机进行通信的问题。
本发明利用cdrom只读的特点,通过USB、cdrom直接挂载mtd分区的通路,建立了上位机通过USB直接访问nand flash的通路,使得大容量的nandflash可以预制内容,且无需加载文件系统。通过USB、cdrom与上位机连接,直接读取mtd分区中的预制内容的方法,降低了手持设备的成本,提高了nandflash的使用率以及USB挂载介质的多样性。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种存储介质的数据读取方法,该存储介质包含至少一个存储器工艺设备mtd分区,每个mtd分区包含至少一个块,其特征在于,该方法包括:
手持设备在通过通用串行总线USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到所述mtd分区中存储有所述预制内容的块的信息;
手持设备接收上位机的查询命令,将所述块的信息上报给上位机;
手持设备接收上位机的读取命令,该读取命令中携带上位机根据所述块的信息生成的逻辑块地址LBA信息,确定该LBA信息所指向的所述mtd分区中的块,读取确定的块中存储的预制内容,并将读取的预制内容通过USB传输给上位机;
所述获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,具体包括:手持设备的内核层向用户层上报USB插入事件,用户层接收到该USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层;
所述根据该地址信息得到所述mtd分区中存储有所述预制内容的块的信息,具体包括:
内核层接收用户层发送的所述mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到所述mtd分区中存储有所述预制内容的块的信息。
2.如权利要求1所述的方法,其特征在于,在手持设备通过USB与上位机连接后,且获取该手持设备的存储介质中存储有预制内容的mtd分区的地址之前,进一步包括:
手持设备通过USB通知上位机该手持设备的设备类型为只读类型。
3.如权利要求1所述的方法,其特征在于,所述存储介质中的每个块包含至少一个页;手持设备在将所述块的信息上报给上位机的同时,还将所述存储介质的页的信息发送给上位机;所述读取命令中还携带上位机根据所述页的信息生成的需要读取的数据量的信息;
在将读取的预制内容通过USB传输给上位机后,进一步包括:根据所述数据量的信息判断是否已传输上位机需要读取的数据量,若是,则向上位机发送读操作完成命令,否则,继续进行预制内容的读取,并将读取的预制内容通过USB传输给上位机,直到传输给上位机的数据量达到所述需要读取的数据量。
4.如权利要求1所述的方法,其特征在于,在手持设备在通过USB与上位机连接之前,进一步包括:手持设备获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,对该地址对应的mtd分区进行扫描,根据扫描结果确定该mtd分区中的坏块,并记录坏块的信息;
在确定该LBA信息所指向的所述mtd分区中的块之后,并且读取确定的块中存储的预制内容之前,进一步包括:手持设备根据记录的坏块的信息,判断该LBA信息所指向的块是否为坏块;
所述读取确定的块中存储的预制内容包括:在判断该LBA信息所指向的块不为坏块时,读取确定的块中存储的预制内容。
5.如权利要求4所述的方法,其特征在于,在判断该LBA信息所指向的块为坏块时,进一步包括:
手持设备确定该LBA信息所指向的块的下一个未被标记为坏块的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
6.如权利要求1-5中任意一项所述的方法,其特征在于,所述存储介质为nand flash。
7.一种手持设备,包括存储介质,该存储介质包含至少一个存储器工艺设备mtd分区,每个mtd分区包含至少一个块,其特征在于,该手持设备还包括:
信息获取单元,用于在该手持设备通过通用串行总线USB与上位机连接后,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,根据该地址信息得到所述mtd分区中存储有所述预制内容的块的信息;
信息上报单元,用于接收上位机的查询命令,将所述块的信息上报给上位机;
数据读取上报单元,用于接收上位机的读取命令,该读取命令中携带上位机根据所述块的信息生成的逻辑块地址LBA信息,确定该LBA信息所指向的所述mtd分区中的块,读取确定的块中存储的预制内容,并将读取的预制内容通过USB传输给上位机;
所述信息获取单元包括:
内核层单元,在该手持设备通过通用串行总线USB与上位机连接后,向用户层单元上报USB插入事件;接收用户层单元发来的mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到所述mtd分区中存储有所述预制内容的块的信息;
用户层单元,用于接收到所述USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层单元。
8.如权利要求7所述的手持设备,其特征在于,该手持设备还包括:
类型上报单元,用于在该手持设备通过USB与上位机连接后,且获取该手持设备的存储介质中存储有预制内容的mtd分区的地址之前,通过USB通知上位机该手持设备的设备类型为只读类型。
9.如权利要求7所述的手持设备,其特征在于,所述存储介质中的每个块包含至少一个页;所述信息上报单元在将所述块的信息上报给上位机的同时,还将所述存储介质的页的信息发送给上位机;所述读取命令中还携带上位机根据所述页的信息生成的需要读取的数据量的信息;
所述数据读取上报单元还用于:在将读取的预制内容通过USB传输给上位机后,根据所述数据量的信息判断是否已传输上位机需要读取的数据量,若是,则向上位机发送读操作完成命令,否则,继续进行预制内容的读取,并将读取的预制内容通过USB传输给上位机,直到传输给上位机的数据量达到所述需要读取的数据量。
10.如权利要求7所述的手持设备,其特征在于,该手持设备还包括:
坏块标记单元,用于在手持设备在通过USB与上位机连接之前,获取该手持设备的存储介质中存储有预制内容的mtd分区的地址,对该地址对应的mtd分区进行扫描,根据扫描结果确定该mtd分区中的坏块,并记录坏块的信息;
所述数据读取上报单元还用于:在确定该LBA信息所指向的所述mtd分区中的块之后,并且读取确定的块中存储的预制内容之前,根据记录的坏块的信息,判断该LBA信息所指向的块是否为坏块;在判断该LBA信息所指向的块不为坏块时,读取确定的块中存储的预制内容。
11.如权利要求10所述的手持设备,其特征在于,所述数据读取上报单元还用于:
在判断该LBA信息所指向的块为坏块时,确定该LBA信息所指向的块的下一个未被标记为坏块的块,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。
12.如权利要求7-11中任意一项所述的手持设备,其特征在于,所述存储介质为nand flash。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510207732.2A CN104866236A (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
CN201210237930.XA CN102819514B (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210237930.XA CN102819514B (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510207732.2A Division CN104866236A (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819514A CN102819514A (zh) | 2012-12-12 |
CN102819514B true CN102819514B (zh) | 2015-05-06 |
Family
ID=47303632
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210237930.XA Active CN102819514B (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
CN201510207732.2A Pending CN104866236A (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510207732.2A Pending CN104866236A (zh) | 2012-07-10 | 2012-07-10 | 存储介质的数据读取方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN102819514B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204781B (zh) * | 2015-09-28 | 2019-04-12 | 华为技术有限公司 | 压缩方法、装置和设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527210A (zh) * | 1999-04-05 | 2004-09-08 | M-ϵͳ�����̿����߹�˾ | 基于通用串行总线的pc闪存盘的体系结构 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100735774B1 (ko) * | 2005-09-23 | 2007-07-06 | 엘지노텔 주식회사 | 임베디드 시스템의 데이터 백업방법 |
CN201780792U (zh) * | 2010-09-20 | 2011-03-30 | 谢坦 | 基于Linux内核的自启动多功能安全U盘 |
-
2012
- 2012-07-10 CN CN201210237930.XA patent/CN102819514B/zh active Active
- 2012-07-10 CN CN201510207732.2A patent/CN104866236A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527210A (zh) * | 1999-04-05 | 2004-09-08 | M-ϵͳ�����̿����߹�˾ | 基于通用串行总线的pc闪存盘的体系结构 |
Non-Patent Citations (2)
Title |
---|
基于Intel PXA255与ARM-Linux嵌入式系统的USB存储器的设计;李涛等;《计算机工程与科学》;20070415;第29卷(第4期);全文 * |
嵌入式Linux下NAND存储系统的设计与实现;胡勇其等;《计算机工程》;20060220;第32卷(第4期);第1,2.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN104866236A (zh) | 2015-08-26 |
CN102819514A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101468824B1 (ko) | 메모리 장치의 활용 영역 확장 | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
CN111124305B (zh) | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 | |
CN109901794A (zh) | 使用主机空闲来操作垃圾收集的设备和方法 | |
WO2016048599A1 (en) | Caching technologies employing data compression | |
CN102723099A (zh) | 包括用于处理多命令描述符块以便利用并发性的主机接口的闪存装置 | |
WO2021115177A1 (zh) | 应用安装方法、装置、终端设备、服务器及存储介质 | |
EP3518111A1 (en) | Information acquisition method and apparatus, and memory release method and apparatus | |
CN109542495A (zh) | 一种软件升级方法及装置 | |
CN111831215A (zh) | 用于在存储器系统中传输映射信息的装置 | |
CN105094691A (zh) | 一种数据操作的方法、设备和系统 | |
CN105426322B (zh) | 一种数据的预取方法及装置 | |
CN107278293B (zh) | 虚拟机的传感器实现装置及其方法 | |
CN105389268A (zh) | 资料储存系统及其运作方法 | |
CN102819514B (zh) | 存储介质的数据读取方法和设备 | |
CN101977231A (zh) | 映像文件的下载方法 | |
CN102117245B (zh) | 嵌入式设备及其系统可执行文件分割加载和启动方法 | |
KR20150116627A (ko) | 컨트롤러 및 그것을 포함하는 데이터 저장 장치 | |
CN104252423A (zh) | 基于多内核处理器的一致性处理方法和装置 | |
US20120303879A1 (en) | Memory Device and Method for Programming Flash Memory Utilizing Spare Blocks | |
CN103795806A (zh) | 一种面向移动终端的云存储实现方法 | |
CN107844360B (zh) | 一种硬盘执行应用代码的方法及装置 | |
KR20200095010A (ko) | 메모리 시스템에서 맵 정보를 전송하는 방법 및 장치 | |
CN112596949B (zh) | 一种高效率的ssd删除数据恢复方法及系统 | |
CN101819589B (zh) | 一种控制文件输入输出缓存的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |