发明名称 一种基于代理的RTEMS系统调试方法
摘要 本发明提供了一种基于代理的RTEMS系统调试方法,在针对目标机硬件的RTEMS操作系统上,增加了调试代理(Agent)、Trace功能模块,形成一套针对RTEMS操作系统和特定目标硬件CPU架构的基于代理的调试工具,并定制调试代理和GDB主机端通信的应用通信协议。经调试代理绑定指定目标任务后,由上位机的GDB主机端通过目标机的trace模块对被调试任务进行远程调试,以方便系统的快速调试开发。
申请公布号 CN102945202B 申请公布日期 2015.12.16
申请号 CN201210390161.7 申请日期 2012.10.15
申请人 中国科学院软件研究所 发明人 李明树;赵琛;潘远明;贺春妮;刘立宇;王栋
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 邵可声
主权项 一种基于代理的RTEMS系统调试方法,其特征在于,包括如下步骤:(1)针对目标机特定硬件CPU架构,在RTEMS操作系统上设置调试代理模块以及调试代理模块与上位机GDB主机端通信的应用通信协议,所述上位机GDB主机端发送的调试命令通过RSP发送给目标机上的调试代理模块,所述调试代理模块负责调试命令的分发以及调试结果的获取并向上位机反馈,所述调试代理模块包括初始化模块、RSP协议解析执行模块和数据传输模块;所述初始化模块进行包括命令行解析、注册目标设备、任务绑定操作,绑定是指调试任务让被调试的应用程序任务成为自己的子任务;所述RSP协议解析执行模块解析从上位机发出的命令,包括执行命令和校验命令,执行命令包括:"c"命令:使被调试程序快速执行"s"命令:使被调试程序单步执行"g"命令:读取指定寄存器的值"G"命令:改写指定寄存器的值"m"命令:读取指定地址的内存值"M"命令:改写指定地址的内存值"D"命令:释放被绑定的任务"k"命令:删除被调程序中的所有任务;校验命令包括:"q"命令:基本功能校验"Q"命令:基本功能设置"?"命令:任务终止回馈Default:无效命令处理;所述数据传输模块负责上位机GDB主机端与目标机端调试代理模块的数据收发工作,将数据按照RSP协议要求打包,通过串口/网络双向传输;(2)在RTEMS操作系统上,设置trace功能模块,负责RTEMS操作系统上调试命令的执行和任务跟踪,当使用trace跟踪后,除了KILL外所有发送给被跟踪任务的信号,都会被转发给调试任务,而被调试任务则会被阻塞,这时被调试任务的状态就会被标注为TRACED,而调试任务收到信号后,就可以对停止下来的被调试任务进行检查和修改,然后让被调试任务继续运行,所述trace功能模块包括公共模块和处理器相关模块,所述公共模块实现对被调试程序的任务管理及内存读写在内的功能,包括:a)Attach操作,绑定指定ID的任务;b)Detach操作,释放指定ID的任务;c)Resume操作,使被绑定的任务继续运行;d)Kill操作,删除所有被调试的任务;e)Get_Task操作,获取指定ID的任务控制块;f)Peekdata操作,读取指定内存地址中的数据;g)Pokedata操作,改写指定内存地址中的数据;所述处理器相关模块负责同一操作系统中与处理器相关的功能,包括:a)陷阱处理;i)保护现场:按照一定顺序将寄存器值进行保存;ii)恢复现场:将保存的寄存器值恢复到对应的寄存器中;iii)调试代理和被调试任务的同步;b)读取指定寄存器的数据;c)改写指定寄存器的数据;(3)将包括应用程序、调试代理模块、Trace功能模块的RTEMS应用系统编译生成可执行待调试的目标系统镜像文件并下载到目标机;(4)将目标机上电进入调试状态,在上位机通过命令行或菜单驱动方式向目标机发出绑定指定ID任务的指令,使目标机端的调试代理模块通过trace功能模块的公共模块绑定被调试镜像指定ID的任务,通过上位机向目标机端调试代理模块发送调试命令;(5)目标机端调试代理模块解析调试命令并通知trace功能模块按照调试命令进行对应处理,并将处理结果返回给上位机,完成远程调试。
地址 100190 北京市海淀区中关村南四街4号