本申请涉及微控制器,尤其涉及一种微控制器负载率测试方法、装置、系统及车辆。
背景技术:
1、在现代汽车工业中,mcu(microcontroller unit,微控制器)作为核心控制单元,其性能直接影响到整车的运行稳定性和安全性。因此,在mcu的软件开发过程中,对mcu的负载率进行实时计算以确保程序的可靠运行是非常重要的一环。
2、相关技术中,通常依赖于jtag(joint test action group,联合测试工作组)接口等调试手段进行负载率测试。该方法可以在单件或者hil台架上模拟车辆驾驶的情况去测试mcu负载率。然而,该方法只能在单件或者hil(hardware-in-the-loop,硬件在环)台架上模拟车辆驾驶的情况来测试mcu负载率,而在微控制器量产后,无法对其负载率进行测试。而大多数工况需要在车辆运行之后的实际情况下才会触发,而实际工况下的mcu负载率是更可靠有效的,对软件开发人员排查问题有实际的帮助。
技术实现思路
1、为了解决上述技术问题,本申请提供了一种微控制器负载率测试方法、装置、系统及车辆。
2、根据本申请的第一方面,提供了一种微控制器负载率测试方法,包括:
3、从微控制器的源代码中实时识别微控制器所执行的每个任务的开始任务标识和结束任务标识;
4、当识别到每个任务的开始任务标识时,调用计时器函数得到所述任务的开始时刻;
5、当识别到每个任务的结束任务标识时,调用计时器函数得到所述任务的结束时刻;
6、基于控制器局域网总线协议向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据,以使所述上位机基于所述开始任务标识和结束任务标识识别出每个任务,并根据所述开始时刻和结束时刻确定每个任务的负载率以及微控制器的整体负载率。
7、可选地,所述基于控制器局域网总线协议向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据,包括:
8、利用can_write函数向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据。
9、可选地,所述计时器函数输出的时刻的精度为us级。
10、根据本申请的第二方面,提供了一种微控制器负载率测试装置,包括:
11、任务标识识别模块,用于从微控制器的源代码中实时识别微控制器所执行的每个任务的开始任务标识和结束任务标识;
12、开始时刻确定模块,用于当识别到每个任务的开始任务标识时,调用计时器函数得到所述任务的开始时刻;
13、结束时刻确定模块,用于当识别到每个任务的结束任务标识时,调用计时器函数得到所述任务的结束时刻;
14、日志数据发送模块,用于基于控制器局域网总线协议向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据,以使所述上位机基于所述开始任务标识和结束任务标识识别出每个任务,并根据所述开始时刻和结束时刻确定每个任务的负载率以及微控制器的整体负载率。
15、可选地,所述日志数据发送模块,具体用于利用can_write函数向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据。
16、可选地,所述计时器函数输出的时刻的精度为us级。
17、根据本申请的第三方面,提供了一种微控制器负载率测试系统,包括:下位机和上位机;
18、所述下位机,用于从微控制器的源代码中实时识别微控制器所执行的每个任务的开始任务标识和结束任务标识;当识别到每个任务的开始任务标识时,调用计时器函数得到所述任务的开始时刻;当识别到每个任务的结束任务标识时,调用计时器函数得到所述任务的结束时刻;基于控制器局域网总线协议向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据;
19、所述上位机,用于基于所述开始任务标识和结束任务标识识别出每个任务,并根据所述开始时刻和结束时刻确定每个任务的负载率以及微控制器的整体负载率。
20、可选地,所述下位机,具体用于利用can_write函数向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据。
21、可选地,所述计时器函数输出的时刻的精度为us级。
22、根据本申请的第四方面,提供了一种车辆,包括:第二方面所述的装置。
23、根据本申请的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
24、根据本申请的第六方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面所述的方法。
25、本申请实施例提供的技术方案与现有技术相比具有如下优点:
26、通过预先在微控制器的源代码中每个任务的开始位置加入开始任务标识和计时器函数,结束位置加入结束任务标识和计时器函数,在对微控制器的负载率进行分析时,通过从源代码中识别开始任务标识和结束任务标识,准确地定位到每个任务的开始和结束位置。并且,在每个任务的开始和结束位置调用计时器函数,可以准确得到每个任务的执行时间,进而可以得到单个任务的瞬时负载率,以及微控制器的整体负载率。本申请实施例不仅可以在微控制器量产前对其负载率进行测试,而且还可以在微控制器量产后对其负载率进行测试,从而有助于开发人员发现问题和解决问题。
1.一种微控制器负载率测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于控制器局域网总线协议向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述计时器函数输出的时刻的精度为us级。
4.一种微控制器负载率测试装置,其特征在于,所述装置包括:
5.根据权利要求4所述的装置,其特征在于,所述日志数据发送模块,具体用于利用can_write函数向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据。
6.根据权利要求4所述的装置,其特征在于,所述计时器函数输出的时刻的精度为us级。
7.一种微控制器负载率测试系统,其特征在于,包括:下位机和上位机;
8.根据权利要求7所述的系统,其特征在于,所述下位机,具体用于利用can_write函数向上位机发送包含每个任务的开始任务标识、结束任务标识、开始时刻和结束时刻的日志数据。
9.根据权利要求7所述的系统,其特征在于,所述计时器函数输出的时刻的精度为us级。
10.一种车辆,其特征在于,包括:权利要求4-6任一项所述的装置。