发明名称 程序流监控方法
摘要 本发明提出了一种程序流监控方法,包括如下步骤:将程续流按照执行先后顺序划分为n个子程序模块A1,A2,A3,…An;为每个子程序模块设定标志位;当程序从子程序模块Ai跳变到子程序模块Ai+1时,监控器将子程序模块Ai+1的标志位与模块Ai的标志位进行异或逻辑运算,得到结果C,再将C与程序模块Ai的标志位进行异或计算,得到结果D;监控器将结果D与模块Ai+1的标志位进行比较,如果相同,则执行正确,反之,执行错误,将错误标志位的数值加1;如果错误标志位的数值大于阈值,则控制器执行紧急故障处理程序。本发明简单易行,且异或运算相比传统的加减乘除运算更简单,可降低逻辑运算出错的概率,该方法能够查询程序流中调用错误的地方和次数。
申请公布号 CN103869804A 申请公布日期 2014.06.18
申请号 CN201410088136.2 申请日期 2014.03.11
申请人 中国汽车工程研究院股份有限公司 发明人 陈涛;夏芹;邓长祯
分类号 G05B23/02(2006.01)I 主分类号 G05B23/02(2006.01)I
代理机构 重庆市前沿专利事务所(普通合伙) 50211 代理人 郭云
主权项 一种程序流监控方法,其特征在于,包括如下步骤:S1,将程续流按照执行先后顺序划分为n个子程序模块A1,A2,A3,…An,所述n为正整数;S2,为程序流中的每个子程序模块A1,A2,A3,…An设定一个标志位,并且不同的子程序模块对应不同的标志位;S3,令i=1,令错误标志位CtrlFlowCk_Error=0;S4,当控制器运行的程序从一个子程序模块Ai跳变到下一个子程序模块Ai+1时,所述i=1,2,...,n‑1,监控器首先将子程序模块Ai+1的标志位与前一个执行的程序模块Ai的标志位进行异或逻辑运算,得出的一个结果C,再将C与前一个程序模块Ai的标志位进行再一次的异或计算,得到一个新的结果D;S5,监控器将结果D与程序模块Ai+1的标志位进行比较,如果相同,则认为执行正确,反之,则执行错误,将错误标志位CtrlFlowCk_Error的数值加1,i=i+1,若i<n,则返回步骤S4,否则执行步骤S6;S6,监控器计算执行的错误个数,如果大于阈值,则控制器执行紧急故障处理程序。
地址 400039 重庆市九龙坡区陈家坪朝田村101号