System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及嵌入式,尤其涉及一种实时操作系统的定位异常方法、装置及存储介质。
技术介绍
1、在嵌入式领域中,随着对计算能力的需求越来越大,处理器中的核心数量也越来越多,每个核心都执行不同的任务,会导致编写的程序逻辑复杂,难免会存在逻辑和现象不一致的情况,需要使用各种调试方法,定位相关的原因及位置,以便于尽快编写出所需要的功能程序。
2、但多核定位异常和单核定位异常的方式不同,单核因为同一时间内只能有一个任务在运行,所以当单核出现异常时可以只接进入异常中断,并打印相关的异常信息。而多核同一时间内运行的任务个数和芯片的核心数目有关,在现有技术的运行程序的过程中就算出现异常通常也只有一个核心出现异常,其它核心都是正常调度,无法确定整个系统异常以后其它核心的状态,不便于判断异常是否和其它核心有联系,不能方便地查出系统的漏洞。
技术实现思路
1、本专利技术提供了一种实时操作系统的定位异常方法、装置及存储介质,以实现在任何一个核心异常时将整个实时操作系统停下,并定位每个核心在触发异常时运行的位置,以提高查出系统的漏洞的效率。
2、本专利技术提供了一种实时操作系统的定位异常方法,所述实时操作系统包括至少两个核心;
3、所述定位异常方法包括:
4、当第一核心触发异常中断时,保存所述第一核心的栈信息,控制所述第一核心关闭中断,并向第二核心发送软件中断;所述第二核心为所述实时操作系统中除第一核心外的其他核心;
5、其中,所述第一核心为所述实
6、当所述第二核心接收到软件中断后,保存所述第二核心的栈信息,控制所述第二核心关闭中断;
7、根据所述第一核心的栈信息和所述第二核心的栈信息,定位所述实时操作系统异常。
8、进一步地,所述当第一核心触发异常中断时,保存所述第一核心的栈信息,控制所述第一核心关闭中断,并向第二核心发送软件中断,具体为:
9、当第一核心触发异常中断时,保存第一核心的栈信息,执行所述第一核心内的异常中断函数,使得所述第一核心关闭中断,并向第二核心发送软件中断;
10、其中,所述异常中断函数包括软件中断发送函数;所述软件中断发送函数用于向第二核心发送软件中断;所述第二核心为所述实时操作系统中除第一核心外的其他核心。
11、进一步地,在启动所述实时操作系统的任意一个核心在之前,将每个核心的中断回调函数与软件中断号绑定。
12、进一步地,所述当所述第二核心接收到软件中断后,保存所述第二核心的栈信息,执行所述第二核心对应的中断回调函数,使得所述第二核心关闭中断,具体为:
13、当所述第二核心接收到软件中断后,匹配第二核心对应的异常中断号,执行所述异常中断号所绑定中断回调函数,以关闭所有中断,并且进入死循环,停止所述第二核心的调度。
14、进一步地,所述根据所述第一核心的栈信息和所述第二核心的栈信息,定位所述实时操作系统异常,具体为:
15、在异常控制台中使用对应的命令打印出第一核心的通用寄存器信息和栈信息,以及第二核心的通用寄存器信息和栈信息;
16、将固件代码进行反汇编,得到反汇编地址;
17、结合所述反汇编地址、第一核心的通用寄存器信息和栈信息以及第二核心的通用寄存器信息和栈信息,定位触发异常时每个核心的运行地址。
18、作为优选方案,本专利技术使用一个软件中断号,作为系统异常通知中断号,当某一核心触发异常时,执行异常中断函数,发送软件中断来通知其它核心。其它核心接收到软件中断后,进入软件中断回调函数以后,保存栈信息,关闭中断,进入死循环,使其它核心停止调度,最大可能保存系统异常时每个核心的运行状态。触发异常的核心通知到其它核心后,会进入异常控制台,在异常控制台中可以查询所有核心的异常栈信息,以实现在任何一个核心异常时将整个实时操作系统停下,并定位每个核心在触发异常时运行的位置,以提高查出系统的漏洞的效率。
19、相应地,本专利技术还提供一种实时操作系统的定位异常装置,所述实时操作系统包括至少两个核心;
20、所述定位异常装置包括:第一控制模块、第二控制模块和定位异常模块;
21、所述第一控制模块用于当第一核心触发异常中断时,保存所述第一核心的栈信息,控制所述第一核心关闭中断,并向第二核心发送软件中断;所述第二核心为所述实时操作系统中除第一核心外的其他核心;
22、其中,所述第一核心为所述实时操作系统中的其中一个核心;
23、所述第二控制模块用于当所述第二核心接收到软件中断后,保存所述第二核心的栈信息,控制所述第二核心关闭中断;
24、所述定位异常模块用于根据所述第一核心的栈信息和所述第二核心的栈信息,定位所述实时操作系统异常。
25、进一步地,所述第一控制模块包括第一控制单元;
26、所述第一控制单元用于当第一核心触发异常中断时,保存第一核心的栈信息,执行所述第一核心内的异常中断函数,使得所述第一核心关闭中断,并向第二核心发送软件中断;
27、其中,所述异常中断函数包括软件中断发送函数;所述软件中断发送函数用于向第二核心发送软件中断;所述第二核心为所述实时操作系统中除第一核心外的其他核心。
28、进一步地,所述的一种实时操作系统的定位异常装置,还包括:绑定模块;
29、所述绑定模块用于在启动所述实时操作系统的任意一个核心在之前,将每个核心的中断回调函数与软件中断号绑定;
30、所述第二控制模块包括第二控制单元;
31、所述第二控制单元用于当所述第二核心接收到软件中断后,匹配第二核心对应的异常中断号,执行所述异常中断号所绑定中断回调函数,以关闭所有中断,并且进入死循环,停止所述第二核心的调度。
32、进一步地,所述定位异常模块包括定位异常单元;
33、所述定位异常单元用于在异常控制台中使用对应的命令打印出第一核心的通用寄存器信息和栈信息,以及第二核心的通用寄存器信息和栈信息;
34、将固件代码进行反汇编,得到反汇编地址;
35、结合所述反汇编地址、第一核心的通用寄存器信息和栈信息以及第二核心的通用寄存器信息和栈信息,定位触发异常时每个核心的运行地址。
36、相应地,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如本
技术实现思路
所述的一种实时操作系统的定位异常方法。
【技术保护点】
1.一种实时操作系统的定位异常方法,其特征在于,所述实时操作系统包括至少两个核心;
2.如权利要求1所述的一种实时操作系统的定位异常方法,其特征在于,所述当第一核心触发异常中断时,保存所述第一核心的栈信息,控制所述第一核心关闭中断,并向第二核心发送软件中断,具体为:
3.如权利要求1所述的一种实时操作系统的定位异常方法,其特征在于,还包括:
4.如权利要求3所述的一种实时操作系统的定位异常方法,其特征在于,所述当所述第二核心接收到软件中断后,保存所述第二核心的栈信息,执行所述第二核心对应的中断回调函数,使得所述第二核心关闭中断,具体为:
5.如权利要求1所述的一种实时操作系统的定位异常方法,其特征在于,所述根据所述第一核心的栈信息和所述第二核心的栈信息,定位所述实时操作系统异常,具体为:
6.一种实时操作系统的定位异常装置,其特征在于,所述实时操作系统包括至少两个核心;
7.如权利要求6所述的一种实时操作系统的定位异常装置,其特征在于,所述第一控制模块包括第一控制单元;
8.如权利要求6所述的一种
9.如权利要求6所述的一种实时操作系统的定位异常装置,其特征在于,所述定位异常模块包括定位异常单元;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1至5中任意一项所述的一种实时操作系统的定位异常方法。
...【技术特征摘要】
1.一种实时操作系统的定位异常方法,其特征在于,所述实时操作系统包括至少两个核心;
2.如权利要求1所述的一种实时操作系统的定位异常方法,其特征在于,所述当第一核心触发异常中断时,保存所述第一核心的栈信息,控制所述第一核心关闭中断,并向第二核心发送软件中断,具体为:
3.如权利要求1所述的一种实时操作系统的定位异常方法,其特征在于,还包括:
4.如权利要求3所述的一种实时操作系统的定位异常方法,其特征在于,所述当所述第二核心接收到软件中断后,保存所述第二核心的栈信息,执行所述第二核心对应的中断回调函数,使得所述第二核心关闭中断,具体为:
5.如权利要求1所述的一种实时操作系统的定位异常方法,其特征在于,所述根据所述第一核心的栈信息和所述第二核心...
【专利技术属性】
技术研发人员:陶伟,马溪原,蔡田田,陈军健,邵杰,李俊业,
申请(专利权)人:南方电网数字电网研究院股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。