CN117637009A - 通过额外boot点启动固件代码的方法 - Google Patents
通过额外boot点启动固件代码的方法 Download PDFInfo
- Publication number
- CN117637009A CN117637009A CN202311682686.2A CN202311682686A CN117637009A CN 117637009 A CN117637009 A CN 117637009A CN 202311682686 A CN202311682686 A CN 202311682686A CN 117637009 A CN117637009 A CN 117637009A
- Authority
- CN
- China
- Prior art keywords
- firmware code
- preset command
- firmware
- command
- specific address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000004044 response Effects 0.000 claims description 13
- 238000011156 evaluation Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Abstract
本申请公开了一种通过额外boot点启动固件代码的方法,涉及计算机技术领域,包括步骤:接收设备上电启动命令,根据所述上电启动命令读取第一固件代码,所述第一固件代码存放于厂商数据区;将所述第一固件代码载入到随机存取存储器中,并运行所述第一固件代码;接收预设命令,根据所述预设命令读取所述第二固件代码,所述第二固件代码存放于用户数据区;将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码;本申请通过以上设计,能够多个固件对比测试,且操作方便。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种通过额外boot点启动固件代码的方法。
背景技术
Nand flash(与非闪存)是一种flash内存,Nand flash存储器因具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)随身听记忆卡、体积小巧的U盘等。
现有技术中只支持在Nand Flash中存放一份固件代码,并且boot点位置固定。如果该固件代码出现问题或者需要对比固件代码之间的差异而进行测试时,需要进行FFU或者重新进行量产流程更换固件代码,这比较的麻烦。
发明内容
本申请的目的是提供一种能够多个固件对比测试,且操作方便的通过额外boot点启动固件代码的方法。
本申请公开了一种通过额外boot点启动固件代码的方法,包括步骤:
将第一固件代码存放在厂商数据区,将第二固件代码存放在用户数据区;
接收设备上电启动命令,根据所述上电启动命令读取所述第一固件代码,所述第一固件代码存放于厂商数据区;
将所述第一固件代码载入到随机存取存储器中,并运行所述第一固件代码;
接收预设命令,根据所述预设命令读取所述第二固件代码,所述第二固件代码存放于用户数据区;
将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
可选的,所述第二固件代码存放在所述用户数据区的特定地址;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
接收所述预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址;
根据所述特定地址在所述用户数据区读取所述第二固件代码。
可选的,所述第二固件代码存放在所述用户数据区的特定地址;所述用户数据区还包括默认地址,所述默认地址内存储有对应所述特定地址的boot标记;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
接收所述预设命令,根据所述预设命令读取所述预设指令所携带的默认地址或基于默认设置调用所述默认地址;
根据所述boot标记,从所述默认地址跳转到所述特定地址;
从所述用户数据区的所述特定地址读取所述第二固件代码。
可选的,所述接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址的步骤之后,还包括步骤:
判断所述用户数据区的所述特定地址是否存放有所述第二固件代码;
若所述特定地址没有存放所述第二固件代码,则返回所述厂商数据区读取所述第一固件代码并载入到所述随机存取存储器中,运行所述第一固件代码;
若所述特定地址存放有所述第二固件代码,则根据所述特定地址在所述用户数据区读取所述第二固件代码。
可选的,所述接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址的步骤中,包括步骤:
接收所述预设命令,设备端开启私有命令响应机制入口;
所述设备端配置所述私有命令响应机制的参数;
所述设备端重新开启所述私有命令响应机制入口;
主机端发送私有命令,所述私有命令响应机制对所述私有命令进行响应;
所述设备端停止eMMC数据的传输;
所述设备端读取所述预设命令所携带的特定地址。
可选的,所述根据所述特定地址在所述用户数据区读取所述第二固件代码的步骤包括:
从所述用户数据区的所述特定地址读取固件代码文件;
将读取的所述固件代码文件与预设的固件代码进行比对;
确认所述固件代码文件为所述第二固件代码;
将所述第二固件代码载入到所述随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
可选的,分别对所述第一固件代码和所述第二固件代码进行测评;
若所述第一固件代码的测评结果优于所述第二固件代码的测评结果,则将所述第二固件代码清理,保留所述第一固件代码;
若所述第二固件代码的测评结果优于所述第一固件代码的测评结果,则将所述第二固件代码通过烧录到设备,将所述第一固件代码更换为所述第二固件代码。
可选的,所述第二固件代码包括第一子固件代码和第二子固件代码,所述特定地址包括第一特定地址和第二特定地址,所述第一子固件代码存放在所述第一特定地址,所述第二子固件代码存放在所述第二特定地址,所述预设命令包括第一预设命令和第二预设命令;
所述接收预设命令,根据所述预设命令读取所述第二固件代码,所述第二固件代码存放于用户数据区的步骤包括:
接收第一预设命令,根据所述第一预设命令从所述第一特定地址读取所述第一子固件代码;或接收第二预设命令,根据所述第二预设命令从所述第二特定地址读取所述第二子固件代码;
所述将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码的步骤包括步骤:
将所述第一子固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第一子固件代码;或将所述第二子固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二子固件代码。
可选的,通过设置快捷指令或快捷按键,以调用启动所述预设命令。
可选的,所述第二固件代码的数量为多个,多个所述第二固件代码存放在所述用户数据区的未知地址;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
接收所述预设命令,搜索所述用户数据区的未知地址,并列出所有的第二固件代码;
选择其中一个所述第二固件代码,并将选择的所述第二固件代码载入到所述随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
本申请通过接收设备上电启动命令,根据上电启动命令读取第一固件代码,第一固件代码存放于厂商数据区;将第一固件代码载入到随机存取存储器中,并运行第一固件代码;当接收到预设命令时,根据预设命令读取第二固件代码,第二固件代码存放于用户数据区;将第二固件代码载入到随机存取存储器中,以替换随机存取存储器中的第一固件代码,并运行第二固件代码,这样当第一固件代码出现问题或都需要对比固件代码之间的差异进行测主式时,不需要重新进行烧录更换固件代码,就可以直接跳转到第二固件代码进行boot流程,操作方便且能够满足多个固件对比测试。
附图说明
所包括的附图用来提供对本申请实施例的进一步的理解,其构成了说明书的一部分,用于例示本申请的实施方式,并与文字描述一起来阐释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请提供的通过额外boot点启动固件代码的方法的步骤流程示意图;
图2是本申请第一实施例提供的图1中步骤S3的进一步步骤流程示意图;
图3是本申请第一实施例提供的图1中步骤S31的进一步步骤流程示意图;
图4是本申请第一实施例提供的图2中步骤S31的进一步步骤流程示意图;
图5是本申请第一实施例提供的图2中步骤S32的进一步的步骤流程示意图;
图6是本申请第一实施例提供的图2中步骤S32之后的步骤流程示意图;
图7是本申请第二实施例提供的图1中步骤S3的进一步步骤流程示意图;
图8是本申请第三实施例提供的图1中步骤S3-S4的步骤流程示意图;
图9是本申请第三实施例提供的图1中步骤S3-S4的另一种步骤流程示意图;
图10是本申请第四实施例提供的图1中步骤S3的进一步步骤流程示意图。
具体实施方式
需要理解的是,这里所使用的术语、公开的具体结构和功能细节,仅仅是为了描述具体实施例,是代表性的,但是本申请可以通过许多替换形式来具体实现,不应被解释成仅受限于这里所阐述的实施例。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示相对重要性,或者隐含指明所指示的技术特征的数量。由此,除非另有说明,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征;“多个”的含义是两个或两个以上。术语“包括”及其任何变形,意为不排他的包含,可能存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
参见图1所示,图1是本申请提供的通过额外boot点启动固件代码的方法的步骤流程示意图,本申请公开了一种通过额外boot点启动固件代码的方法,包括步骤:
S1:接收设备上电启动命令,根据所述上电启动命令读取第一固件代码,所述第一固件代码存放于厂商数据区;
S2:将所述第一固件代码载入到随机存取存储器中,并运行所述第一固件代码;
S3:接收预设命令,根据所述预设命令读取所述第二固件代码,所述第二固件代码存放于用户数据区;
S4:将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
本申请通过接收设备上电启动命令,根据上电启动命令读取第一固件代码,第一固件代码存放于厂商数据区;将第一固件代码载入到随机存取存储器中,并运行第一固件代码;当接收到预设命令时,根据预设命令读取第二固件代码,第二固件代码存放于用户数据区;将第二固件代码载入到随机存取存储器中,以替换随机存取存储器中的第一固件代码,并运行第二固件代码,这样当第一固件代码出现问题或都需要对比固件代码之间的差异进行测主式时,不需要重新进行烧录更换固件代码,就可以直接跳转到第二固件代码进行boot流程,操作方便且能够满足多个固件对比测试。
下面参考附图和可选的实施例对本申请作详细说明。
第一实施例:
在Nand flash中,划分为用户数据区(UDA区)和厂商数据区(非UDA区),在设备上电启动阶段,设备会在boot流程中在非UDA区寻找固件代码并载入内存中,进行常规boot流程。具体为:eMMC会在量产流程中往非易失性存储器中写入所述第一固件代码,一般情况下,如果产品没有售后需求,第一固件代码将伴随产品终身。当eMMC开始上电启动后,自身会首先从用户无法访问的系统数据区读取第一固件代码并载入到随机存取存储器(RAM)中,在后续的流程中,eMMC就会按照随机存取存储器中第一固件代码的逻辑进行运行,而现在,可通过预设命令从额外boot点启动第二固件代码。
其中,图2是本申请第一实施例提供的图1中步骤S3的进一步步骤流程示意图,如图2所示,所述第二固件代码存放在所述用户数据区的特定地址,所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
S31:接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址;
S32:根据所述特定地址在所述用户数据区读取所述第二固件代码。
即在进行预设命令启动前,需要往用户数据区放入一份新的固件代码,并知道其逻辑地址,在产品销售出去后,无法确保某个用户数据区永远不会被使用,因此设定一个可更改的逻辑地址更加方便。通过将第二固件代码存放在特定的逻辑地址,当检测到预设命令时,直接根据该特定的逻辑地址找到第二固件代码,更加节省时间。
当检测到预设命令后,采用eMMC私有命令后门操作启动流程,具体的,图3是本申请第一实施例提供的图1中步骤S31的进一步步骤流程示意图,如图3所示,所述接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址的步骤中,包括步骤:
S311:接收预设命令,设备端开启私有命令响应机制入口;
S312:所述设备端配置所述私有命令响应机制参数;
S313:所述设备端重新开启所述私有命令响应机制入口;
S314:主机端发送私有命令,所述私有命令响应机制对私有命令进行响应;
S315:所述设备端停止eMMC数据的传输;
S316:所述设备端读取所述预设命令所携带的所述特定地址。
其中,所述预设命令为CMD56命令,可以通过设置快捷指令或快捷按键,以调用启动所述预设命令,在设备上电后,直接根据快捷指令给出CMD56命令,进行后续boot流程,当然,也可以通过设置快捷按键的方式调用所述预设命令,这样不仅能在调试阶段启动额外boot流程,还可以在产品售出后,若使用者发现固件不合适的时候,也可以通过快捷指令或快捷按键来启动预设命令,替换固件代码进行boot流程。
主机端发送的私有命令可包括第一私有命令和第二私有命令,其中第一私有命令相当于一个进入私有命令的密码,用于开启私有命令响应机制的入口,而第二私有命令是进入私有命令后,更换固件地址的私有命令码,即通过发送第二私有命令,通知固件需要更换新的固件代码,这样可以形成一个简单的防呆校验,如果接收到的第一私有命令与预先设定好的命令码不匹配,就会返回一个状态错误的信号,使得设备端退出私有命令,然后需要重新进入发送私有命令的流程。
而为了确保运行的准确性,图4是本申请第一实施例提供的图2中步骤S31的进一步步骤流程示意图,如图4所示,所述接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址的步骤之后,还包括步骤:
S33:判断所述用户数据区的所述特定地址是否存放有所述第二固件代码;
S34:若所述特定地址没有存放所述第二固件代码,则返回所述厂商数据区读取所述第一固件代码并载入到所述随机存取存储器中,运行所述第一固件代码;
S35:若所述特定地址存放有所述第二固件代码,则根据所述特定地址在所述用户数据区读取所述第二固件代码。
而其中,为了提高boot精度,如图5所示,所述根据所述特定地址在所述用户数据区读取所述第二固件代码的步骤包括:
S321:从所述用户数据区的所述特定地址读取固件代码文件;
S322:将读取的所述固件代码文件与预设的固件代码进行比对;
S323:确认所述固件代码文件为所述第二固件代码;
S324:将所述第二固件代码载入到所述随机存取存储器中,运行所述第二固件代码。
这样通过比对判断,可以避免在数据有错误的情况下还启动了额外boot程序,为后续的进程提前做好预先判断,具体可以通过读取后对读取的固件代码文件的前两个字节0x53和0x4d进行比对,确认读取内容为一份固件代码后,再将其载入覆写到随机存取存储器中,防止通过CMD56命令读出来的数据不是固件代码。
另外,如图6所示,在将第二固件代码载入运行,完成额外boot流程后,还可以通过对第一固件代码和第二固件代码进行测评,确定哪一个固件代码更好用,具体做法如下:
S36:分别对所述第一固件代码和所述第二固件代码进行测评;
S37:若所述第一固件代码的测评结果优于所述第二固件代码的测评结果,则将所述第二固件代码清理,保留所述第一固件代码;
S38:若所述第二固件代码的测评结果优于所述第一固件代码的测评结果,则将所述第二固件代码通过烧录到设备,将所述第一固件代码更换为所述第二固件代码。
第二实施例:
图7是本申请第二实施例提供的图1中步骤S3的进一步步骤流程示意图,如图7所示,作为本申请的第二实施例,本实施例与实施例一不同的是,所述第二固件代码存放在所述用户数据区的特定地址;所述用户数据区还包括默认地址,所述默认地址内存储有对应所述特定地址的boot标记;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
S31:接收预设命令,根据所述预设命令读取所述预设指令所携带的默认地址或基于默认设置调用所述默认地址;
S32:根据所述boot标记,从所述默认地址跳转到所述特定地址;
S33:从所述用户数据区的所述特定地址读取所述第二固件代码。
其中,将默认地址内存储有对应特定地址的boot标记,当检测到boot启动请求时,在默认地址搜索boot标记,这样可以直接跳到对应的第二固件代码所在的特定地址,读取第二固件代码并载入、运行,完成额外boot点程序启动,也可以节约流程。
第三实施例
图8是本申请第三实施例提供的图1中步骤S3的进一步步骤流程示意图,如图8所示,作为本申请的第三实施例,本实施例与第一、第二实施例不同的是,所述第二固件代码包括第一子固件代码和第二子固件代码,所述特定地址包括第一特定地址和第二特定地址,所述第一子固件代码存放在所述第一特定地址,所述第二子固件代码存放在所述第二特定地址,所述预设命令包括第一预设命令和第二预设命令;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
S31:接收第一预设命令,根据所述第一预设命令从所述第一特定地址读取所述第一子固件代码;或
S32:接收第二预设命令,根据所述第二预设命令从所述第二特定地址读取所述第二子固件代码;
所述将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码的步骤包括步骤:
S41:将所述第一子固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第一子固件代码;或
S42:将所述第二子固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二子固件代码。
即在用户数据区内还包括第三个固件代码,这样可以根据对应的预设命令启动其中一个固件代码则可以启动额外boot流程,也可以对应固件选择适合的固件代码进行载入和运行,更加方便使用。
第四实施例:
图10是本申请第四实施例提供的图1中步骤S3的进一步步骤流程示意图,如图10所示,作为本申请的第三实施例,本实施例与第一、第二和第三实施例不同的是,所述第二固件代码的数量为多个,多个所述第二固件代码存放在所述用户数据区的未知地址;
S3:所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
S31:接收所述预设命令,搜索所述用户数据区的未知地址,并列出所有的第二固件代码;
S32:选择其中一个所述第二固件代码,并将选择的所述第二固件代码载入到所述随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
这样可在所述用户数据区存储多份固件代码,且不用记住固件代码的逻辑地址或物理地址,让固件可自行搜索,其中可通过手动选择,研发人员自行判断搜索到的多份固件代码的优劣,手动选择后将该固件代码加载至随机存取存储器中,并运行该份固件代码。
需要说明的是,本方案中涉及到的各步骤的限定,在不影响具体方案实施的前提下,并不认定为对步骤先后顺序做出限定,写在前面的步骤可以是在先执行的,也可以是在后执行的,甚至也可以是同时执行的,只要能实施本方案,都应当视为属于本申请的保护范围。
需要说明的是,本申请的发明构思可以形成非常多的实施例,但是申请文件的篇幅有限,无法一一列出,因而,在不相冲突的前提下,以上描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例,各实施例或技术特征组合之后,将会增强原有的技术效果。
以上内容是结合具体的可选实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本申请的保护范围。
Claims (10)
1.一种通过额外boot点启动固件代码的方法,其特征在于,包括步骤:
接收设备上电启动命令,根据所述上电启动命令读取第一固件代码,所述第一固件代码存放于厂商数据区;
将所述第一固件代码载入到随机存取存储器中,并运行所述第一固件代码;
接收预设命令,根据所述预设命令读取所述第二固件代码,所述第二固件代码存放于用户数据区;
将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
2.根据权利要求1所述的通过额外boot点启动固件代码的方法,其特征在于,所述第二固件代码存放在所述用户数据区的特定地址;
所述接收预设命令,根据所述预设命令读取所述第二固件代码,包括步骤:
接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址;
根据所述特定地址在所述用户数据区读取所述第二固件代码。
3.根据权利要求1所述的通过额外boot点启动固件代码的方法,其特征在于,所述第二固件代码存放在所述用户数据区的特定地址;所述用户数据区还包括默认地址,所述默认地址内存储有对应所述特定地址的boot标记;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
接收所述预设命令,根据所述预设命令读取所述预设指令所携带的默认地址或基于默认设置调用所述默认地址;
根据所述boot标记,从所述默认地址跳转到所述特定地址;
从所述用户数据区的所述特定地址读取所述第二固件代码。
4.根据权利要求2所述的通过额外boot点启动固件代码的方法,其特征在于,所述接收预设命令,根据所述预设命令获取所述预设命令所携带的所述特定地址的步骤之后,还包括步骤:
判断所述用户数据区的所述特定地址是否存放有所述第二固件代码;
若所述特定地址没有存放所述第二固件代码,则返回所述厂商数据区读取所述第一固件代码并载入到所述随机存取存储器中,运行所述第一固件代码;
若所述特定地址存放有所述第二固件代码,则根据所述特定地址在所述用户数据区读取所述第二固件代码。
5.根据权利要求2所述的通过额外boot点启动固件代码的方法,其特征在于,所述接收所述预设命令时,根据所述预设命令获取所述预设命令所携带的所述特定地址的步骤中,包括步骤:
接收预设命令,设备端开启私有命令响应机制入口;
所述设备端配置所述私有命令响应机制的参数;
所述设备端重新开启所述私有命令响应机制入口;
主机端发送私有命令,所述私有命令响应机制对所述私有命令进行响应;
所述设备端停止eMMC的数据传输;
所述设备端读取所述预设命令所携带的所述特定地址。
6.根据权利要求5所述的通过额外boot点启动固件代码的方法,其特征在于,所述根据所述特定地址在所述用户数据区读取所述第二固件代码的步骤包括:
从所述用户数据区的所述特定地址读取固件代码文件;
将读取的所述固件代码文件与预设的固件代码进行比对;
确认所述固件代码文件为所述第二固件代码;
将所述第二固件代码载入到所述随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
7.根据权利要求1所述的通过额外boot点启动固件代码的方法,其特征在于,还包括步骤:
分别对所述第一固件代码和所述第二固件代码进行测评;
若所述第一固件代码的测评结果优于所述第二固件代码的测评结果,则将所述第二固件代码清理,保留所述第一固件代码;
若所述第二固件代码的测评结果优于所述第一固件代码的测评结果,则将所述第二固件代码通过烧录到设备,将所述第一固件代码更换为所述第二固件代码。
8.根据权利要求1所述的通过额外boot点启动固件代码的方法,其特征在于,所述第二固件代码包括第一子固件代码和第二子固件代码,所述特定地址包括第一特定地址和第二特定地址,所述第一子固件代码存放在所述第一特定地址,所述第二子固件代码存放在所述第二特定地址,所述预设命令包括第一预设命令和第二预设命令;
所述接收预设命令,根据所述预设命令读取所述第二固件代码,所述第二固件代码存放于用户数据区的步骤包括:
接收第一预设命令,根据所述第一预设命令从所述第一特定地址读取所述第一子固件代码;或
接收第二预设命令,根据所述第二预设命令从所述第二特定地址读取所述第二子固件代码;
所述将所述第二固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码的步骤包括步骤:
将所述第一子固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第一子固件代码;或
将所述第二子固件代码载入到随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二子固件代码。
9.根据权利要求1所述的通过额外boot点启动固件代码的方法,其特征在于,通过设置快捷指令或快捷按键,以调用启动所述预设命令。
10.根据权利要求1所述的通过额外boot点启动固件代码的方法,其特征在于,所述第二固件代码的数量为多个,多个所述第二固件代码存放在所述用户数据区的未知地址;
所述接收预设命令,根据所述预设命令读取所述第二固件代码的步骤包括:
接收所述预设命令,搜索所述用户数据区的未知地址,并列出所有的第二固件代码;
选择其中一个所述第二固件代码,并将选择的所述第二固件代码载入到所述随机存取存储器中,以替换所述随机存取存储器中的所述第一固件代码,并运行所述第二固件代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311682686.2A CN117637009A (zh) | 2023-12-07 | 2023-12-07 | 通过额外boot点启动固件代码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311682686.2A CN117637009A (zh) | 2023-12-07 | 2023-12-07 | 通过额外boot点启动固件代码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117637009A true CN117637009A (zh) | 2024-03-01 |
Family
ID=90033800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311682686.2A Pending CN117637009A (zh) | 2023-12-07 | 2023-12-07 | 通过额外boot点启动固件代码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117637009A (zh) |
-
2023
- 2023-12-07 CN CN202311682686.2A patent/CN117637009A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135891B (zh) | 可实现引导启动的系统及引导启动控制装置和方法 | |
KR930007680B1 (ko) | 개인용 컴퓨터 시스템에 bios를 적재하기 위한 장치 및 방법 | |
US8468342B2 (en) | Computer system and method for performing integrity detection on the same | |
US7908469B2 (en) | Method for executing power on self test on a computer system and updating SMBIOS information partially | |
CN102629206B (zh) | 一种嵌入式系统软件升级方法及系统 | |
CN106648463B (zh) | Nand Flash块管理方法和系统 | |
TWI386852B (zh) | 基本輸出入系統之切換系統及其切換方法 | |
US20100235617A1 (en) | System recovery method and embedded system with automatic recovery function | |
US20100268874A1 (en) | Method of configuring non-volatile memory for a hybrid disk drive | |
JPH0391838A (ja) | Bios保護装置及び方法、システム在中プログラム保護装置、並びにアクセス防止装置 | |
CN116048643B (zh) | 设备运行方法、系统、装置、存储介质及电子设备 | |
US20140046902A1 (en) | Method for a cloning process to enable cloning a larger System drive to a smaller system | |
CN103514065A (zh) | 具自动检测和恢复功能的电子装置及方法 | |
EP2172941A1 (en) | Computer apparatus | |
CN101493772A (zh) | 信息处理装置 | |
CN111158968A (zh) | Bios配置信息自检方法、装置及存储介质 | |
CN102122258A (zh) | 嵌入式设备文件系统受损的修复方法 | |
CN117637009A (zh) | 通过额外boot点启动固件代码的方法 | |
Kim et al. | Data acquisition from cell phone using logical approach | |
CN113505026B (zh) | 验证备份数据的方法、装置、设备及存储介质 | |
KR101120956B1 (ko) | 휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐 | |
CN114510375A (zh) | 一种Flash芯片数据区域动态共享系统及方法 | |
CN104751881B (zh) | 快闪存储器烧录方法 | |
CN113377421B (zh) | 一种软硬件版本信息的检测方法、装置、设备及介质 | |
CN112052125A (zh) | 一种操作系统内核的转储处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |