[发明专利]一种COS嵌入式开发盲调方法、系统、设备及存储介质在审
申请号: | 201910198581.7 | 申请日: | 2019-03-15 |
公开(公告)号: | CN109933480A | 公开(公告)日: | 2019-06-25 |
发明(设计)人: | 贺洪恩 | 申请(专利权)人: | 捷德(中国)信息科技有限公司 |
主分类号: | G06F11/263 | 分类号: | G06F11/263;G06F11/273 |
代理公司: | 北京方安思达知识产权代理有限公司 11472 | 代理人: | 陈琳琳;王宇杨 |
地址: | 330096 江西*** | 国省代码: | 江西;36 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可读写 异常数据 嵌入式开发 存储介质 写入 读取 发送 中断服务函数 寄存器数据 定位问题 异常信息 运行状态 有效地 自定义 芯片 分配 分析 帮助 发现 | ||
1.一种COS嵌入式开发盲调方法,所述方法包括:
在OS中分配一块NVM可读写区域;
当芯片发生硬件异常时,通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;
当代码执行到其自定义的错误收集函数时,所述错误收集函数将执行现场的寄存器数据写入NVM可读写区域;
通过APDU指令将NVM可读写区域的异常数据和/或寄存器数据发送出来;
对APDU指令发送出来的数据进行分析,获取异常信息和/或执行现场信息;
对于ARM平台,所述异常数据为32字节数据:R0,R1,R2,R3,R12,R14,R15,xPSR;所述芯片发生硬件异常通过R14来判断,如果R14的值为0xFFFFFFF9,表示是通过异常进来的数据;
所述对APDU指令发送出来的数据进行分析,具体为:对于异常数据,R14与R15的内容能够定位错误发生的位置;R14的内容指明上一层调用函数的对象;R15的内容表示发生异常的时候PC的位置;R0,R1,R2,R3和R12表示数据或者指针,能够依据当前代码发生的位置来判断其中数据的内容;
对于寄存器数据,根据不同平台相应的特征分析相应的寄存器以定位问题的代码位置;结合问题的代码位置处的代码和读取到的寄存器值以及从堆栈中读取的数据,进行现场分析;
在所述错误收集函数之前,在底层代码中的指定位置中加入用于判断执行现场当前情况的判断函数,所述判断函数用于检查执行现场当前的运行状态或数值,如果出现了预设的问题或返回预设的数值,则进入到错误收集函数中;
所述预设的问题包括但不限于:RAM溢出、禁止读取非用户区和硬件传感器的数值异常。
2.根据权利要求1所述的COS嵌入式开发盲调方法,其特征在于,所述寄存器从SP或SP-X的位置开始,读取X长度的数据写入到NVM可读写区域;如果堆栈是往下增长的,那么从SP的位置开始读取数据,如果堆栈是往上增长的,那么从SP-X的位置开始读取数据。
3.根据权利要求1所述的COS嵌入式开发盲调方法,其特征在于,所述根据不同平台相应的特征分析相应的寄存器以定位问题的代码位置,包括:
对于ARM平台,分析读取的寄存器LR的数据以定位问题的代码位置;
对于51平台,分析读取的寄存器SP-3的数据以定位问题的代码位置。
4.一种COS嵌入式开发盲调系统,其特征在于,所述系统包括:
可读写区域创建模块,用于在OS中分配一块NVM可读写区域;
异常数据获取模块,用于当芯片发生硬件异常时,通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;还用于当代码执行到其自定义的错误收集函数时,所述错误收集函数将执行现场的寄存器数据写入NVM可读写区域;
异常数据读取模块,用于通过APDU指令将NVM可读写区域的数据发送出来;和
异常数据分析模块,用于对APDU指令发送出来的数据进行分析,获取异常信息和/或执行现场信息;
对于ARM平台,所述异常数据为32字节数据:R0,R1,R2,R3,R12,R14,R15,xPSR;所述芯片发生硬件异常通过R14来判断,如果R14的值为0xFFFFFFF9,表示是通过异常进来的数据;
所述异常数据分析模块的处理过程具体包括:对于异常数据,R14与R15的内容能够定位错误发生的位置;R14的内容指明上一层调用函数的对象;R15的内容表示发生异常的时候PC的位置;R0,R1,R2,R3和R12表示数据或者指针,能够依据当前代码发生的位置来判断其中数据的内容;
对于寄存器数据,根据不同平台相应的特征分析相应的寄存器以定位问题的代码位置;结合问题的代码位置处的代码和读取到的寄存器值以及从堆栈中读取的数据,进行现场分析;
所述系统还包括:判断模块,用于检查执行现场当前的运行状态或数值,如果出现了预设的问题或返回预设的数值,则进入到错误收集函数中;所述预设的问题包括但不限于:RAM溢出、禁止读取非用户区和硬件传感器的数值异常。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于捷德(中国)信息科技有限公司,未经捷德(中国)信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910198581.7/1.html,转载请声明来源钻瓜专利网。