一种COS嵌入式开发盲调方法、系统、设备及存储介质技术方案

技术编号:21453733 阅读:18 留言:0更新日期:2019-06-26 04:43
本发明专利技术公开了一种COS嵌入式开发盲调方法、系统、设备及存储介质,所述方法包括:在OS中分配一块NVM可读写区域;通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;或者当代码执行到其自定义的错误收集函数时,所述错误收集函数将执行现场的寄存器数据写入NVM可读写区域;通过APDU指令将NVM可读写区域的异常数据发送出来;对APDU指令发送出来的数据进行分析,获取异常信息。本发明专利技术的方法能够利于定位问题,一旦发生非正常的运行状态,可以帮助技术人员快速发现问题,并且找到问题发生的原因及发生的位置,进而可以快速有效地解决问题。

【技术实现步骤摘要】
一种COS嵌入式开发盲调方法、系统、设备及存储介质
本专利技术涉及COS(cardoperatingsystem)嵌入式开发,可以基于ARM平台、51平台等各种嵌入式平台进行开发,具体涉及一种COS嵌入式开发盲调方法系统、设备及存储介质。
技术介绍
在进行COS开发的时候,一般是使用软件仿真环境,或者硬件仿真环境进行开发。一旦开发完成,需要将OS提交给芯片制造商,芯片制造商会将OS掩膜到ROM中。样片中,OS已经在ROM中了。ROM是不可改变的。一旦OS底层代码运行出了问题,仿真环境无法使用,需要通过打补丁的方式修正问题。或者根据实验总结规律,查找程序代码中的错误,修改认为有可能引起问题的代码段,然后再验证。现有技术的缺点:对于COS的开发,一般使用软件仿真或者硬件仿真环境进行开发。但一旦开发完成,OS下载到卡片中,这个时候仿真环境就无法使用了。由于COS开发遵守一套GP与JavaCard规范,使用的是ISO14443协议与ISO7816协议。所以有时候可以通过APDU指令的方式发现问题,比如SW返回的不对。但是当OS底层,或者说HAL层(硬件抽象层)出了问题的时候,就无法使用这个方法在卡片上面调试了。因此,OS底层代码运行出现问题后,不易找到问题的根源所在。
技术实现思路
本专利技术的目的克服上述技术缺陷,提出了一种COS嵌入式开发盲调方法,当仿真环境无法使用的时候,使用这个调试方法进行调试,由于调试不处于仿真环境下,该调试方法又称为盲调方法。因为OS底层遵循的规则是芯片的规则,与上层规范无关;此时可以使用本专利技术的方法定位问题。为了实现上述目的,本专利技术提出了一种COS嵌入式开发盲调方法,所述方法包括:在OS中分配一块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表示数据或者指针,能够依据当前代码发生的位置来判断其中数据的内容。一种COS嵌入式开发盲调系统,所述系统包括:可读写区域创建模块,用于在OS中分配一块NVM可读写区域;异常数据获取模块,用于通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;异常数据读取模块,用于通过APDU指令将NVM可读写区域的异常数据发送出来;和异常数据分析模块,用于对APDU指令发送出来的数据进行分析,获取异常信息。一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述的方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述的方法。一种COS嵌入式开发盲调方法,所述方法包括:在OS中分配一块NVM可读写区域;当代码执行到其自定义的错误收集函数时,所述错误收集函数将执行现场的寄存器数据写入NVM可读写区域;通过APDU指令将NVM可读写区域的数据发送出来;对APDU指令发送出来的数据进行分析,获取执行现场信息。作为上述方法的一种改进,在所述错误收集函数之前,在底层代码中的指定位置中加入用于判断执行现场当前情况的判断函数,所述判断函数用于检查执行现场当前的运行状态或数值,如果出现了预设的问题或返回预设的数值,则进入到错误收集函数中。作为上述方法的一种改进,所述预设的问题包括但不限于:RAM溢出、禁止读取非用户区和硬件传感器的数值异常。作为上述方法的一种改进,所述寄存器从SP或SP-X的位置开始,读取X长度的数据写入到NVM可读写区域;如果堆栈是往下增长的,那么从SP的位置开始读取数据,如果堆栈是往上增长的,那么从SP-X的位置开始读取数据。作为上述方法的一种改进,所述对APDU指令发送出来的数据进行分析,具体为:根据不同平台相应的特征分析相应的寄存器以定位问题的代码位置;结合问题的代码位置处的代码和读取到的寄存器值以及从堆栈中读取的数据,进行现场分析。作为上述方法的一种改进,所述根据不同平台相应的特征分析相应的寄存器以定位问题的代码位置,包括:对于ARM平台,分析读取的寄存器LR的数据以定位问题的代码位置;对于51平台,分析读取的寄存器SP-3的数据以定位问题的代码位置。一种COS嵌入式开发盲调系统,所述系统包括:可读写区域创建模块,用于在OS中分配一块NVM可读写区域;异常数据获取模块,用于当代码执行到其自定义的错误收集函数时,所述错误收集函数将执行现场的寄存器数据写入NVM可读写区域;异常数据读取模块,用于通过APDU指令将NVM可读写区域的数据发送出来;和异常数据分析模块,用于对APDU指令发送出来的数据进行分析,获取执行现场信息。作为上述系统的一种改进,所述系统还包括:判断模块,用于检查执行现场当前的运行状态或数值,如果出现了预设的问题或返回预设的数值,则进入到错误收集函数中;所述预设的问题包括但不限于:RAM溢出、禁止读取非用户区和硬件传感器的数值异常。一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述的方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述的方法。本专利技术的优势在于:1、本专利技术的方法克服了现有的仿真环境,模拟不了真卡,无法使用现有技术;在无法使用仿真环境的条件下快速对底层故障进行定位;2、采用现有技术中的方法无法识别问题发生的原因及位置,或者需要在几万或几十万行甚至更多的代码中查找错误,效率及准确率均很低;有时当异常状态发生后,系统甚至无法提示已产生问题;本专利技术的方法通过引入判断函数及错误收集函数,能够利于定位问题,一旦发生非正常的运行状态,可以帮助技术人员快速发现问题,并且找到问题发生的原因及发生的位置,进而可以快速有效地解决问题。附图说明图1为本专利技术的实施例1提出了COS嵌入式开发盲调方法的流程图;图2为本专利技术的实施例3提出了COS嵌入式开发盲调方法的流程图。具体实施方式下面结合附图和实施例对本专利技术进行详细的说明。实施例1如图1所示,本专利技术的实施例1提出了一种COS嵌入式开发盲调方法,对于正常发生Exception,该方法包括:步骤101)在OS(操作系统)中申请一块NVM可读写区域,命名为Buffer001,Buffer001的数据可以通过APDU(应用协议数据单元)指令发送出来。步骤102)在芯片异常的中断服务函数中,读取刚刚PUSH进来的32字节数据。对于ARM平台而言:本文档来自技高网...

【技术保护点】
1.一种COS嵌入式开发盲调方法,所述方法包括:在OS中分配一块NVM可读写区域;通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;通过APDU指令将NVM可读写区域的异常数据发送出来;对APDU指令发送出来的数据进行分析,获取异常信息。

【技术特征摘要】
1.一种COS嵌入式开发盲调方法,所述方法包括:在OS中分配一块NVM可读写区域;通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;通过APDU指令将NVM可读写区域的异常数据发送出来;对APDU指令发送出来的数据进行分析,获取异常信息。2.根据权利要求2所述的COS嵌入式开发盲调方法,其特征在于,对于ARM平台,所述异常数据为32字节数据:R0,R1,R2,R3,R12,R14,R15,xPSR;所述芯片发生硬件异常通过R14来判断,如果R14的值为0xFFFFFFF9,表示是通过异常进来的数据。3.根据权利要求2所述的COS嵌入式开发盲调方法,其特征在于,所述对APDU指令发送出来的数据进行分析,具体为:R14与R15的内容能够定位错误发生的位置;R14的内容指明上一层调用函数的对象;R15的内容表示发生异常的时候PC的位置;R0,R1,R2,R3和R12表示数据或者指针,能够依据当前代码发生的位置来判断其中数据的内容。4.一种COS嵌入式开发盲调系统,其特征在于,所述系统包括:可读写区域创建模块,用于在OS中分配一块NVM可读写区域;异常数据获取模块,用于通过中断服务函数读取异常数据并写入NVM可读写区域,所述异常数据为芯片发生硬件异常时产生的数据;异常数据读取模块,用于通过APDU指令将NVM可读写区域的异常数据发送出来;和异常数据分析模块,用于对APDU指令发送出来的数据进行分析,获取异常信息。5.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述的方法。6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行权利要求1至3任一项所述的方法。7.一种COS嵌入式开发盲调方法,所述方法包括:在OS中分配一块NVM可读写区域;当代码执行到其自定义的错误收集函数时,所述错误收集函数将执行现场的寄存器数据写入NVM可读写区域;通过APDU指令将NVM可读写区域的数据发送出来;对APDU指令发送出来的数据进行分析,获取执行现场信息。8.根据权利要求7所述的COS嵌入式开发盲调方法,其特征在于,在所述错误收集函数之前,在底层代码中的指定位置中加入用于判断执行现场当前情况的判断函数,...

【专利技术属性】
技术研发人员:贺洪恩
申请(专利权)人:捷德中国信息科技有限公司
类型:发明
国别省市:江西,36

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1