System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于嵌入式soc(片上系统),涉及一种支持文件系统的sd卡启动方法、装置、设备及介质。
技术介绍
1、sd卡容量大且方便拔插,在嵌入式领域应用广泛,sd卡作为常见的存储设备,也是嵌入式soc常用的启动设备。当前普遍使用容量大的sdhc卡(32gb以内)和sdxc卡(32gb以上),为方便数据管理,一般都需要使用文件系统进行管理,嵌入式领域最常用的文件系统格式则是windows的fatfs和linux的exfat。开源的fatfs软件,采用ansi c语言(c89)标准开发,其对嵌入式soc来说移植更容易其占用资源小,因而被广泛使用。因此sd卡常格式化为fatfs或者至少有一个分区为fatfs文件系统格式。
2、嵌入式soc在使用sd卡作为启动设备时,如果要支持sd卡的文件系统,那么常需要在启动引导(bootloader)程序移植fatfs文件系统组件,以方便程序通过文件系统定位引导用户image固件文件。rbl(rom bootloader,一级引导程序)作为固化在芯片内部的一级启动代码,移植一个额外的组件需要更多的存储资源,所以一般情况下嵌入式soc支持sd卡启动一般采取以下3种方式:(1)是按soc启动要求规定的二进制数据格式从存储器的首地址或固定地址中启动;(2)使用sbl(second bootloader,即第二阶启动引导)从sd卡的文件系统的指定文件引导启动;(3)在rbl移植fatfs文件系统组件,从sd卡的文件系统的指定文件引导启动。然而,上述传统sd卡启动方法仍存在着启动性能不足的技术问题
技术实现思路
1、针对上述传统方法中存在的问题,本专利技术提出了一种支持文件系统的sd卡启动方法、一种支持文件系统的sd卡启动装置、一种计算机设备以及一种计算机可读存储介质,能够有效提高嵌入式soc上sd卡的启动性能。
2、为了实现上述目的,本专利技术实施例采用以下技术方案:
3、一方面,提供一种支持文件系统的sd卡启动方法,包括步骤:
4、将image格式的用户image数据文件存储到sd卡的存储器中;image格式包括魔术字、段加载命令和跳转结束命令;
5、进入rbl的启动流程进行sd卡的初始化软硬件环境后,若确定为单文件系统,则从sd卡的存储器中dbr的保留区域寻找重定位命令;
6、利用重定位命令在sd卡的存储器中重定位读扇区的索引,按照读扇区的索引读取用户image数据到数据缓冲区;
7、从数据缓冲区解析用户image数据完成后执行跳转结束命令,结束rbl的启动流程并跳转到用户程序执行。
8、另一方面,还提供一种支持文件系统的sd卡启动装置,包括:
9、文件烧录模块,用于将image格式的用户image数据文件存储到sd卡的存储器中;image格式包括魔术字、段加载命令和跳转结束命令;
10、rbl启动模块,用于进入rbl的启动流程进行sd卡的初始化软硬件环境后,若确定为单文件系统,则从sd卡的存储器中dbr的保留区域寻找重定位命令,利用重定位命令在sd卡的存储器中重定位读扇区的索引,按照读扇区的索引读取用户image数据到数据缓冲区,从数据缓冲区解析用户image数据完成后执行跳转结束命令,结束rbl的启动流程并跳转到用户程序执行。
11、又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述支持文件系统的sd卡启动方法的步骤。
12、再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的支持文件系统的sd卡启动方法的步骤。
13、上述技术方案中的一个技术方案具有如下优点和有益效果:
14、上述支持文件系统的sd卡启动方法、装置、设备及介质,通过利用fat文件系统中未使用的保留区域,添加重定位命令只需占用2个字,让启动引导快速定位到用户image数据在sd卡的存储器的物理位置,实现sd卡支持带文件系统的高效启动。相比于传统技术,上述方案在无需二级引导程序也无需在一级引导程序中添加fatfs组件的情况下,支持从sd卡的文件系统的指定文件引导启动;省去了sbl二级引导的过程,从而节省了二级引导的时间,也无需在rbl一级引导程序中添加fatfs组件,节省了rom空间,有效提高了嵌入式soc上sd卡的启动性能。
本文档来自技高网...【技术保护点】
1.一种支持文件系统的SD卡启动方法,其特征在于,包括步骤:
2.根据权利要求1所述的支持文件系统的SD卡启动方法,其特征在于,所述将image格式的用户image数据文件存储到SD卡的存储器中的步骤中,若SD卡不存在文件系统,则所述用户image数据存储在SD卡的存储器中物理地址的低地址中;
3.根据权利要求2所述的支持文件系统的SD卡启动方法,其特征在于,进入RBL的启动流程进行SD卡的初始化软硬件环境后,若确定为无文件系统,则后续启动过程包括步骤:
4.根据权利要求2所述的支持文件系统的SD卡启动方法,其特征在于,进入RBL的启动流程进行SD卡的初始化软硬件环境后,若确定为多分区文件系统,则后续启动过程包括步骤:
5.根据权利要求2至4任一项所述的支持文件系统的SD卡启动方法,其特征在于,利用烧录程序在写所述用户image数据的数据文件到SD卡时,调用SD卡的扇区写接口对SD卡的每个扇区的第一个字数据进行匹配,若匹配为魔术字,则记录相应扇区的扇区编号,待所述用户image数据的数据文件都写入到SD卡后,将记录的扇区编号乘512
6.一种支持文件系统的SD卡启动装置,其特征在于,包括:
7.根据权利要求6所述的支持文件系统的SD卡启动装置,其特征在于,所述将image格式的用户image数据文件存储到SD卡的存储器中的步骤中,若SD卡不存在文件系统,则所述用户image数据存储在SD卡的存储器中物理地址的低地址中;
8.根据权利要求7所述的支持文件系统的SD卡启动装置,其特征在于,所述RBL启动模块进入RBL的启动流程进行SD卡的初始化软硬件环境后,若确定为多分区文件系统,则遍历SD卡的扇区的头4个字节匹配魔术字,匹配到魔术字后,从SD卡的第一个扇区和第一个文件系统中间存在的保留区域内寻找重定位命令,利用所述重定位命令在SD卡的存储器中重定位读扇区的索引,按照读扇区的索引读取用户image数据到数据缓冲区,再从数据缓冲区解析所述用户image数据完成后执行跳转结束命令,结束RBL的启动流程并跳转到用户程序执行。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的支持文件系统的SD卡启动方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的支持文件系统的SD卡启动方法的步骤。
...【技术特征摘要】
1.一种支持文件系统的sd卡启动方法,其特征在于,包括步骤:
2.根据权利要求1所述的支持文件系统的sd卡启动方法,其特征在于,所述将image格式的用户image数据文件存储到sd卡的存储器中的步骤中,若sd卡不存在文件系统,则所述用户image数据存储在sd卡的存储器中物理地址的低地址中;
3.根据权利要求2所述的支持文件系统的sd卡启动方法,其特征在于,进入rbl的启动流程进行sd卡的初始化软硬件环境后,若确定为无文件系统,则后续启动过程包括步骤:
4.根据权利要求2所述的支持文件系统的sd卡启动方法,其特征在于,进入rbl的启动流程进行sd卡的初始化软硬件环境后,若确定为多分区文件系统,则后续启动过程包括步骤:
5.根据权利要求2至4任一项所述的支持文件系统的sd卡启动方法,其特征在于,利用烧录程序在写所述用户image数据的数据文件到sd卡时,调用sd卡的扇区写接口对sd卡的每个扇区的第一个字数据进行匹配,若匹配为魔术字,则记录相应扇区的扇区编号,待所述用户image数据的数据文件都写入到sd卡后,将记录的扇区编号乘512得到重定位地址,再将重定位命令和重定位地址写入到文件系统的保留区域;保留区域为dbr的保留区域或者sd卡的第一个扇区和第一个文件系统中间存在的保留区域。
6.一种支持...
【专利技术属性】
技术研发人员:龚国辉,徐雪刚,倪洋,龚星,王磊,
申请(专利权)人:湖南长城银河科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。