一种基于Hypervisor的调测外设实现方法及系统与流程

文档序号:28600135发布日期:2022-01-22 11:07阅读:162来源:国知局
一种基于Hypervisor的调测外设实现方法及系统与流程
一种基于hypervisor的调测外设实现方法及系统
技术领域
1.本发明涉及计算机技术领域,具体涉及一种基于hypervisor的调测外设实现方法及系统。


背景技术:

2.hypervisor叫做虚拟机监视器(virtual machine monitor),是一种运行其他操作系统的操作系统。hypervisor运行在物理硬件和操作系统之间的中间层操作系统,可允许多个操作系统和应用共享一套基础物理硬件,运行在hypervisor之上的操作系统称之为客户机操作系统(guest os)。
3.hypervisor之前一直被用于服务器领域,但是随着嵌入式系统的发展,其被认为是嵌入式系统的下一个前沿领域,以解决日益增加的复杂应用场景对嵌入式系统有限资源利用的决策难。hypervisor提供了在同一多核处理器上承载异构操作系统的灵活性,而它又实现了良好的可靠性和故障控制机制,以保证关键任务、硬实时应用程序和一般用途、不受信任的用户应用程序之间的安全分离。比如当前汽车的智能座舱,利用hypervisor技术同时在一块单板上实现全液晶仪表显示和中控娱乐系统显示,其中全液晶仪表运行在选用linux或qnx的guest os上,中控娱乐系统运行在选用android的guest os上。
4.目前通用的guest os都会在操作系统本身提供调测外设方法,比如通过printk打印调测信息、通过proc文件系统实现linux内核空间和用户空间之间的通信、通过sysfs向用户导出内核数据结构以及它们的属性等。工程师可以通过这些调试信息对guest os外设进行调测。
5.基于hypervisor的多系统环境,可以通过进入guest os调测外设,但在实际调测外设过程中会出现外设驱动编写逻辑等问题导致系统异常奔溃,无法进入guest os查看外设状态和调测信息。
6.目前guest os的大部分设备驱动没有考虑虚拟化场景。在非虚拟化场景下,异常重启会系统会重新上电。在基于hypervisor的多系统环境下,guest os异常重启,hypevisor不会使整个系统重新上电。由于guest os外设没有重新上电,重启前后对外设的操作会产生冲突导致外设无法正常工作。在正常重启过程中,guest os外设驱动会对外设执行shutdown操作,系统重启之后,外设可以正常工作。因此在guest os异常重启,hypervisor需要执行guest os外设驱动的shutdown操作。由于不同外设的shutdown操作完全不同,且代码繁杂,精简到外设读写寄存器非常困难。
7.因此,现阶段急需要提供一种基于hypervisor的调测外设实现方案,来解决上述问题。


技术实现要素:

8.本发明的目的在于:提供一种基于hypervisor的调测外设实现方法,在hypervisor上运行时,通过截获guest os透传外设的寄存器,实现对guest os外设寄存器
操作的记录,方便对guest os调测外设。
9.为了达到上述目的,本发明解决技术问题所采用的技术方案如下:
10.一种基于hypervisor的调测外设实现方法,其包括以下步骤:
11.s1:hypervisor根据用户配置创建若干个guest os;
12.s2:hypervisor解析guest os资源文件;
13.s3:hypervisor启动guest os,进入guest os运行并执行相应的业务;而且,guest os对调测外设产生寄存器读写操作;
14.s4:hypervisor判断调测外设开关状态;其中,若开关状态关闭,则结束,否则继续执行步骤s5;
15.s5:判断当前操作的外设寄存器是否在所述guest os资源文件指定范围内;若不在所述指定范围内,则结束,否则由hypervisor截获所述guest os对外设寄存器的操作,并继续执行步骤s6;
16.s6:hypervisor打印guest os对外设寄存器的操作;其中,解析guest os对寄存器的操作,获取对调测外设的调测信息,并将调测信息输出到日志信息或者打印到串口。
17.根据一种具体的实施方式,本发明基于hypervisor的嵌入式多系统升级方法的步骤s6中,hypervisor打印guest os对外设寄存器的操作的步骤包括:
18.s601:hypervisor获取对外设操的guest os id;
19.s602:hypervisor获取guest os外设名;
20.s603:hypervisor打印guest os对外设寄存器的操作,打印格式包括:《guest os id》《guest os外设名》:write reg:0x0,val:0x0;
21.基于同一发明构思,本发明还提供一种基于hypervisor的调测外设实现系统,其包括:
22.guest os资源文件解析模块,用于解析guest os资源文件指定调测外设和截获的寄存器操作;
23.外设寄存器截获模块,用于通过解析guest os资源文件,截获对应的guest os对寄存器的操作;
24.调测信息打印模块,用于解析guest os对寄存器的操作,获取对调测外设的调测信息,并将调测信息输出到日志信息或者打印到串口。
25.综上所述,与现有技术相比,本发明的有益效果是:
26.本发明基于hypervisor的嵌入式多系统升级方法,该方法首先hypervisor根据用户配置创建若干个guest os;接着,hypervisor解析guest os资源文件;再接着,hypervisor启动guest os,进入guest os运行并执行相应的业务;guest os对调测外设产生寄存器读写操作;然后,hypervisor判断调测外设开关状态;再然后,hypervisor截获资源文件配置的guest os外设寄存器;最后,hypervisor打印guest os对外设寄存器的操作;因此,本发明在调测外设过程中不依赖于guest os正常启动,能够更加直观、方便看到guest os对外设寄存器的操作过程。
附图说明:
27.图1显示为本发明的流程示意图。
28.图2显示为本发明的数据流向示意图。
29.图3显示为本发明的结构示意图。
具体实施方式
30.下面结合附图及具体实施例对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
31.如图1和图2所示,本发明基于hypervisor的调测外设实现方法,其包括以下步骤:
32.s1:hypervisor根据用户配置创建若干个guest os;
33.s2:hypervisor解析guest os资源文件;
34.s3:hypervisor启动guest os,进入guest os运行并执行相应的业务;而且,guest os对调测外设产生寄存器读写操作;
35.s4:hypervisor判断调测外设开关状态;
36.s5:hypervisor截获所述guest os资源文件配置的guest os对外设寄存器的操作记录;
37.s6:hypervisor打印guest os对外设寄存器的操作。其中,hypervisor通过解析所述guest os对外设寄存器的操作,获取调测外设的调测信息,,并将调测信息输出到日志信息或者打印到串口。
38.而且,本发明基于hypervisor的嵌入式多系统升级方法的步骤s6中,hypervisor打印guest os对外设寄存器的操作的步骤包括:
39.s601:hypervisor获取对外设操的guest os id;
40.s602:hypervisor获取guest os外设名;
41.s603:hypervisor打印guest os对外设寄存器的操作,打印格式包括:《guest os id》《guest os外设名》:write reg:0x0,val:0x0。
42.基于同一发明构思,本发明还提供一种基于hypervisor的调测外设实现系统,如图3所示,该系统包括:
43.guest os资源文件解析模块,用于解析guest os资源文件指定调测外设和截获的寄存器操作;
44.外设寄存器截获模块,用于通过解析guest os资源文件,截获对应的guest os对寄存器的操作;
45.调测信息打印模块,用于解析guest os对寄存器的操作,获取对调测外设的调测信息,并将调测信息输出到日志信息或者打印到串口。
46.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1