一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于虚拟网卡的双系统调试方法与流程

2021-10-24 07:19:00 来源:中国专利 TAG:调试 网卡 双系统 虚拟 方法


1.本发明涉及车载系统调试技术领域,尤其涉及一种基于虚拟网卡的双系统调试方法。


背景技术:

2.基于qnx hypervisor方案,用单个soc芯片集成实现ivi、cluster、hud、havc的智能座舱是车载影音娱乐系统下一代产品发展的趋势。
3.现有的虚拟化方案设计采用的调试终端共享技术,可实现host端qnx系统和guest端android系统的调试信息在同一个串口终端输出,但是只能够将调试命令输入到host端qnx系统,而无法对guest端的android系统进行软件调试。
4.现有的调试终端共享技术通过软件上配置两个控制台来解决guest端android系统无法调试的问题,即在启动过程中需要再创建个控制台,在这个新控制台里面启动guest端的android系统。同时,在每一次输入命令到另外一个操作系统时,都需要通过键盘上的组合键手动的切换控制台,才能将调试命令输入到对应的操作系统,这不仅使得启动流程更为复杂,还进一步加重了实际调试过程中用户操作的繁琐程度。
5.或者,给host端qnx系统和guest端android系统都分配一个单独的物理调试串口,虽然便于软件开发人员的系统调试,但是浪费了soc的一个物理串口。考虑到soc芯片的串口资源有限,不利于后续平台功能的扩展。
6.因此,现有技术有待进一步改进。


技术实现要素:

7.本发明提供一种基于虚拟网卡的双系统调试方法,解决了现有的双系统调试方法调试方式操作复杂繁琐,需额外占用soc的物理串口的技术问题。
8.为解决以上技术问题,本发明提供一种基于虚拟网卡的双系统调试方法,包括步骤:
9.s1、将第二操作系统的调试工具的源代码移植到第一操作系统中;
10.s2、根据所述第一操作系统、所述第二操作系统,创建对应的第一虚拟网卡、第二虚拟网卡,进而建立内部局域网;
11.s3、在所述调试工具上指定与所述第二虚拟网卡对应的调试端口号;
12.s4、解析获取到的调试指令的指令属性,并根据所述指令属性控制对应的第一操作系统或第二操作系统依据所述调试指令进行软件调试。
13.本基础方案为第一操作系统、第二操作系统,创建对应的第一虚拟网卡、第二虚拟网卡进而建立内部局域网,以实现网络共享;此时,第一操作系统根据预先移植的、对应于第二操作系统的调试工具,可通过内部局域网,实现对第二操作系统的远程控制;即,调试指令只需下发到第一操作系统中,当获取到第二操作系统的调试指令时,通过内部局域网将调试指令发生到第二操作系统即可进行软件调试。如此,第一操作系统、第二操作系统的
调试都是在第一操作系统的控制台实现的,因此只占用一个物理串口,而且不需要手动切换控制台,操作简单便捷,极大地提高软件调试的效率。
14.在进一步的实施方案中,所述步骤s1包括:
15.s11、基于第一操作系统的编译器,将所述第二操作系统的调试工具的源代码生成可执行程序;
16.s12、将所述可执行程序打包到所述第一操作系统的内核中。
17.本方案在进行网络共享建设之前,考虑到手动切换控制台的繁琐,预先将第二操作系统的调试工具移植到第一操作系统中,通过基于第一操作系统的编译器的编译将调试工具转化为第一操作系统可执行的可执行程序,为第一操作系统能够通过调试工具远程控制第二操作系统的调试工作做好准备。
18.在进一步的实施方案中,所述步骤s2包括:
19.s21、在第一操作系统启动过程中,创建对应的第一虚拟网卡;在第二操作系统启动过程中,创建对应的第二虚拟网卡;
20.s22、根据预设规则,为所述第一虚拟网卡、所述第二虚拟网卡配置对应的第一静态ip地址、第二静态ip地址;
21.s23、基于所述第一静态ip地址和所述第二静态ip地址,建立内部局域网。
22.在进一步的实施方案中,在所述步骤s22中,所述预设规则为:将所述第一虚拟网卡、所述第二虚拟网卡配置在相同网段。
23.本方案根据虚拟机的特性,通过对第一操作系统、第二操作系统创建对应的第一虚拟网卡、第二虚拟网卡,并将两者的静态ip地址配置在相同网段以建立内部局域网,因此不需要依赖物理网卡,利用相同的子网掩码即可使得第一操作系统、第二操作系统(第一虚拟网卡、第二虚拟网卡)之间可互相访问。
24.在进一步的实施方案中,所述步骤s3包括:
25.s31、在所述第二操作系统启动后,将所述第二操作系统的端口号设定为调试端口号,并启动所述第二操作系统的adbd守护进程;
26.s32、在所述调试工具启动时指定所述第二操作系统对应的所述第二静态ip地址、所述调试端口号,建立所述调试工具与所述第二操作系统的远程通信。
27.本方案以第二操作系统的端口号设定调试端口号,并在调试工具启动时指定对应的第二静态ip地址,在进行第一操作系统与第二操作系统的远程连接时,通过调试端口号、第二静态ip地址即可定位第二操作系统。
28.在进一步的实施方案中,所述步骤s4具体为:
29.所述第一操作系统的调试控制台获取调试指令并解析得到对应的指令属性,当判断所述指令属性归属于所述第一操作系统时,则将所述调试指令发送到所述第一操作系统,否则通过局域网将所述调试指令转发到所述第二操作系统。
30.本方案通过网络共享,使用第一操作系统端的调试控制台识别获取到的调试指令,根据其指令属性进行指令的分发,如此,以单控制台指令分发代替传统的双控制台手动切换,自动化程度更高。
31.在进一步的实施方案中,所述步骤s2还包括:
32.s24、检测所述第一操作系统、所述第二操作系统的网络连接是否正常,若是则进
入下一步,若否则重启所述第一操作系统和所述第二操作系统;
33.s25、检测所述第一虚拟网卡、所述第二虚拟网卡之间是否能正常访问,若是则判断局域网正常,若否则重启所述第一操作系统和所述第二操作系统。
34.在进一步的实施方案中,所述调试工具为adb调试工具。
35.本方案沿用传统的调试模式采用adb调试工具以完成对第二操作系统的调试工作,调试方式简单便捷。
36.在进一步的实施方案中,所述第一操作系统为qnx系统;所述第二操作系统为android系统。
附图说明
37.图1是本发明实施例提供的一种基于虚拟网卡的双系统调试方法的工作流程图。
具体实施方式
38.下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
39.本发明实施例提供的一种基于虚拟网卡的双系统调试方法,如图1所示,在本实施例中,包括步骤:
40.s1、将第二操作系统的调试工具的源代码移植到第一操作系统中,包括步骤s11~s12:
41.在本实施例中,第一操作系统为qnx系统;第二操作系统为android系统。
42.s11、基于第一操作系统的编译器,将第二操作系统的调试工具的源代码生成可执行程序;
43.s12、将可执行程序打包到第一操作系统的内核中。其中,内核为第一操作系统的程序空间(即非微内核mirco

kernel),其内还包括文件系统、screen组件、外设驱动。
44.本实施例在进行网络共享建设之前,考虑到手动切换控制台的繁琐,预先将第二操作系统的调试工具移植到第一操作系统中,通过基于第一操作系统的编译器的编译将调试工具转化为第一操作系统可执行的可执行程序,为第一操作系统能够通过调试工具远程控制第二操作系统的调试工作做好准备。
45.s2、根据第一操作系统、第二操作系统,创建对应的第一虚拟网卡、第二虚拟网卡,进而建立内部局域网,包括步骤s21~s25:
46.s21、在第一操作系统启动过程中,创建对应的第一虚拟网卡;在第二操作系统启动过程中,创建对应的第二虚拟网卡;
47.s22、根据预设规则,为第一虚拟网卡、第二虚拟网卡配置对应的第一静态ip地址、第二静态ip地址。
48.其中,第一静态ip地址、第二静态ip地址设置完成后,对应的第一操作系统、第二操作系统将检测该静态ip是否设置成功,若未设置成功,则再次进行设置。
49.在本实施例中,预设规则为:将第一虚拟网卡、第二虚拟网卡配置在相同网段。例如第一静态ip地址为172.16.0.100、第二静态ip地址为172.16.0.99,两者的子网掩码均为
255.255.0.0,处于同一个ip网络内。
50.s23、基于第一静态ip地址和第二静态ip地址,建立内部局域网。
51.s24、检测第一操作系统、第二操作系统的网络连接是否正常,若是则进入下一步,若否则重启第一操作系统和第二操作系统;
52.s25、检测第一虚拟网卡、第二虚拟网卡之间是否能正常访问,若是则判断局域网正常,若否则重启第一操作系统和第二操作系统。
53.本实施例根据虚拟机的特性,通过对第一操作系统、第二操作系统创建对应的第一虚拟网卡、第二虚拟网卡,并将两者的静态ip地址配置在相同网段以建立内部局域网,因此不需要依赖物理网卡,利用相同的子网掩码即可使得第一操作系统、第二操作系统(第一虚拟网卡、第二虚拟网卡)之间可互相访问。
54.s3、在调试工具上指定与第二虚拟网卡对应的调试端口号,包括步骤s31~s32:
55.s31、在第二操作系统启动后,将第二操作系统的端口号设定为调试端口号,并启动第二操作系统的adbd守护进程;
56.s32、在第一操作系统中启动调试工具,并在调试工具启动时指定第二操作系统对应的第二静态ip地址、调试端口号,建立调试工具与第二操作系统的远程通信。
57.本实施例以第二操作系统的端口号设定调试端口号,并在调试工具启动时指定对应的第二静态ip地址,在进行第一操作系统与第二操作系统的远程连接时,通过调试端口号、第二静态ip地址即可定位第二操作系统。
58.s4、解析获取到的调试指令的指令属性,并根据指令属性控制对应的第一操作系统或第二操作系统依据调试指令进行软件调试,具体为:
59.第一操作系统的调试控制台获取调试指令并解析得到对应的指令属性,当判断指令属性归属于第一操作系统时,则将调试指令发送到第一操作系统,否则通过局域网将调试指令转发到第二操作系统。
60.在本实施例中,指令属性为调试指令的开头分类,例如以pidin、top等开头的调试指令归属于qnx系统(第一操作系统);以adb shell pidin、adb shell top等开头的调试指令归属于android系统(第二操作系统)。
61.当qnx系统的调试控制台接收到以pidin、top开头的调试指令时,则将调试指令发送给host端qnx系统;若接收到以adb shell开头的调试指令,则通过局域网基于tcp/ip传输协议发送给guest端android系统,同理guest端相关的反馈数据也是通过局域网返回到host端。
62.本实施例通过网络共享,使用第一操作系统端的调试控制台识别获取到的调试指令,根据其指令属性进行指令的分发,如此,以单控制台指令分发代替传统的双控制台手动切换,自动化程度更高。
63.在本实施例中,调试工具为adb调试工具。
64.本实施例沿用传统的调试模式采用adb调试工具以完成对第二操作系统的调试工作,调试方式简单便捷。
65.本发明实施例为第一操作系统(qnx系统)、第二操作系统(android系统),创建对应的第一虚拟网卡、第二虚拟网卡进而建立内部局域网,以实现网络共享;此时,第一操作系统根据预先移植的、对应于第二操作系统的调试工具,可通过内部局域网,实现对第二操
作系统的远程控制;即,调试指令只需下发到第一操作系统中,当获取到第二操作系统的调试指令时,通过内部局域网将调试指令发生到第二操作系统即可进行软件调试。如此,第一操作系统、第二操作系统的调试都是在第一操作系统的控制台实现的,因此只占用一个物理串口,而且不需要手动切换控制台,操作简单便捷,极大地提高软件调试的效率。
66.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜