System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据传输,具体涉及一种嵌入式设备远程调试方法。
技术介绍
1、嵌入式设备在软件研发过程中通常采用宿主机/目标板的模式,即利用宿主机(通常为pc机)上的软硬件资源及开发环境和调试工具来开发目标板上的软件,然后通过交叉编译环境生成目标代码和可执行文件,通过以太网、usb等方式下载到目标机上,调试完成后将程序下载固化到目标机上,完成整个开发过程。
2、现有技术中,嵌入式设备调试后生成调试数据,这个调试数据生成后就直接传输,如果此时设备正在运行,调试数据的传输占用cpu内存会导致对设备正常运行的干扰,这会影响嵌入式设备的任务实时性要求。
技术实现思路
1、鉴于现有技术中的上述缺陷或不足,本申请旨在提供一种嵌入式设备远程调试方法,嵌入式设备通过以太网与宿主机互连,所述嵌入式设备包括以太网通信模块和远程调试模块,所述以太网通信模块配置用于实现以太网初始化,并提供以太网的输入/输出接口;所述远程调试模块至少包括远程调试子模块;
2、该方法包括以下步骤:
3、所述嵌入式设备周期性接收由以太网传输且由所述宿主机发送的控制指令,并判断所述控制指令的指令类型;所述指令类型包括调试指令和文件传输指令;
4、若所述控制指令的所述指令类型为所述调试指令时,通过所述远程调试子模块触发所述嵌入式设备执行对应的调试行为,以生成调试数据;
5、将所述调试数据按照特定优先级排入调试队列,得到所述调试队列中所述调试数据的数据长度,并周期性检测cpu空闲
6、获取传输速率,根据所述传输速率和所述数据长度,得到第一预设传输时长;所述传输速率为所述调试数据通过所述以太网通信模块传输至所述宿主机的速率;
7、若所述第一预设传输时长小于或等于所述空闲时长,则将所述调试数据通过以太网传至所述宿主机。
8、根据本申请实施例提供的技术方案,所述根据所述传输速率和所述数据长度,得到第一预设传输时长之后,还包括以下步骤:
9、若所述第一预设传输时长大于所述空闲时长,则处理所述调试队列中的部分调试数据,所述部分调试数据的部分数据长度小于所述数据长度;
10、其中,除所述部分调试数据之外的所述调试队列中的数据为剩余调试数据,所述剩余调试数据的数据长度为剩余数据长度;
11、根据所述剩余数据长度和所述传输速率,得到第二预设传输时长;
12、若所述第二预设传输时长小于或等于cpu的剩余空闲时长,则通过所述远程调试子模块将所述部分调试信息传至所述宿主机。
13、根据本申请实施例提供的技术方案,所述若所述第一预设传输时长大于所述空闲时长,则处理所述调试队列中的部分调试数据,具体包括以下步骤:
14、若所述第一预设传输时长大于所述空闲时长,则处理所述数据长度一半的所述调试队列中的所述调试数据。
15、根据本申请实施例提供的技术方案,所述嵌入式设备周期性接收由以太网传输且由所述宿主机发送的控制指令之后,还包括以下步骤:
16、识别所述控制指令的数据包的包头,并根据数据包长度,基于所述包头,读取终止字节数据,所述终止字节数据为以包头为开端、以所述数据包长度为长度的最后一个字节的数据;
17、根据所述终止字节数据,判断所述控制指令的所述数据包的数据是否完整;
18、若所述数据包的数据完整,则对所述数据包的数据内容校验;
19、所述判断所述控制指令的指令类型,具体包括以下步骤:
20、若所述数据内容校验的结果为正常,则判断所述控制指令的指令类型。
21、根据本申请实施例提供的技术方案,所述对所述数据包的数据内容校验,具体包括以下步骤:
22、对特定字节范围进行异或求和,异或求和的结果等于校验位,则表征所述数据内容校验的结果为正常,反之所述数据内容校验的结果为异常。
23、根据本申请实施例提供的技术方案,所述远程调试模块还包括文件校验子模块,所述文件传输指令为由所述宿主机向所述嵌入式设备发送特定文件;
24、所述判断所述控制指令的指令类型之后,还包括以下步骤:
25、若所述控制指令的所述指令类型为所述文件传输指令时,通过所述文件校验子模块下载并校验所述特定文件;
26、若校验结果为正常,则将所述特定文件传输至指定存储位置。
27、根据本申请实施例提供的技术方案,所述在校验结果为正常后,还包括以下步骤:
28、向所述宿主机反馈确认信息,所述确认信息用于告知所述宿主机所述特定文件接收成功且校验正常。
29、根据本申请实施例提供的技术方案,所述将所述特定文件传输至指定存储位置,具体包括以下步骤:
30、判断所述特定文件的文件类型,所述文件类型至少包括首次传输和重复传输;
31、若所述特定文件的所述文件类型为首次传输时,根据所述特定文件的数据总组数创建的缓存区,所述缓存区的大小为数据内容长度与总组数的乘积;
32、按照所述特定文件的数据的组序号,将所述特定文件的数据内容放入对应的组序号的所述缓冲区内;
33、若所述缓冲区内的数据总组数与更新计数吻合、且每组数据对应的更新标志均设置为有效,则将所述缓冲区中的数据存放至指定路径的flash位置进行存储。
34、根据本申请实施例提供的技术方案,所述将所述缓冲区中的数据存放至指定路径的flash位置进行存储之后,还包括以下步骤:
35、销毁所述缓冲区,以释放内存资源。
36、根据本申请实施例提供的技术方案,所述判断所述特定文件的文件类型之后,还包括以下步骤:
37、若所述特定文件的所述文件类型为重复传输时,按照所述特定文件的数据的组序号,将所述特定文件的数据内容直接放入对应的组序号的缓冲区内。
38、与现有技术相比,本申请的有益效果在于:本申请采用周期接收以太网控制命令的方式,避免了频繁打断任务进行调试。在没有控制命令时,嵌入式设备可以正常执行任务,不被调试操作干扰,从而保证了任务的实时性要求。此外,远程调试处理子模块周期查询系统当前cpu的空闲状态,充分利用cpu的空闲时间,当第一预设传输时长小于或等于空闲时长时,才会传输调试数据,从而最大限度地减少数据传输对正在进行的任务的影响,有效降低了对任务实时性的干扰。
本文档来自技高网...【技术保护点】
1.一种嵌入式设备远程调试方法,其特征在于,嵌入式设备(1)通过以太网与宿主机(2)互连,所述嵌入式设备(1)包括以太网通信模块和远程调试模块,所述以太网通信模块配置用于实现以太网初始化,并提供以太网的输入/输出接口;所述远程调试模块至少包括远程调试子模块;
2.根据权利要求1所述的嵌入式设备远程调试方法,其特征在于:所述根据所述传输速率和所述数据长度,得到第一预设传输时长之后,还包括以下步骤:
3.根据权利要求2所述的嵌入式设备远程调试方法,其特征在于:所述若所述第一预设传输时长大于所述空闲时长,则处理所述调试队列中的部分调试数据,具体包括以下步骤:
4.根据权利要求1所述的嵌入式设备远程调试方法,其特征在于:所述嵌入式设备周期性接收由以太网传输且由所述宿主机(2)发送的控制指令之后,还包括以下步骤:
5.根据权利要求4所述的嵌入式设备远程调试方法,其特征在于:所述对所述数据包的数据内容校验,具体包括以下步骤:
6.根据权利要求1所述的嵌入式设备远程调试方法,其特征在于:所述远程调试模块还包括文件校验子模块,所述文件传
7.根据权利要求6所述的嵌入式设备远程调试方法,其特征在于:所述在校验结果为正常后,还包括以下步骤:
8.根据权利要求6所述的嵌入式设备远程调试方法,其特征在于:所述将所述特定文件传输至指定存储位置,具体包括以下步骤:
9.根据权利要求8所述的嵌入式设备远程调试方法,其特征在于:所述将所述缓冲区中的数据存放至指定路径的flash位置进行存储之后,还包括以下步骤:
10.根据权利要求8所述的嵌入式设备远程调试方法,其特征在于:所述判断所述特定文件的文件类型之后,还包括以下步骤:
...【技术特征摘要】
1.一种嵌入式设备远程调试方法,其特征在于,嵌入式设备(1)通过以太网与宿主机(2)互连,所述嵌入式设备(1)包括以太网通信模块和远程调试模块,所述以太网通信模块配置用于实现以太网初始化,并提供以太网的输入/输出接口;所述远程调试模块至少包括远程调试子模块;
2.根据权利要求1所述的嵌入式设备远程调试方法,其特征在于:所述根据所述传输速率和所述数据长度,得到第一预设传输时长之后,还包括以下步骤:
3.根据权利要求2所述的嵌入式设备远程调试方法,其特征在于:所述若所述第一预设传输时长大于所述空闲时长,则处理所述调试队列中的部分调试数据,具体包括以下步骤:
4.根据权利要求1所述的嵌入式设备远程调试方法,其特征在于:所述嵌入式设备周期性接收由以太网传输且由所述宿主机(2)发送的控制指令之后,还包括以下步骤:
5.根据权利要求4所述的嵌入式设...
【专利技术属性】
技术研发人员:李谦,谷瑞,贾磊,刘康,王晓明,温世杰,沈华,
申请(专利权)人:天津津航计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。