本发明涉及计算机底层操作以及嵌入式系统,特别涉及一种多样化可配置嵌入式系统引导加载方法、装置及存储介质。
背景技术:
1、引导加载器是嵌入式系统启动和运行的关键组成部分。在系统启动时,引导加载器负责初始化硬件设备,如处理器、内存和外设等,确保系统处于正常工作状态。此外,它还需从存储设备中读取操作系统镜像,将其加载到内存中,并启动目标操作系统。
2、其次,高效可配置的引导加载器能够提供灵活的操作系统选项。在某些情况下,嵌入式系统可能需要支持多个操作系统或不同的启动模式。引导加载器通过提供启动选项,允许用户根据需要选择不同的操作系统或启动模式,从而满足多样化的应用需求。
3、再者,引导加载器还具备固件升级机制,这对于嵌入式系统的维护和升级至关重要。通过引导加载器,系统可以方便地更新和升级固件,以支持新的功能、修复漏洞或提高系统性能。这种机制确保了嵌入式系统的持续演进和适应性。
4、此外,引导加载器在嵌入式系统的完整性检查中也扮演着重要角色。它管理系统映像,并检查和确保软件更新的安全性。这对于防止恶意软件攻击和保持系统稳定性具有重要意义。
5、最后,高效可配置的引导加载器有助于降低嵌入式系统的开发和维护成本。通过优化系统启动和运行过程,减少资源消耗和故障率,提高系统的可靠性和稳定性。同时,灵活的配置选项使得开发人员能够更轻松地定制和优化系统,以满足特定的应用需求。
6、嵌入式系统使用的引导加载器传统上通常分为两个阶段:低级语言阶段和高级语言阶段。低级语言阶段通常使用汇编语言编写。这一阶段主要利用汇编语言的指令亲和性完成一些底层的硬件初始化工作,其中最重要的任务就是初始化系统内存并建立堆栈指针,以求尽快进入高级语言阶段。第二阶段通常使用高级语言完成。此阶段的引导加载器可以使用高级的数据结构和算法来驱动更复杂的任务。这一阶段主要负责进一步的完整硬件初始化、系统环境的配置、设备驱动的加载以及操作系统的加载和启动等。
7、嵌入式系统因为面积受限,往往面临着布线复杂性和信号干扰等问题。布线复杂性主要源于嵌入式系统中大量的信号传输线路。这些线路不仅数量众多,而且往往密集排布,容易受到外部电磁场和其他因素的干扰。信号干扰可能来自于系统内部的其他组件,如高频电路或电源,也可能来自于外部环境,如雷电、无线电波等。所有这些因素进行综合和叠加,导致板上内存实际需要的访问时序并不能完全和仿真结果的理想时序一致,通常需要进一步调整;此外硬件开发人员也需要一套面向测试的工具(dft,design for test),对整个内存访问空间和基本外部接口进行压力测试,在理想情况下整个测试应该完全独立于被测对象特别是内存本身。鉴于内存的配置环节,特别是时序配置在传统系统中通常在汇编语言阶段完成,汇编语言天然的对处理器体系结构的耦合特性和指令集复杂性决定了无法在这一阶段提供一个可移植、可编程接口,以进行时序调整、压力测试等复杂的硬件调试功能。
8、传统嵌入式引导加载器的功能相对单一,主要集中在初始化硬件、引导操作系统或应用程序启动等方面。然而,随着技术的发展和嵌入式系统复杂性的增加,支持更多高级功能和特性已经迫在眉睫。基于现有差异,将功能从操作系统直接移植到引导加载器通常需要进行大量的修改和重构工作,包括重新设计程序结构、调整编程接口、优化资源使用以及加强安全性等。如果需要的功能过于复杂或依赖于操作系统提供的特定服务,则无法直接移植到引导加载器中。
9、此外,传统嵌入式系统启动速度较慢,带来了用户体验不佳、系统效率低下、应用场景受限、维护和升级困难等一系列问题;在许多嵌入式应用中,特别是那些对实时性要求极高的场景(如工业自动化、医疗设备、航空航天等),系统的快速启动和快速响应速度至关重要。启动速度慢意味着从设备开机到能够执行关键任务之间存在较长的延迟,这可能影响整个系统的实时性能。
技术实现思路
1、有鉴于此,本发明的目的之一是提供一种面向硬件调试的嵌入式系统引导加载方法,用于解决传统引导加载器面临的硬件调试手段缺乏、依赖系统内存运行的问题。
2、本发明的目的之一是通过以下技术方案实现的:
3、该种多样化可配置嵌入式系统引导加载方法,包括以下步骤:
4、第一阶段:对硬件进行初始化和环境设置,借助微处理器缓存执行第一次重定位并建立高级语言的运行环境,以支持在系统内存不可用的上下文中运行硬件调试用户界面;
5、第二阶段:执行硬件调试动作并将经调试完成后的参数固化到闪存参数区,进行系统内存初始化和第二次重定位,将整体运行环境搬移到主内存;
6、第三阶段:多功能模式下启动迷你操作系统内核并将其作为本发明引导加载器的一部分,以在启动阶段支持各种复杂的高级特性;快速启动模式下将直接跳过本步骤;
7、第四阶段:加载和启动目标操作系统;和多功能模式对目标系统的正常加载流程不同,快速启动模式将执行特殊优化流程并以最短时间加载嵌入式实时应用程序。
8、进一步,所述第一阶段中,将处理器的数据缓存执行锁定动作并映射到处理器可访问的内存地址,以提供一个和主储存器无关的可供高级语言程序运行的基本环境;使用重定位技术将第一阶段代码运行所需的数据段从闪存搬移到数据缓存的对应位置,定位数据缓存中的未初始化数据段bss的地址并执行清零操作,最后在数据缓存的顶部建立堆栈指针。
9、进一步,第一阶段具体包括以下步骤:
10、步骤s11:启动嵌入式系统,微处理器开始装载固化在可直接执行闪存上预定地址的复位向量;
11、步骤s12:加载第一阶段初始化程序,完成对处理器的片上缓存的初始化;片上缓存包括指令缓存和数据缓存;
12、步骤s13:配置处理器内存管理控制单元,把数据缓存线性映射到处理器的可访问空间并执行锁定操作以禁止换入和换出动作。经过以上步骤处理后的数据缓存,此时已经等同于挂接在处理器内部的一块高速静态随机读写存储器;
13、步骤s14:将数据段从闪存搬移到数据缓存地址空间,对该空间的bss段执行清零操作(即第一次重定位),并在数据缓存的顶部建立堆栈指针;将程序指针跳转到闪存中第二阶段地址,执行第二阶段的代码。
14、进一步,第二阶段具体步骤包括:
15、所述第二阶段中,执行以下具体步骤:
16、步骤s21:基于缓存构建不依赖于系统主存储器的硬件调试用户界面;
17、步骤s22:用调试得到的内存参数初始化系统内存;
18、步骤s23:将数据段、bss段分别从缓存和闪存搬移到系统内存,在内存最高地址处重新建立堆栈指针,即第二次重定位;
19、步骤s24:将代码段从闪存搬移到系统内存;
20、步骤s25:解除针对数据缓存的锁定和地址空间映射。
21、进一步,首先需要根据处理器的地址访问空间规格,制定引导加载器在每个阶段的内存布局以及数据传递规则;
22、进一步,所述第二阶段中将对于数据缓存执行锁定操作并禁止处理器在缓存中访问数据缺失时触发缺页异常以及后续和系统内存之间的数据交换动作,此过程依赖于处理器提供的操作接口。
23、进一步,在第一阶段之前,首先需要根据处理器的地址访问规格,制定引导加载器在每个阶段的内存布局以及数据传递规则。
24、进一步,所述第二阶段中,对于数据缓存执行锁定操作,禁止处理器在缓存访问数据缺失时触发缺页异常以及和系统内存之间的数据交换动作。
25、进一步,所述迷你版本基于完整操作系统进行精简,包括最小化的操作系统的内核和根文件系统,以在支持各种高级特性的同时满足最小化启动时间要求。
26、本发明的目的之二是提供一种多样化可配置嵌入式系统引导加载装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前所述的方法。
27、本发明的目的之三是提供一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如前所述的方法。
28、本发明提供了灵活的引导加载方式,第二阶段完成后,将根据预先设定的启动模式决定当前处于多功能启动模式还是快速启动模式,既能满足现代化嵌入式系统对于引导加载器的多功能需求,又能满足传统嵌入式实时系统以及特定应用场景对快速启动的要求。
29、如果当前处于多功能启动模式,将跳转到一个精简的迷你操作系统,该操作系统将作为本引导加载器的一个独立阶段,用于提供传统加载器不具备的一系列高级特性。传统引导加载器由于代码量的限制,无论是在支持的新的硬件设备上,还是在通信协议、网络协议等软件功能上,和真正的操作系统相比有明显的差距。为此,本发明引入了一个迷你操作系统并将其作为引导加载器的一部分。本发明所述的迷你操作系统包括一个精简的操作系统内核和一个精简的根文件系统。
30、如果当前处于快速启动模式,将直接以优化启动的方式加载目标操作系统内核。在此模式下,内核将在第二阶段完成cpu子系统(pll,ddr)初始化后立即被加载;同时引导加载器将通过参数传递的方式将内核设定为快速启动模式,由此模式引导的操作系统内核将执行一系列启动优化动作,如关闭命令行输出打印、加载最小化驱动程序集和系统服务、通过预设值跳过时间复杂度开销较大的动作如loops_per_jeffy校准、关闭内核ip自动配置等,从而确保以最小时间代价完成对嵌入式实时应用的加载以最快对实时事件进行响应。
31、本发明的有益效果:
32、本发明的方法解决了传统嵌入式系统引导加载器完全基于系统主内存运行的缺陷,基于数据缓存提供了一个与系统主储存器无关的调试阶段和调试接口,可以完成对主存储器和其他片上/板上设备的诊断和测试工作;本发明创新性地将迷你系统引入了引导加载阶段,可以在系统启动的早期阶段提供传统系统不具备的丰富功能;本发明能通过配置满足现代化非实时系统和传统实时系统两种应用场景对引导加载器的不同需求,具有广泛的适用范围和良好的应用前景。
33、本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和前述的权利要求书来实现和获得。