一种嵌入式平台的远程调试方法与流程
- 国知局
- 2024-11-06 14:54:08
本发明属于远程调试,涉及一种嵌入式平台的远程调试方法。
背景技术:
1、嵌入式平台调试通常分为三个关键阶段,具体为硬件模块调试:此阶段涵盖了裸板调试,包括cpu的首次启动加载(fsbl)、ram、flash以及镜像下载等环节;bootloader调试:包括u-boot的启动过程、驱动程序开发和指令集的调试;内核层调试:涉及到内核启动、驱动程序开发、文件系统的构建、硬件抽象层(hal)的配置、系统裁剪优化以及性能提升。一般在裸机调试阶段,通常采用jtag接口进行调试。对于arm系列芯片,经常使用j-link进行近端调试。目前已有使用树莓派作为服务器端的远程j-link调试方案,该方案支持用户通过keil软件远程进行调试。在bootloader和内核层调试中,虽然jtag仍被用于本地镜像烧录和启动日志获取,但由于其操作复杂性,较少使用jtag直接调试。在linux驱动层和应用层调试中,通常采用日志打印和追踪(tracing)方法,程序更新则通过本地或远端方式完成。
2、因而,对于一般裸机调试阶段存在局限性的问题,其中近端调试问题:近端调试时,由于调试板的位置不固定,合作调试(如fpga、平台和硬件部门之间)变得不便利,此外调试人员需与硬件物理位置绑定,降低了调试的灵活性;远程调试的限制:虽然采用树莓派作为远程调试服务器是一个创新方案,但由于其本身为性能较低的嵌入式系统,接口数量有限且通用性差,难以同时连接多个调试板,且无法满足高效的服务端需求,此外使用keilide作为客户端调试工具缺乏灵活性,不支持自动化,并且其图形化界面响应较慢,而且该方案也未涵盖远程串口的解决办法,以及不支持多人同时调试同一板子或一人调试多板的场景。除此之外,u-boot和kernel调试也存在一定瓶颈,比如:镜像的烧录和下载通常从本地或远端开发者电脑进行,而编译则在服务器端完成,导致镜像的管理和转移过程不统一,增加了操作的复杂性。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种嵌入式平台的远程调试方法,从而提升嵌入平台远端调试的灵活性、可靠性和通用性不足的技术问题。
2、为达到上述目的,本发明提供一种嵌入式平台的远程调试方法,其中,所述嵌入式平台包括组终端、与所述组终端网络连接的服务器、交换机和usb拓展坞,所述服务器外部分别连接usb拓展坞和交换机,所述usb拓展坞通过jlink脚本与服务器的多个开发板串联,该远程调试方法包括如下:
3、服务器的windows服务端程序通过手动或添加到windows任务计划自动启动后,开始监听windows任务计划所对应的相应线程服务进程,然后根据组终端的客户端实时显示ip地址标识的开发板调试口情况选择相应的远程调试,其中所述远程调试包括gdb远程调试和虚拟串口调试;所述远程调试的具体步骤包括:
4、通过gdb客户端启动并首先调用gdb init脚本进行初始化,检查远程指定的服务器的端口是否开放;若是,则先清除本地缓存,然后再开始成功连接远程指定的服务器后进入gdb命令行加载gdb python脚本;若否,则继续检查;
5、通过一键下载指令将加载gdb python脚本所提供的远程调式指令进行指定位置下载并镜像到开发板后转移到虚拟串口调试步骤;
6、采用虚拟串口调试步骤判断目前存在的开发板中虚拟串口的占用状态,然后根据开发板中虚拟串口的占用状态来配置服务器的虚拟串口服务。
7、优选地,所述虚拟串口调试步骤具体包括:先在组终端的开发机上用虚拟串口客户端查看目前存在的开发板是否存在空闲的的虚拟串口,若存在则可直接占用,通过与连接的windows服务器通信,通知连接请求,服务器则更新服务端虚拟串口资源信息并广播给与其连接的所有调试终端;若不存在则等待虚拟串口资源释放或者申请只读连接,则能获取串口信息而无法进行写操作,以避免冲突;然后将直接占用的空闲虚拟串口正式连接到串口调试层对开发板进行调试,以便于判断gdb远程调试中jtag层下载的镜像是否正常启动。
8、进一步优选地,所述若存在则可直接占用的具体内容如下:对于存在空闲的虚拟串口,则使用串口软件连接到空闲的虚拟串口,然后通过虚拟串口客户端检测到本地建立连接就会向服务器更新串口占用状态,同时服务器端也检测该虚拟串口与本地建立连接是否连接成功,若连接成功则更新数据库。
9、更进一步优选地,所述判断gdb远程调试中jtag层下载的镜像是否正常启动的具体内容为:当没有正常启动时,则停留在jtag调试层使用gdb相应的debug工具来启动gdb远程调试;当有正常启动时,则直到进入虚拟串口的调试步骤。
10、具体地,所述gdb相应的debug工具为一键uboot调试启动或一键linux调试启动,用于通过gdb命令行发送相应指令后能够驱动目标调试板启动到一键uboot或者一键linux并且继续通过gdb进行步进调试。
11、优选地,服务器的开发板接入侧搭建了一个虚拟nat和外部网络隔离,所述服务器的开发板在本地开发端时采用配置windows internet共享的方式,通过网口连接到本地系统,本地系统再中转到服务器。
12、优选地,所述jlink脚本的编写步骤具体为:启动后首先根据底层配置文件向开发板配置cpu和ram相关参数到cpu寄存器中,然后根据命令行参数选择启动模式;选择启动模式后会根据相应的启动模式创立一个jlinkscript脚本;通用配置逻辑以对不同模式进行差异化环境配置;调用ddr_init初始化的jlink脚本用于对cpu的ram控制器的进行初始化配置;配置成功后调用创建的jlinkscript脚本进行差异化配置,脚本执行完毕。
13、进一步优选地,所述启动模式有本地下载模式、本地debug模式、远程gdb服务模式和本地uboot一键启动模式,所述本地下载模式用于本地下载镜像到开发板ram,所述本地debug模式用于本地打开jlink调试平台并使用jlink指令对平台进行jtag层面的debug,所述远程gdb服务模式用于启动gdb服务端程序以供调试终端使用gdb客户端进行远程连接后进行gdb层面的调试,所述本地uboot一键启动模式用于下载uboot镜像到ram后让cpu直接开始运行uboot并保留jlink或gdb的调试接口,即可以进行uboot运行中的步进调试。
14、本发明的有益效果在于:本发明结合gdb远程调试和虚拟串口调试,不仅优化了平台调试效率,还在服务端使用了windows原生的计划与任务功能来保证触发条件,和服务基本运行环境的保证;同时服务端程序支持进一步的环境条件判断从而保证服务的启动的稳定性和运行时稳定性。
技术特征:1.一种嵌入式平台的远程调试方法,其特征在于,所述嵌入式平台包括组终端、与所述组终端网络连接的服务器、交换机和usb拓展坞,所述服务器外部分别连接usb拓展坞和交换机,所述usb拓展坞通过jlink脚本与服务器的多个开发板串联,该远程调试方法包括如下:
2.根据权利要求1所述嵌入式平台的远程调试方法,其特征在于,所述虚拟串口调试步骤具体包括:先在组终端的开发机上用虚拟串口客户端查看目前存在的开发板是否存在空闲的的虚拟串口,若存在则可直接占用,通过与连接的windows服务器通信,通知连接请求,服务器则更新服务端虚拟串口资源信息并广播给与其连接的所有调试终端;若不存在则等待虚拟串口资源释放或者申请只读连接,则能获取串口信息而无法进行写操作;然后将直接占用的空闲虚拟串口正式连接到串口调试层对开发板进行调试,以便于判断gdb远程调试中jtag层下载的镜像是否正常启动。
3.根据权利要求2所述嵌入式平台的远程调试方法,其特征在于,所述若存在则可直接占用的具体内容如下:对于存在空闲的虚拟串口,则使用串口软件连接到空闲的虚拟串口,然后通过虚拟串口客户端检测到本地建立连接就会向服务器更新串口占用状态,同时服务器端也检测该虚拟串口与本地建立连接是否连接成功,若连接成功则更新数据库。
4.根据权利要求2所述嵌入式平台的远程调试方法,其特征在于,所述判断gdb远程调试中jtag层下载的镜像是否正常启动的具体内容为:当没有正常启动时,则停留在jtag调试层使用gdb相应的debug工具来启动gdb远程调试;当有正常启动时,则直到进入虚拟串口的调试步骤。
5.根据权利要求4所述嵌入式平台的远程调试方法,其特征在于,所述gdb相应的debug工具为一键uboot调试启动或一键linux调试启动,用于通过gdb命令行发送相应指令后能够驱动目标调试板启动到一键uboot或者一键linux并且继续通过gdb进行步进调试。
6.根据权利要求1所述嵌入式平台的远程调试方法,其特征在于,服务器的开发板接入侧搭建了一个虚拟nat和外部网络隔离,所述服务器的开发板在本地开发端时采用配置windows internet共享的方式,通过网口连接到本地系统,本地系统再中转到服务器。
7.根据权利要求1所述嵌入式平台的远程调试方法,其特征在于,所述jlink脚本的编写步骤具体为:启动后首先根据底层配置文件向开发板配置cpu和ram相关参数到cpu寄存器中,然后根据命令行参数选择启动模式;选择启动模式后会根据相应的启动模式创立一个jlinkscript脚本;通用配置逻辑以对不同模式进行差异化环境配置;调用ddr_init初始化的jlink脚本用于对cpu的ram控制器的进行初始化配置;配置成功后调用创建的jlinkscript脚本进行差异化配置,脚本执行完毕。
8.根据权利要求7所述嵌入式平台的远程调试方法,其特征在于,所述启动模式有本地下载模式、本地debug模式、远程gdb服务模式和本地uboot一键启动模式,所述本地下载模式用于本地下载镜像到开发板ram,所述本地debug模式用于本地打开jlink调试平台并使用jlink指令对平台进行jtag层面的debug,所述远程gdb服务模式用于启动gdb服务端程序以供调试终端使用gdb客户端进行远程连接后进行gdb层面的调试,所述本地uboot一键启动模式用于下载uboot镜像到ram后让cpu直接开始运行uboot并保留jlink或gdb的调试接口。
技术总结本发明公开了一种嵌入式平台的远程调试方法,该方法包括:服务器的Windows服务端程序通过手动或添加到Windows任务计划自动启动后,开始监听Windows任务计划所对应的相应线程服务进程,然后根据组终端的客户端实时显示IP地址标识的开发板调试口情况选择相应的远程调试,通过gdb客户端启动并首先调用gdb init脚本进行初始化,检查远程指定的服务器的端口是否开放;通过一键下载指令将加载gdb python脚本所提供的远程调式指令进行指定位置下载并镜像到开发板后转移到虚拟串口调试步骤;采用虚拟串口调试步骤判断目前存在的开发板中虚拟串口的占用状态,然后根据开发板中虚拟串口的占用状态来配置服务器的虚拟串口服务。因此,本发明提升嵌入平台远端调试的灵活性、可靠性和通用性。技术研发人员:吴晓东,刘岚嘉,董松受保护的技术使用者:成都橙峰科技有限公司技术研发日:技术公布日:2024/11/4本文地址:https://www.jishuxx.com/zhuanli/20241106/324569.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表