掌桥专利:专业的专利平台
掌桥专利
首页

多任务运行状态与通信接口协同监视调试方法

文献发布时间:2023-06-19 12:10:19


多任务运行状态与通信接口协同监视调试方法

技术领域

本发明涉及VxWorks多任务控制系统下的任务和通信接口监视调试方法。用于VxWorks嵌入式控制系统软件的运行状态监视和调试。

背景技术

嵌入式交叉调试是嵌入式开发中查找嵌入式软件程序问题的重要手段之一。VxWorks系统提供多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接。实时系统的另一关键特性是硬

件中断处理。为了获得最快速可靠的中断响应,VxWorks系统的中断服务程序ISR有自己的上下文。VxWorks实时操作系统由400多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,这有效地保证了系统的安全性和可靠性。系统的链接器可按应用的需要自动链接一些目标模块。这样,通过目标模块之间的按需组合,可得到许多满足功能需求的应用。VxWorks操作系统的基本构成模块包括以下部分:高效的实时内核Wind VxWOrks实时内核(Wind)主要包括基于优先级的任务调度、任务同步和通信、中断处理、定时器和内存管理。VxWorks系统通过运行定时器来记录任务对CPU的利用率,从而进行有效地调整,合理安排任务的运行,给定适宜的任务属性。目标代理可使用户远程调试应用程序。板级支持包板级支持包提供硬件的初始化、中断建立、定时器、内存映象等。常规的VxWorks嵌入式调试方法是信息打印,shell命令调试,基于WDB调试系统的任务级调试和系统级调试。信息打印只适用于特点内容的打印,且需要根据不同的地方打印不同的数据,调试不方便。基于WDB的任务调试适用于单任务调试,对与多任务控制系统复杂的实际工作情况往往需要很多时间和较多的经验才能查找到问题。在开发调试过程中,用户将编译链接后的目标代码通过Target Server加载到目标机上运行,可以通过Tornado下的Shell、Debugger、Browser以及Windview等工具监控目标机上应用程序任务的运行情况,应用程序使用printf语句打印的调试信息回送到宿主机,借助打印信息和Tornado提供的各种调试工具,开发者可以监控任务的运行情况,当某个任务出错时,可以通过各种输出信息分析问题原因。但是一旦完成开发投入实际使用,由于实际使用环境和当初的开发调试环境有较大的区别,难免会出现各种异常情况,比较常见的异常就是任务挂起,在这种情况下开发者往往无法像在地面调试时那样可以外接调试电缆捕获异常信息,以确定发生异常的任务,也无法捕获开发者在开发过程中的辅助打印信息,这种情况在机载软件尤为常见。VxWorks下的应用软件在完成开发调试后的试验阶段,由于无法获得相关输出信息,出现异常时很难分析查找问题。嵌入式系统应用软件完成开发调试后,在随后的试验阶段很难象调试阶段那样得到任务状态等输出信息,一旦出现任务异常,因为缺乏发生异常时的相关信息,很难判断和分析问题。

发明内容

本发明的目的是针对现有VxWorks嵌入式调试方法存在的不便之处,提供一种调试效率高,调试方便的多任务运行状态和通信接口监视以及基于监视信息和WDB脚本调试技术的协同监视调试方法。

本发明的上述目的可以通过下述技术方案予以实现:多任务运行状态与通信接口协同监视调试方法,其特征在于:在VxWorks多任务控制系统下将状态监视任务单元划分运行于宿主机的监视调试软件和运行于目标机的状态监视任务单元,监视调试软件通过服务端面向消息的传输层协议UDP与状态监视任务单元进行通信;状态监视任务单元接收监视调试软件下发的监视调试命令,通过内存共享和信号量,收集SRIO接口、PCIe接口、CAN总线和串口的调试信息,实时获取各个任务、寄存器与接口的信息;提取调试库提供的应用程序接口API,调用C语言编写的程序Shell运行命令完成任务状态信息、函数调用信息、寄存器信息和变量信息的查询和调试,以及串行高速输入输出SRIO、高速串行计算机扩展总线标准PCIe,CAN总线和串口的调试;通过服务器或web服务器或B Server通过WDB RPC协议发送调试控制命令给WDB代理,WDB代理接收并解析服务脚本和命令,根据调试控制命令创建调试任务并将被调试任务绑定(Attach)到自己获取控制权,再根据调试控制命令执行调试功能,并通过远程过程调用协议RPC反馈给服务器WDB Server;监视调试软件调用WTX TclAPI动态扩展调试脚本,利用WDB代理调试系统对目标任务和内存进行调试,完成对目标任务状态信息,函数调用信息,寄存器信息和变量信息的查询和调试,以及对SRIO,PCIe,CAN和串口的调试。

本发明相比于现有技术具有如下有益效果

本发明通过运行于目标机的状态监视任务单元收集任务状态信息和通信接口信息,通过服务端面向消息的传输层协议UDP上报给运行于宿主机的监视调试软件。监视调试软件针对需要调试或是感觉异常的信息,调用WTX Tcl API动态扩展调试脚本,利用WDB代理调试系统对目标任务和内存进行调试,完成对目标任务状态信息,函数调用信息,寄存器信息和变量信息的查询和调试,以及对SRIO,PCIe,CAN和串口的调试。协同多任务和通信接口的监视和调试,实现了多任务和常用通信接口的状态和数据监视与调试。集成了数据监视与调试的协同,既能对多个任务及通信接口进行全局监视且能基于目标信息进行方便的调试,极大的提高了调试效率。

本发明在目标板创建状态监视任务单元以获取VxWorks多任务控制系统的各个任务及SRIO,PCIe,Can和串口等接口的状态和数据信息。该方法在宿主机创建了监视调试软件可以方便的查看目标机上运行的状态监视任务单元上报的任务信息,函数调用信息,寄存器信息,变量信息和接口数据信息。基于WDB调试系统,监视调试软件通过Tcl脚本可以方便的协同监视信息对目标任务,寄存器和变量进行调试。

附图说明

下面结合附图对本技术发明进行详细描述。

图1是本发明多任务运行状态与通信接口协同监视调试原理示意图;

图2是图1中的监视调试软件结构示意图;

图3是图1中的状态监视任务单元结构示意图;

图4是本发明多任务运行状态与通信接口协同监视调试方法流程图。

具体实施方式

现结合实施例、附图对本发明作进一步描述:

参阅图1。根据本发明,在VxWorks多任务控制系统下将状态监视任务单元划分运行于宿主机的监视调试软件和运行于目标机的状态监视任务单元,监视调试软件通过服务端面向消息的传输层协议UDP与状态监视任务单元进行通信;状态监视任务单元接收监视调试软件下发的监视调试命令,通过内存共享和信号量,收集SRIO接口、PCIe接口、CAN总线和串口的调试信息,实时获取各个任务、寄存器与接口的信息;提取调试库提供的应用程序接口API,调用C语言编写的程序Shell运行命令完成任务状态信息、函数调用信息、寄存器信息和变量信息的查询和调试,以及串行高速输入输出SRIO、高速串行计算机扩展总线标准PCIe,CAN总线和串口的调试;通过服务器或web服务器或B Server通过WDB RPC协议发送调试控制命令给WDB代理,WDB代理接收并解析服务脚本和命令,根据调试控制命令创建调试任务并将被调试任务绑定(Attach)到自己获取控制权,再根据调试控制命令执行调试功能,并通过远程过程调用协议RPC反馈给服务器WDB Server;监视调试软件调用WTX TclAPI动态扩展调试脚本,利用WDB代理调试系统对目标任务和内存进行调试,完成对目标任务状态信息,函数调用信息,寄存器信息和变量信息的查询和调试,以及对SRIO,PCIe,CAN和串口的调试。

视调试软件调用WTX Tcl API动态扩展调试脚本完成对目标任务,寄存器和变量的调试。状态监视任务单元通过shell脚本命令和调试库提供的API进行任务信息收集,函数调用追踪,寄存器和变量值查询。状态监视任务单元通过内存共享和信号量完成对SRIO,PCIe,CAN和串口等接口数据的监视。

参阅图2。视调试软件包括UDP通信解析模块,WTX Tcl API脚本调试模块和信息监视模块,信息监视模块根据UDP通信解析模块的信息进行可视化和监视,完成信息监视部分通过WTX Tcl API脚本调试模块进行目标程序调试任务信息监视,函数调用跟踪监视,寄存器信息监视,变量信息监视和接口信息监视五个功能,信息监视模块通过WTX Tcl API脚本调试模块进行目标程序调试根据UDP通信解析模块的信息进行可视化和监视。

参阅图3。状态监视任务单元包括UDP通信模块、调试模块和信息收集模块,UDP通信模块与监视调试软件进行信息交互,调试模块根据调试库提供的API和Shell命令完成任务状态信息、函数调用信息,寄存器信息和变量信息的查询和调试,以及对SRIO接口数据,PCIe接口数据,CAN总线接口数据和串口等接口的调试,信息收集模块查询和收集SRIO,PCIe,CAN,串口等接口数据,完成VxWorks任务状态,任务之间的通信信息包括消息队列信息和共享内存的信息和系统中断信息的状态进行收集和统计。将收集的信息通过UDP通信模块上报给监视调试软件。

SRIO接口数据包括SRIO设备寄存器信息,SRIO网络连接信息,SRIO速率,SRIO数据信息;PCIe接口数据包括PCIe寄存器信息,PCIe数据信息,CAN接口数据包括动态CAN滤波配置,CAN错误计数信息,CAN扩展帧数据。

参阅图4。运行在目标板上的状态监视任务单元创建UDP通信服务端并初始化状态监视任务,通过UDP通信模块接收监视调试软件下发的监视调试命令,调用调试模块和信息收集模块完成对特定目标的状态和信息监视,并通过UDP通信模块将信息上报给监视调试软件;监视调试软件接收目标板UDP通信模块上报的监视结果信息和UDP通信解析模块的解析信息,将任务信息,函数调用信息,寄存器信息,变量信息和接口信息分别转发给任务信息监视功能,函数调用跟踪监视功能,寄存器信息监视功能,变量信息监视功能和接口信息监视功能。信息监视模块对特定信息进行监视和调试,针对需要调试或是感觉异常的信息,对目标信息调用WTX Tcl API脚本调试模块生成调试脚本,根据调试脚本生成调试信息,或按照WTX Tcl协议定制调试脚本,利用WDB代理调试系统对目标任务,内存和通信接口进行调试。

以上所述为本发明较佳实施例,应该注意的是上述实施例对本发明进行说明,然而本发明并不局限于此,并且本领域技术人员在脱离所附权利要求的范围情况下可设计出替换实施例。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

相关技术
  • 多任务运行状态与通信接口协同监视调试方法
  • 一种分布式系统环境下的多任务进程监视方法和监视系统
技术分类

06120113195680