[发明专利]一种嵌入式系统中存储设备容量自适应的方法及装置有效
申请号: | 201110134910.5 | 申请日: | 2011-05-24 |
公开(公告)号: | CN102799536B | 公开(公告)日: | 2016-11-16 |
发明(设计)人: | 汪旭光;徐运;刘金栋;吴奇 | 申请(专利权)人: | 天津中兴智联科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/08 |
代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 马倩倩 |
地址: | 300308 天津市滨海*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统 存储 设备 容量 自适应 方法 装置 | ||
技术领域
本发明涉及嵌入式设备技术领域,尤其涉及一种嵌入式系统中存储设备容量自适应的方法及装置。
背景技术
嵌入式Linux系统中将Flash(闪存)作为存储设备,是一种较为通用的方法。Flash中既可以存放程序代码,又可以存放用户数据,而且具有掉电不丢失数据的特性,因此,应用非常广泛。
目前,Flash在实际应用中,主要存在如下问题:针对一款Linux系统产品使用不同容量Flash的情况,通常需要在嵌入式Linux系统中针对Flash容量做多套驱动程序,这样就给版本维护及使用带来了不便。
发明内容
本发明解决的技术问题是提供一种嵌入式系统中存储设备容量自适应的方法及装置,能够在Linux内核中实现不同Flash容量的驱动。
为解决上述技术问题,本发明提供了一种嵌入式系统中存储设备容量自适应的方法,应用于Linux系统,所述方法包括:
映射虚拟内存,对存储设备进行第一次探测以得到所述存储设备的实际容量;
根据所述存储设备的实际容量重新映射虚拟内存,并对所述存储设备进行第二次探测;
添加对应的分区表并注册。
进一步地,所述映射虚拟内存的步骤,具体包括:
将所述虚拟内存分配空间大小的设置为常量S,且所述常量S的值设置成所述存储设备的前S存储空间应能够完成探测命令。
进一步地,所述第一次探测,具体包括:
通过所述Linux内核的内存技术设备(MTD)驱动的通用Flash接口(CFI接口),得到所述存储设备的信息;其中所述存储设备的信息中包括所述存储设备的实际容量。
进一步地,所述添加对应的分区表并注册的步骤,具体包括:
根据所述存储设备的实际容量的值,查看Linux内核中是否存在与该值对应的分区表,若存在则将该分区表则注册到Linux内核中,若不存在则提示加载异常。
进一步地,所述方法还包括:
在装载所述存储设备的分区表时,根据探测得到的所述存储设备的实际容量的值,加载Linux内核中相同大小的分区表。
进一步地,所述根据所述存储设备的实际容量重新映射虚拟内存,是指:将已分配的虚拟内存释放,重新分配所述存储设备的实际容量的值相同大小的虚拟内存。
本发明还提供了一种嵌入式系统中存储设备容量自适应的装置,所述装置包括:
虚拟内存分配模块,用于映射虚拟内存,并根据第一次探测得到的存储设备的实际容量重新映射虚拟内存;
MTD探测模块,用于根据所述虚拟内存分配模块映射的虚拟内存对存储设备进行第一次探测,将第一次探测得到的所述存储设备的实际容量发送给所述虚拟内存分配模块;并在所述虚拟内存分配模块重新映射虚拟内存后,对所述存储设备进行第二次探测;
分区表添加注册模块,用于在所述第一次探测和第二次探测完成后,添加对应的分区表并注册。
进一步地,所述虚拟内存分配模块用于,将所述虚拟内存分配空间大小的设置为常量S,且所述常量S的值设置成所述存储设备的前S存储空间应能够完成探测命令;以及,
根据第一次探测得到的存储设备的实际容量,将已分配的虚拟内存释放,重新分配所述存储设备的实际容量的值相同大小的虚拟内存。
进一步地,所述MTD探测模块用于,通过所述Linux内核的MTD驱动的CFI接口,得到所述存储设备的信息,其中所述存储设备的信息中包括所述存储设备的实际容量。
进一步地,所述分区表添加注册模块用于,根据所述存储设备的实际容量的值,查看Linux内核中是否存在与该值对应的分区表,若存在则将该分区表则注册到Linux内核中,若不存在则提示加载异常。
进一步地,所述装置还包括自适应加载模块,
所述自适应加载模块用于,在装载所述存储设备的分区表时,根据探测得到的所述存储设备的实际容量的值,加载Linux内核中相同大小的分区表。
综上所述,本发明提供了一种在Linux内核中Flash容量自适应的方案,该方案的实现建立在由所述Linux内核的MTD(Memory Technology Devices,内存技术设备)驱动层。通过本发明提出的Flash驱动二次探测方法,无论Flash容量多大都可以自动实现Flash驱动加载及对应的分区表加载,从而大大降低了产品的维护成本,提高了产品的灵活性及可靠性。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津中兴智联科技有限公司,未经天津中兴智联科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110134910.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种塑身贾卡提花面料
- 下一篇:一种全棉大提花面料