网络通信功能异常的处理方法、应用处理器和移动终端的制作方法_2

文档序号:9619323阅读:来源:国知局
支持包,简称BSP)程序检测内存访问是否发生错误,当调制解调器检测到发生内存访问 错误之后,调制解调器会发生崩溃,无法正常进行数据处理,导致用户不能上网。协议栈 表示某个通信制式对应的多种协议的总和,例如:协议栈包括全球移动通信系统(Global System for Mobile Communication,简称GSM)协议栈、增强型数据速率GSM演进技术 (Enhanced DataRate for GSM Evolution,简称EDGE)协议栈、高速下行分组接入技术 (High Speed DownlinkPacketAccess,简称HSPDA)协议栈、时分同步的码分多址技术(Time Division-Synchronous Code Division MultipleAccess,简称 TD-SCDMA)协议栈、时分双 工长期演进 LTE(Time_Division Duplex Long Term Evolution,简称 TDD-LTE)协议栈、频 分双工长期演进(Frequency-Division Duplex,简称FDD-LTE)协议栈等,各个通信制式协 议栈下面又包括多个子协议栈,此处不再赘述。造成内存访问错误的异常原因是多种多样 的,调制解调器检测到内存访问错误时,向应用处理器发送异常指示消息,应用处理器接收 到异常指示消息,需要定位内存访问错误的异常原因;例如,异常原因包括:写操作地址越 界、读操作地址越界、传递空指针等。
[0049] 需要说明的是,调制解调器可以集成在应用处理器AP的内部,也可以是独立于应 用处理器的一个芯片,本发明不作限制。
[0050] S102、若在预设时长内相同异常原因的出现次数达到预设次数,所述应用处理器 获取当前使用的第一协议栈。
[0051] 具体的,预先设置有预设时长和预设次数,在预设时长内调制解调器每检测到内 存访问错误时,确定异常原因,并对各种异常原因进行累计计数,当某种类型的异常原因在 预设时长内的出现次数超过预设次数,表明调制解调器当前使用的协议栈在运行过程中出 现问题,应用处理器需要获取调制解调器当前使用的第一协议栈。其中预设时长、预设次数 和相同异常原因的类型本发明不作限制,可根据实际需求进行自定义。
[0052] S103、所述应用处理器关闭所述第一协议栈,以及从所述调制解调器支持的多个 协议栈中的选择除所述第一协议栈的第二协议栈。
[0053] 具体的,第一协议栈是引发内存访问错误的协议栈,应用处理器需要关闭第一协 议栈,防止内存访问错误反复发生。应用处理器从调制解调器支持的多个协议栈中选择一 个除第一协议栈的第二协议栈。然后,调制解调器确定调制解调器支持的多个协议栈中选 择除第一协议栈的第二协议栈,其中,调制解调器选择的策略可以是:选择比第一协议栈低 一级的协议栈作为第二协议栈;或测量周围各个协议栈对应的小区信号的信号强度,将信 号强度最大的协议栈作为第二协议栈;或选择比第一协议栈高一级的协议栈作为第二协议 栈;或采用其他的策略确定第二协议栈,本发明不作限制。
[0054] S104、所述应用处理器开启所述第二协议栈,并使用所述第二协议栈进行网络注 ΠΠ. 册。
[0055] 具体的,关闭第一协议栈后,移动终端转换为无服务状态,应用处理器开启选择的 第二协议栈,使用第二协议栈进行网络注册,网络注册的过程为:移动终端向网络侧发起附 着请求(attachrequest),若网络侧允许移动终端接入,向移动终端返回附着响应(attach response),表示网络注册成功,移动终端转换为有服务状态;若网络侧不允许移动终端接 入,向移动终端返回错误信息,表示网络注册失败。
[0056] S105、判断网络注册是否成功。
[0057] 具体的,应用处理器判断网络注册是否成功,如果判断结果为是,执行S106,如果 判断结果为否,执行S107。
[0058] S106、所述应用处理器记录当前的位置信息。
[0059] 具体的,位置信息表示移动终端在移动通信网络中逻辑位置,位置信息可以是小 区标识或区域位置码或位置跟踪区域等,本发明不作限制。如果使用第二协议栈注册网络 成功,记录当前的位置信息。
[0060] S107、所述应用处理器恢复所述支持的多个协议栈中的默认协议栈的开关状态和 /或复位所述调制解调器。
[0061] 具体的,默认协议栈为预先设置的协议栈,默认协议栈为调制解调器支持的多个 协议栈中的一个,此处可以针对所有地区设置同一个默认的协议栈作为调制解调器初始选 择使用的协议栈,也可以针对单个地区或处于某一区域的多个地区分别设置不同的默认协 议栈,本发明实施例不作任何限定。如果使用第二协议栈注册网络失败,开启预先设置的默 认协议栈并对调制解调器进行复位操作,复位操作之后,调制解调器使用默认协议栈进行 工作。
[0062] 实施本发明的实施例,应用处理器接收到调制解调器检测到内存访问错误时发送 的异常指示消息,关闭调制解调器当前使用的协议栈,从调制解调器支持的多个协议栈中 选择出当前使用的协议栈的其他协议栈,开启其他协议栈并使用其他协议栈注册网络,在 成功注册上网络时,记录当前的位置信息。这样在调制解调器无法正常通信时快速的被检 测到,并通过其他协议栈进行网络注册的方式使调制解调器自动尝试恢复正常,避免强制 重启手机或位置更新造成的耗时过长的问题,减少了网络故障恢复的时间。
[0063] 参见图2,为本发明实施例提供的一种网络通信功能异常的处理方法的流程示意 图,在本发明实施例中,所述方法包括:
[0064] S201、调制解调器是否检测到内存访问错误。
[0065] 具体的,调制解调器安装在手机内,可以封装为应用处理器AP内,或独立于应用 处理器,本发明不作限制。调制解调器用于基带信号和射频信号之间的相互转换,主要应用 于数据业务。内存访问错误表示调制解调器访问内存时发生的错误,对内存的操作分为读 操作和写操作两种,读操作和写操作的过程中发生的错误包括:未在内存中读取或写入正 确的数据、读取或写入的地址不正确等,例如:内存访问错误包括:函数之间传递的指针为 空指针,导致读取或写入内存的地址发生错误;读取内存发生越界或写入内存发生越界等 内存访问错误,越界表示读操作或写操作的地址不在指定的地址范围内;内存访问错误的 异常原因可分为多种,相同的内存访问错误可能由不同的异常原因导致的,具体的异常原 因的定位可采用任意已知的手段来确定,本发明不作限制。调制解调器检测是否发生内存 访问错误的方法可以是:在启动调制解调器对应的应用程序时,同时启动BSP程序,调制解 调器对应的应用程序在运行的过程中,BSP程序监控应用程序访问内存是是否发生内存访 问错误,若发生内存访问错误,执行S202,若没有发生错误,执行S201。发生内存访问错误 时,调制解调器对应的应用程序将无法正常运行,甚至导致程序崩溃,由于调制解调器主要 用于数据业务,直接造成用户无法接入互联网。
[0066] S202、所述调制解调器指示应用处理器处理本次异常。
[0067] 具体的,调制解调器指示应用处理器处理本次异常的方法可以是:调制解调器向 应用处理器发送异常指示消息,应用处理器接收到异常指示消息表明调制解调器检测到内 存访问错误,此时应用处理器需要对该异常进行处理。其中,异常指示消息的格式本发明不 作限制,可以利用现有的消息中扩展字段的方式来实现或构造新的消息来实现。
[0068] S203、所述应用处理器确定所述内存访问错误的异常原因。
[0069] 其中,内存访问错误的异常原因多种多样,不同的异常原因均可能造成内存访问 错误,例如:写操作地址越界、读操作地址越界或非法指针等异常原因均能造成内存访问错 误,应用处理器在调制解调器检测到内存访问错误时,确定内存访问错误的异常原因。
[0070] S204、预设时长内相同异常原因的出现次数是否达到预设次数。
[0071] 具体的,预先设置有预设时长和预设次数,在预设时长内调制解调器每检测到内 存访问错误时,确定异常原因,并对各种异常原因进行累计计数;判断某种类型的异常原因 在预设时长内的出现次数是否超过预设次数,若是,则表明调制解调器当前使用的协议栈 在运行过程中出现问题,应用处理器需要获取调制解调器当前使用的第一协议栈,若S204 的判断结果为是,执行S205 ;如果S204的判断结果为否,执行S206。其中预设时长、预设次 数和相同异常原因的类型本发明不作限制,可根据实际需求进行自定义。
[0072] S205、所述应用处理器获取所述调制解调器当前使用的第一协议栈。
[0073] 具体的,协议栈表示某个通信制式对应的多种协议栈的总和,例如:协议栈包括 GSM协议栈、EDGE协议栈、HSPDA协议栈、TD-SCDMA协议栈、TDD-LTE协议栈、FDD-LTE协议 栈等,各
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1