一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种MCU现场软件调试定位问题的方法与流程

2022-06-01 09:55:06 来源:中国专利 TAG:

一种mcu现场软件调试定位问题的方法
技术领域
1.本发明属于汽车电子控制技术领域,具体涉及一种mcu现场软件调试定位问题的方法。


背景技术:

2.随着汽车的智能化,数字化,网联化,服务化,汽车系统需求也愈来愈复杂,使得汽车电子系统对于各个电子控制器单元中mcu的需求不断提升。mcu在电子控制器单元中至关重要,mcu管理控制器的电源模块,从整车can和lin总线获取解析传输信息,是系统功能正真实现的执行单元。但是因为mcu在高热、多尘、剧震、电子干扰严重的运作环境,可能会出现一些低概率问题,有些问题通过日志系统可能还不能完全定位问题原因,需要额外的辅助方法,现场对mcu进行调试,获取mcu内部的工作状态,以进一步缩小问题范围,确定问题方向,定位问题原因。


技术实现要素:

3.针对现有技术的上述不足,本发明要解决的技术问题是提供一种mcu现场软件调试定位问题的方法,避免无法完全定位问题原因而造成mcu工作状态异常的问题,取得有助于现场分析定位问题原因甚至解决问题的效果。
4.为解决上述技术问题,本发明采用如下技术方案:一种mcu现场软件调试定位问题的方法,包括mcu,具体包括以下步骤:s1:用can工具连接pc电脑和整车can总线,mcu启动;s2:pc电脑通过内置的安全认证软件与mcu之间进行can usd安全密钥认证;s3:在pc电脑设置相应的调试指令;s4:mcu接收来自pc电脑发送的调试指令并解析所述调试指令;s5:mcu根据所述调试指令执行相应的动作,并串口打印输出执行结果;s6:根据步骤s5中的执行结果判断是否定位问题原因,如果已经定位问题原因,结束;如果并没有定位问题原因,返回步骤s3,重复执行s3到s5,直至最终定位问题原因。
5.进一步完善上述技术方案,mcu内部包括mcu_dbg_app,所述mcu_dbg_app用于辅助mcu现场调试定位问题;所述步骤s2包括:s2.0:mcu启动后,开始mcu_dbg_app任务,执行s2.1;s2.1:pc电脑向mcu发送can uds安全认证请求,mcu接收到所述请求后向pc电脑发送反馈信号,索要can uds安全密钥,pc电脑将所述密钥发送给mcu,mcu接收到密钥后将其发送给mcu_dbg_app;s2.2:在mcu_dbg_app内执行can uds安全认证流程,判断can uds安全认证是否通过,如果认证通过,则等待所述调试指令;如果认证失败,则回到步骤s2.0重新开始所述
mcu_dbg_app任务。
6.进一步地,所述步骤s4包括:mcu收到来自pc电脑的调试指令后,判断当前情况下的mcu是否支持执行该调试指令,如果支持,则根据该调试指令执行相应的指令动作;如果不支持,则向pc电脑发送信号表示不支持执行该调试指令并等待pc电脑发送新的调试指令。
7.进一步地,所述步骤s6包括:根据步骤s5中的执行结果判断是否定位问题原因,如果已经定位问题原因,在mcu_dbg_app内确认退出安全认证,结束;如果未定位问题原因,在mcu_dbg_app内判断是否退出安全认证,如果确认退出安全认证,则回到步骤s2.0重新开始mcu_dbg_app任务;如果不退出,则回到步骤s4等待新的调试指令。
8.进一步地,所述调试指令包括:改写mcu内当前指定pin脚的输出电平;读取mcu内当前指定pin脚的输入电平;改写当前指定全局变量的当前值;读取当前指定全局变量的当前值;对当前指定模块发起上电/下电流程;对当前指定模块发出某些协议消息;对当前指定驱动重新初始化;对当前指定模块重启;对mcu芯片自己复位重启;且所述步骤s4中pc电脑向mcu发送调试指令的数量为一条。
9.相比现有技术,本发明具有如下有益效果:1、本发明的一种mcu现场软件调试定位问题的方法,当mcu出故障问题的时候,在保留故障现场的情况下,利用mcu的can总线通讯和can uds服务,在电脑端输出一些调试指令,通过can工具把这些指令发给mcu,mcu接收到这些调试指令后,执行相应的动作,或者输出一些状态信息,以缩小问题范围,明确问题方向,甚至直接找到问题的根本原因;同时为了避免其他非开发人员不小心触发这个现场调试功能从而造成不必要的问题,在mcu的软件增加了安全密钥认证逻辑,只有认证通过后,才可以使用现场调试功能;该方法有助于现场分析定位问题原因,甚至解决问题。避免后续不必要的压力复现,提升解决问题的效率。
附图说明
10.图1为电子控制器单元系统架构图。
11.图2为实施例的一种mcu现场软件调试定位问题的方法的流程图;图3为实施例的mcu_dbg_app内安全密钥认证逻辑的逻辑框图。
具体实施方式
12.下面结合附图对本发明的具体实施方式作进一步的详细说明。
13.在对本发明的具体实施方式作详细说明之前,首先介绍一下mcu,请参见图1,为电
子控制器单元系统架构图,在mcu内部有驱动层(即图1中的driver),uds协议栈(即图1中的can uds)和功能应用层(即图1中的fun_app),而mcu有以下任务:1、mcu通过can总线通讯(即图1中的can网络)和其他ecu(图1中的ecu1、ecu2)建立通讯,同步信息;2、mcu要管理soc、dsp、sensor1、sensor2的电源;3、mcu和soc建立spi/uart通讯;4、mcu要驱动/控制dsp芯片;5、mcu要驱动/控制sensor1和sensor2。
14.请参见图1-图3,具体实施例的一种mcu现场软件调试定位问题的方法,包括mcu,具体包括以下步骤:s1:用can工具连接pc电脑和整车can总线,mcu启动;s2:pc电脑通过内置的安全认证软件与mcu之间进行can usd安全密钥认证;s3:在pc电脑设置相应的调试指令;s4:mcu接收来自pc电脑发送的调试指令并解析所述调试指令;s5:mcu根据所述调试指令执行相应的动作,并串口打印输出执行结果;s6:根据步骤s5中的执行结果判断是否定位问题原因,如果已经定位问题原因,结束;如果并没有定位问题原因,返回步骤s3,重复执行s3到s5,直至最终定位问题原因。
15.实施例的一种mcu现场软件调试定位问题的方法,当mcu出故障问题的时候,在保留故障现场的情况下,利用mcu的can总线通讯和can uds服务,在电脑端输出一些调试指令,通过can工具把这些指令发给mcu,mcu接收到这些调试指令后,执行相应的动作,或者输出一些状态信息,以缩小问题范围,明确问题方向,甚至直接找到问题的根本原因;同时为了避免其他非开发人员不小心触发这个现场调试功能从而造成不必要的问题,在mcu的软件增加了安全密钥认证逻辑,只有认证通过后,才可以使用现场调试功能;该方法有助于现场分析定位问题原因,甚至解决问题。避免后续不必要的压力复现,提升解决问题的效率。
16.实施时,常用的can工具为canoe或kvaser,pc电脑通过内置的安全认证软件通常采用busmaster v2.6.0软件,也可采用其他安全认证软件用于向mcu发送安全认证密钥。
17.请继续参见图2-图3,其中,mcu内部包括mcu_dbg_app,所述mcu_dbg_app用于辅助mcu现场调试定位问题;所述步骤s2包括:s2.0:mcu启动后,开始mcu_dbg_app任务,执行s2.1;s2.1:pc电脑向mcu发送can uds安全认证请求,mcu接收到所述请求后向pc电脑发送反馈信号,索要can uds安全密钥,pc电脑将所述密钥发送给mcu,mcu接收到密钥后将其发送给mcu_dbg_app;s2.2:在mcu_dbg_app内执行can uds安全认证流程,判断can uds安全认证是否通过,如果认证通过,则等待所述调试指令;如果认证失败,则回到步骤s2.0重新开始所述mcu_dbg_app任务。
18.这样,在mcu内的mcu_dbg_app增加安全密钥认证逻辑来实现安全认证功能,从而保证本发明所提供的现场调试功能不被错误触发。
19.其中,所述步骤s4包括:
mcu收到来自pc电脑的调试指令后,判断当前情况下的mcu是否支持执行该调试指令,如果支持,则根据该调试指令执行相应的指令动作;如果不支持,则向pc电脑发送信号表示不支持执行该调试指令并等待pc电脑发送新的调试指令。
20.实施时,这里所说的“判断当前情况下mcu是否支持执行该调试指令”,可以理解的是,应根据实际情况即mcu当前工况判断是否可以执行该调试指令,如果可以执行即意味着支持执行,反之则是不支持。
21.其中,所述步骤s6包括:根据步骤s5中的执行结果判断是否定位问题原因,如果已经定位问题原因,在mcu_dbg_app内确认退出安全认证,结束;如果未定位问题原因,在mcu_dbg_app内判断是否退出安全认证,如果确认退出安全认证,则回到步骤s2.0重新开始mcu_dbg_app任务;如果不退出,则回到步骤s4等待新的调试指令。
22.其中,所述调试指令包括:改写mcu内当前指定pin脚的输出电平;读取mcu内当前指定pin脚的输入电平;改写当前指定全局变量的当前值;读取当前指定全局变量的当前值;对当前指定模块发起上电/下电流程(比如对ai模块重新上电/下电);对当前指定模块发出某些协议消息(比如对dsp模块发消息,请求dsp静音);对当前指定驱动重新初始化(比如spi,i2c,uart,adc,pwm,can等等);对当前指定模块重启(比如对android系统重启);对mcu芯片自己复位重启;且所述步骤s4中pc电脑向mcu发送调试指令的数量为一条。
23.实施时,这里所说的“当前指定”,应根据现场工作人员的判断,具体情况具体分析,如果需要针对pin脚的电平进行逐一排查,那么当前指定的调试指令应该是有关pin脚电平的;如果需要对驱动进行排查,那么当前指定的调试指令应该是对mcu内的驱动重新初始化,其他工况同理;具体应该落实到哪个地方(即哪个pin脚、哪个全局变量、哪个模块等)则应根据现场工作人员的需求进行设置相应的调试指令。
24.最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献