首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 软件套件 / 软件组件 / 基于天熠嵌入式操作系统的调试系统

基于天熠嵌入式操作系统的调试系统

阅读:0发布:2020-09-30

专利汇可以提供基于天熠嵌入式操作系统的调试系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于天熠嵌入式 操作系统 的调试系统,其中,包括:宿主机和目标机;宿主机包括:GDB调试器;目标机包括:天熠嵌入式操作系统、调试代理组件以及被调试模 块 ;GDB调试器,用于通过GDB命令行或集成了GDB的图形化开发环境向目标机的调试代理组件发送调试命令;天熠嵌入式操作系统,用于进行目标机系统管理;被调试模块用于存储被调试 软件 ,被调试软件运行于天熠嵌入式操作系统之上,与天熠嵌入式操作系统和调试代理组件链接生成能够在目标机环境中运行的可执行镜像文件;调试代理组件,运行于天熠嵌入式操作系统之上,用于接收和处理宿主机的GDB调试器的命令信息,控制被调试软件的运行。,下面是基于天熠嵌入式操作系统的调试系统专利的具体信息内容。

1.一种基于天熠嵌入式操作系统的调试系统,其特征在于,包括:宿主机和目标机;
宿主机包括:GDB调试器;目标机包括:天熠嵌入式操作系统、调试代理组件以及被调试模
GDB调试器,用于通过GDB命令行或集成了GDB的图形化开发环境向目标机的调试代理组件发送调试命令;
天熠嵌入式操作系统,用于进行目标机系统管理;被调试模块用于存储被调试软件,被调试软件运行于天熠嵌入式操作系统之上,与天熠嵌入式操作系统和调试代理组件链接生成能够在目标机环境中运行的可执行镜像文件;调试代理组件,运行于天熠嵌入式操作系统之上,用于接收和处理宿主机的GDB调试器的命令信息,控制被调试软件的运行。
2.如权利要求1所述的基于天熠嵌入式操作系统的调试系统,其特征在于,调试代理组件包括:数据收发模块和断点异常处理模块;数据收发模块用于支持字符数据的接收和发送;断点异常处理模块用于当被调试模块的断点异常出现时,通过数据收发模块接收GDB调试器的命令,对被调试模块的断点异常出现位置进行调试,处理完调试命令后,再通过数据收发模块将响应信息反馈给GDB调试器,以完成命令和数据的交互和传输。
3.如权利要求1所述的基于天熠嵌入式操作系统的调试系统,其特征在于,断点异常处理模块包括断点管理模块、RSP协议解析模块和命令处理模块;
该断点管理模块用于恢复被断点指令替换掉的原指令,使得被调试程序在继续运行时避免循环陷入同一个断点异常,以及当被调试模块的断点异常出现时,记录断点异常出现的位置;
该RSP协议解析模块用于对GDB远程调试命令进行解包、校验和组包,并将正确命令传递给端点异常处理模块;
该命令处理模块用于对RSP协议解析模块传送的命令进行处理和响应。
4.如权利要求1所述的基于天熠嵌入式操作系统的调试系统,其特征在于,宿主机还包括:Linux操作系统模块,包含Linux操作系统或运行了Windows操作系统同时安装有Cygwin、MinGW或虚拟机的类Linux系统。
5.如权利要求1所述的基于天熠嵌入式操作系统的调试系统,其特征在于,宿主机还包括:硬件模块,用于提供宿主机的通信接口和硬件平台。

说明书全文

基于天熠嵌入式操作系统的调试系统

技术领域

[0001] 本发明属于计算机嵌入式软件领域,具体涉及基于天熠嵌入式操作系统的调试系统。

背景技术

[0002] 天熠嵌入式操作系统是基于“九五”、“十五”的技术成果自行研制,具有完全自主知识产权的嵌入式实时操作系统,支持对称多处理器(SMP)平台,适用于多种目标硬件环境(x86、mips、arm、dsp等),支持主流国产处理器。天熠嵌入式操作系统采用微内核技术开发,具有强实时、高可靠、可裁剪和可伸缩等特性,并且具有动态加载机制,应用编程接口符合GJB7714-2012《军用嵌入式实时操作系统应用编程接》规范,并提供了VxWorks兼容层,在航空航天和军工领域有着极为广泛的应用。
[0003] 调试是软件开发过程中必不可少的环节,主要进行语法规则和逻辑结构正确性验证。语法规则的检查一般在代码编译阶段完成,而逻辑结构的正确性检查则需要调试工具的动态辅助,通过在程序中设置断点,打印跟踪信息等进行逻辑验证。
[0004] 嵌入式操作系统与通用桌面操作系统在调试环境上存在明显的差别。通用桌面系统的调试器和被调试程序都运行于同一个桌面系统,调试器通过桌面操作系统专提供的调试器控制和访问被调试程序。不同于桌面操作系统,嵌入式操作系统采用远程调试的方式,即调试器运行于通用桌面操作系统,被调试程序运行于目标机上的嵌入式操作系统,调试器通过目标机端的调试代理控制和访问运行在目标机系统上的被调试程序。
[0005] 目前对调试代理的研究大多基于vxworks、linux和rtems等系统,尚没有对国产天熠嵌入式操作系统调试系统的研究,大部分应用该系统的开发人员只能采用串口打印输出的方式进行应用调试。这对应用程序开发人员来说,大大增加了开发周期和开发成本,降低了系统开发速度和开发质量

发明内容

[0006] 本发明的目的在于提供一种应用于密封金属柜中的RFID读写器外置天线,用于解决上述现有技术的问题。
[0007] 本发明一种基于天熠嵌入式操作系统的调试系统,其中,包括:宿主机和目标机;宿主机包括:GDB调试器;目标机包括:天熠嵌入式操作系统、调试代理组件以及被调试模;GDB调试器,用于通过GDB命令行或集成了GDB的图形化开发环境向目标机的调试代理组件发送调试命令;天熠嵌入式操作系统,用于进行目标机系统管理;被调试模块用于存储被调试软件,被调试软件运行于天熠嵌入式操作系统之上,与天熠嵌入式操作系统和调试代理组件链接生成能够在目标机环境中运行的可执行镜像文件;调试代理组件,运行于天熠嵌入式操作系统之上,用于接收和处理宿主机的GDB调试器的命令信息,控制被调试软件的运行。
[0008] 根据本发明的基于天熠嵌入式操作系统的调试系统的一实施例,其中,调试代理组件包括:数据收发模块和断点异常处理模块;数据收发模块用于支持字符数据的接收和发送;断点异常处理模块用于当被调试模块的断点异常出现时,通过数据收发模块接收GDB调试器的命令,对被调试模块的断点异常出现位置进行调试,处理完调试命令后,再通过数据收发模块将响应信息反馈给GDB调试器,以完成命令和数据的交互和传输。
[0009] 根据本发明的基于天熠嵌入式操作系统的调试系统的一实施例,其中,断点异常处理模块包括断点管理模块、RSP协议解析模块和命令处理模块;该断点管理模块用于恢复被断点指令替换掉的原指令,使得被调试程序在继续运行时避免循环陷入同一个断点异常,以及当被调试模块的断点异常出现时,记录断点异常出现的位置;该RSP协议解析模块用于对GDB远程调试命令进行解包、校验和组包,并将正确命令传递给端点异常处理模块;该命令处理模块用于对RSP协议解析模块传送的命令进行处理和响应。
[0010] 根据本发明的基于天熠嵌入式操作系统的调试系统的一实施例,其中,宿主机还包括:Linux操作系统模块,包含Linux操作系统或运行了Windows操作系统同时安装有Cygwin、MinGW或虚拟机的类Linux系统。
[0011] 根据本发明的基于天熠嵌入式操作系统的调试系统的一实施例,其中,宿主机还包括:硬件模块,用于提供宿主机的通信接口和硬件平台。
[0012] 鉴于天熠操作系统调试工具不完备的情况,本发明提出一种基于天熠嵌入式操作系统的调试系统,通过搭建基于天熠操作系统的调试系统,为基于天熠嵌入式操作系统开发的用户提供了一种便捷有效的调试手段,用户能够使用单步、步进、继续运行、查看内存等常用调试指令控制远程程序的运行,从而能够像调试桌面操作系统的应用程序一样调试天熠嵌入式操作系统上的应用程序。附图说明
[0013] 图1所示为本发明基于天熠嵌入式操作系统的调试系统的总体层次结构图;
[0014] 图2所示为调试代理组件的模块图;
[0015] 图3所示为断点异常处理模块的执行流程图
[0016] 图4所示为基于天熠嵌入式操作系统的调试系统的调试过程的信息交互示意图。

具体实施方式

[0017] 为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0018] 图1所示为本发明基于天熠嵌入式操作系统的调试系统的总体层次结构图,如图1所示,本发明的基于天熠嵌入式操作系统的调试系统包括宿主机以及目标机。其中宿主机包括:硬件模块1,类Linux操作系统模块2,GDB调试器3。目标机包括:硬件模块4,天熠嵌入式操作系统5,调试代理组件6以及被调试模块7。
[0019] 参考图1,Linux操作系统模块2包含Linux操作系统或运行了Windows操作系统同时安装有Cygwin、MinGW或虚拟机等类Linux系统,宿主机运行Linux操作系统模块2。运行于宿主机类Linux系统上的GDB(GNU Debugger)调试器3,用于通过GDB命令行或集成了GDB的图形化开发环境向目标机端的调试代理组件6发送调试命令。硬件模块1用于提供宿主机的通信接口和硬件平台。
[0020] 参考图1,特定CPU架构的目标机,作为运行天熠嵌入式操作系统及应用程序的硬件平台。天熠嵌入式操作系统5用于进行目标机系统管理,也即天熠应用程序的底层系统支撑。被调试模块7存储被调试程序,被调试程序运行于天熠嵌入式操作系统5之上,为等待状态跟踪和逻辑验证的嵌入式应用,与天熠嵌入式操作系统5和调试代理组件6链接生成能够在目标机环境中运行的可执行镜像文件。调试代理组件6,运行于天熠嵌入式操作系统5之上,通过接收和处理宿主机的GDB调试器3的命令信息,控制被调试程序的运行。
[0021] 如图1所示,GDB调试器2,用于与目标机端调试代理通信,向目标机端调试代理组件6发送远程调试命令。为天熠嵌入式操作系统4,完成目标平台的硬件初始化、中断/异常管理、设备管理、多任务调度等功能,作为系统支撑软件提供应用程序运行库。
[0022] 如图1所示,宿主机和目标机间的远程串行通信协议8(RSP),是宿主机和目标机的逻辑连接。GDB调试器3与调试代理组件6之间的调试命令和反馈信息遵从RSP协议。为宿主机和目标机之间通信的物理接口9,可以是网络或RS232串口,是调试命令往返的物理通路。
[0023] 如图1所示,本发明基于天熠嵌入式操作系统的调试系统的具体工作过程包括:
[0024] 宿主机环境准备包括:
[0025] (1)启动有类Linux操作系统2环境的宿主机;
[0026] (2)在有类Linux系统2环境的宿主机上设置指定目标平台架构的GDB调试器3。
[0027] 目标机准备工作包括:
[0028] 嵌入式系统远程调试,不仅需要在宿主机端设置对应目标平台架构的GDB调试器3,还需要在目标机端实现调试代理组件6。GDB调试器3运行于宿主机上,由用户启动运行并发送调试命令。GDB调试器3通过与目标机端的调试代理组件6交互,达到远程控制天熠嵌入式操作系统上应用的状态跟踪和逻辑验证的效果。
[0029] 图2所示为调试代理组件的模块图,如图1以及图2所示,基于天熠嵌入式操作系统实现的调试代理组件6包括:初始化模块61、数据收发模块62和断点异常处理模块63,为初始化模块1首先调用串口或网络的初始化操作完成通信路径的初始化,并将数据发送和数据接收接口注册到系统中,这样调试代理组件1就能够建立与GDB调试器3的通信了。初始化模块61调用了天熠嵌入式操作系统的异常挂接用户编程接口,将断点异常处理模块62挂接到系统中,刷新系统的异常向量表;在初始化模块61退出之前,还要调用异常产生指令,手动触发一次断点异常,使断点异常处理模块62获得调度,从而可以和GDB调试器3交互。
[0030] 如图1以及图2所示,数据收发模块63支持字符数据的接收和发送。断点异常处理模块62通过数据收发模块63接收宿主机端GDB调试器3从串口或网络发送的命令,处理完调试命令后,再通过数据收发模块63将响应信息反馈给GDB调试器3,从而完成了命令和数据的交互和传输。
[0031] 如图1以及图2所示,当执行到断点指令时,就会触发断点异常处理模块62的执行。此外,由于在初始化模块61结束之前调用了断点指令,因此当初始化模块61执行完成后也会自触发断点异常处理模块63的运行,此时用户就可以在GDB命令行下或通过菜单驱动方式发送远程连接命令、调试命令、查询被调试程序状态信息等命令。
[0032] 如图1以及图2所示,断点异常处理模块62包括断点管理模块621、RSP协议解析模块622和命令处理模块623。
[0033] 图3所示为断点异常处理模块的执行流程图,如图1-图3所示,断点异常处理模块的执行流程包括:
[0034] (a)断点管理模块621恢复被断点指令替换掉的原指令,使得被调试程序在继续运行时避免循环陷入同一个断点异常。
[0035] 断点管理模块621采用数组表示被调试程序的断点信息,每个数组元素表示一个断点信息,断点信息数据结构如下:
[0036] struct gdb_bkpt{
[0037] unsigned long bpt_addr;
[0038] unsigned char saved_instr[BREAK_INSTR_SIZE];
[0039] enum gdb_bpstate state;
[0040] };
[0041] 其中,bpt_addr表示被调试程序中的断点地址;save_instr[BREAK_INSTR_SIZE]表示断点地址处(bpt_addr)需要保存的原程序指令,BREAK_INSTR_SIZE为指令长度,不同目标架构下指令长度不相同;state为系统中断点的状态。断点管理模块62将系统中的断点状态分为四类,“未定义(Undefined)”、“已删除(Removed)”、“已设置(Set)”和“已激活(Active)”。“未定义(Undefined)”是数组元素的初始状态,表示用户没有在该数组元素所指向的指令地址处设置过断点,也即该数组元素没有被使用过;“已删除(Removed)”表示数组元素所表示的指令处曾经被设置过断点,但断点处指令已被恢复为原程序指令;“已设置(Set)”是断点的地址已添加到断点维护列表中,但断点位置处的指令未被替换,仍是被调试程序原有的指令;“已激活(Active)”是断点的地址已添加到断点维护列表中,同时断点位置处的指令已被断点指令替换。
[0042] (b)RSP协议解析模块622对GDB远程调试命令进行解包、校验和组包。GDB调试器3发送的远程调试命令符合RSP协议,同时GDB调试器3也要求目标机端的反馈信息也应符合RSP协议。RSP协议解析模块623贯穿调试代理与GDB通信的全过程,RSP协议解析模块623主要包括GDB命令解包模块、GDB命令校验模块以及GDB命令组包模块。RSP协议是基于消息的ASCII码字符流协议,与其它的通信协议一样,RSP报文包含了起始位,结束位和校验和。一个典型的RSP协议包的结构如下:
[0043] $#CKSUM_MSN CKSUM_LSN
[0044] 其中,$是起始位,#是结束位,是数据段,是由一系列ASCI I码的16进制字符[0-9,a-f,A-F]组成的字符串。数据段至少为一个字节,多个数据段之间以“,”、“:”或“;”分隔;
[0045] CKSUM_MSN和CKSUM_LSN的值是中所有字符的ASCII码相加后取256的模,该值用两个十六进制字符表示,并且只允许使用0-9,a-f表示。
[0046] 当断点异常处理模块62接收到数据收发模块传送的字符数据时,会调用GDB命令解包模块会对字符进行判定,如果字符不是“$”,则继续等待接收,直到接收到“$”字符;当接收到“$”字符后,GDB命令校验模块开始存储“$”字符之后的数据流,直到遇到“$”或“#”,如果遇到“$”字符,则丢弃之前的数据流,重新存储“$”字符之后的数据流,如果遇到“#”,则对已存储的“$”字符之后的数据流累加并取256的模即为数据校验结果,这里将得到的数据校验结果记为cksum,将cksum和“#”之后的字符比较,如果相等,则说明数据符合RSP协议,如果不相等,则说明数据不符合RSP协议;符合RSP协议的数据会传送给命令处理模块623,命令处理模块根据命令的首字母对被调试程序进行不同的处理,而不符合RSP协议的数据则会被丢弃。当命令处理模块完成调试命令的处理后,会给GDB一定的反馈信息,这时,GDB命令打包模块会在反馈信息的头部加上“$”字符,并在反馈信息的尾部加上“#”和校验信息,这样反馈信息就符合RSP传输协议格式了,然后再通过调用数据收发模块,将反馈信息发送给宿主机的GDB调试器3。这样宿主机的GDB调试器3和目标机的调试代理组件6之间的通信就符合RSP传输协议了。
[0047] (c)命令处理模块623对RSP协议解析模块622传送的命令进行处理和响应,直到接收到“继续执行”命令,命令处理模块623才会退出。命令处理模块623根据首字母判断命令的类型,不同的命令对应不同的处理分支,调试命令及其处理过程包括:
[0048] 单步运行(“s”命令):通过异常返回地址寄存器以及异常地址处的指令,计算下一个断点位置,并将下一个断点位置添加到断点管理模块62中,将断点状态置为“已激活(Active)”,然后使用断点指令替换断点位置处的指令,并保存该位置原来的指令,之后退出命令处理模块623,使被调试程序得到调度机会,从引发异常的断点位置处继续运行;
[0049] 继续运行(“c”命令):使用断点管理模块621将系统中所有状态为“已设置(Set)”的断点元素的状态全部更新为“已激活(Active)”,并使用断点指令替换“已激活(Active)”断点元素位置处的指令,同时保存该位置原来的指令,之后退出命令处理模块623,使被调试程序得到调度机会,从引发异常的断点位置处继续运行;
[0050] 读取现场所有寄存器信息(“g”命令):将异常现场保存的寄存器信息传递给RSP协议解析模块622;
[0051] 修改现场寄存器信息(“G”命令):设置异常现场的寄存器值,并将“OK”信息传递给RSP协议解析模块622;
[0052] 读取指定内存地址的值(“m”命令):读取指定地址的内存值,并将信息;
[0053] 修改指定内存地址的值“M”命令:设置指定地址的内存值;
[0054] 将二进制数据写入到指定内存地址(“X”命令):将二进制数据写到指定内存地址;
[0055] 插入断点命令(“Z”命令):在指定内存地址增加一个断点,将指定的内存地址保存在断点列表中,并将断点状态设置为““已设置(Set)””;
[0056] 删除断点命令(“z”命令):删除指定内存地址处的断点,在断点列表中搜索指定内存地址,并将对应的断点状态设置为“已删除(Removed)”;
[0057] 设置指定寄存器(“P”命令):设置指定寄存器的值,根据寄存器编号修改寄存器的值;
[0058] 修改指定寄存器(“p”命令):读取指定寄存器的值,根据寄存器编号读取寄存器的值;
[0059] 询问目标机如何进入当前异常状态(“?”命令):应答异常信号信息。
[0060] 图4所示为基于天熠嵌入式操作系统的调试系统的调试过程的信息交互示意图,如图1-图4所示,调试阶段工作包括:
[0061] 在宿主机环境和目标机环境已具备的情况下,就可以开始基于天熠嵌入式操作系统的应用程序开发和调试工作了,基于天熠嵌入式操作系统的应用程序开发和调试的步骤为:
[0062] (1)在上位机端,在被调试程序的入口处调用初始化模块61,将的调试代理组件6与应用程序源码重新编译生成可执行待调试目标镜像文件。
[0063] (2)将宿主机和目标机通过串口或网络连接起来,并确定宿主机的串口或目标机调试代理使用的端口号。
[0064] (3)将可执行待调试目标镜像文件下载到目标机硬件平台。
[0065] (4)在上位机端启动GDB调试器3,通过命令行或菜单驱动方式将可执行待调试目标镜像文件的符号表加载到内存中.
[0066] (5)使用远程连接命令将宿主机端GDB与远程目标机的调试代理组件建立连接。
[0067] (6)通过上位机GDB调试器3发送各种调试命令实现对目标机被调试程序的远程调试。
[0068] 本发明基于天熠嵌入式操作系统的调试系统,每更换一种硬件平台,都需要针对具体硬件平台修订与硬件平台相关部分的实现,如不同硬件平台下断点指令的替换,目标平台寄存器的读写、数据收发模块的定制等功能。
[0069] 鉴于天熠操作系统调试工具不完备的情况,本发明提出一种基于天熠嵌入式操作系统的调试系统,通过搭建基于天熠操作系统的调试系统,为基于天熠嵌入式操作系统开发的用户提供了一种便捷有效的调试手段,用户能够使用单步、步进、继续运行、查看内存等常用调试指令控制远程程序的运行,从而能够像调试桌面操作系统的应用程序一样调试天熠嵌入式操作系统上的应用程序。
[0070] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈