)如果单板需要加载DSP、固件或微码,则版本加载进程作为上电基本进程,接收主控进程的上电消息,加载完后通知状态查询和音资源加载进程上电;状态查询进程上电完成后则发上电消息给耗时查询进程。
(2)如果单板不需要加载DSP、固件或微码,则状态查询进程作为基本进程,接收主控的上电消息,然后通知耗时查询进程上电。
3.2 异常处理任务
由于支撑的接口带有阻塞,在处理异常中断的回调函数内,不能调用支撑的接口直接往某个进程发送消息,所以需要创建一个异常处理任务专门负责处理异常中断。
异常处理任务的功能是处理BSP的异常中断,由两部分组成,即一个回调函数和一个处理任务。回调函数由BSP在异常发生时调用,向处理任务上报各种异常中断信息,同时对于一些有可能大量上报的中断,进行一些过滤。回调函数将中断信息发送给处理任务,在处理任务里面向状态查询进程发送设备异常消息,状态查询进程对该设备异常消息进行处理,并通知OAM或SMM。
3.3 版本加载进程
进程涉及到的状态有S_StartUp、S_StateInit、S_StateLoad C6416、S_StateLoadM82620、S_StateLoadTMSC5402、S_StateLoadM80310、S_StateLoadOCT6100、S_StateLoadMicroCode、S_StateIdle。系统启动后,进程创建即S_StartUp,进行分配内存空间等工作,然后进入S_StateInit状态,等待上电消息。获得上电消息后初始化本模块的静态数据区,包括逻辑地址初始化、告警代理进程的配置,并加载DSP软件、微码版本、固件。如果从本地读取的版本加载不成功,则与OMP上的版本管理进程交互,完成版本的下载;然后向状态查询进程和音加载进程发送上电消息,进入S_IdleState状态;同时定时查询DSP状态,发现DSP跑飞后进行重新加载的处理。
3.4 状态查询进程
进程涉及到的状态有S_StartUp、S_StateInit、S_StateWork,前两个状态和版本加载进程流程相同。在获得上电消息后,初始化本模块的静态数据区,包括逻辑地址和告警代理进程的配置,然后转入S_State Work;在该状态下完成所有的单板实时状态查询功能。
本进程处理异常任务发送过来的设备异常消息,定时查询异常设备的告警恢复状态(因为BSP只上报设备的异常,不上报设备异常恢复),和单板上的HW、时钟等实时状态等。
3.5 耗时查询进程
进程涉及到的状态有S_StartUp、S_StateWork。进程创建即进入S_StartUp,进行分配内存等工作后进入S_StateWork。在该状态下,获得上电消息后初始化进程私有数据区和网口设置,定时查询网口状态,同时还完成业务板复位处理和微码设备上网口的配置。
3.6 音资源加载进程
本进程只在MRB板上有,该板上共有4个TMSC5402 DSP,视数据库对DSP用途的配置来定是否需要加载音资源。进程涉及到的状态有S_StartUp、S_StateInit、S_StateWork,状态转换和状态查询进程基本相同,进入S_StateWork后准备加载音资源。
4、数据结构和功能分析
4.1 公用数据结构
4.1.1 T_BSP_DEVICEDRIVER_PARA
BSP设备控制通用结构体:
4.1.2 T_BSP_INT_EVENT
4.2 模块设计和实现
4.2.1 异常处理任务及中断相关处理
异常中断处理包括一个回调函数VoID Callback ForException(T_BSP_INT_EVENT*pReason)和一个处理任务。回调函数由BSP在异常中断发生时调用,将中断信息发送给异常处理任务,在异常任务里面向状态查询进程发送设备异常中断消息。
OSS在初始化设备时,调用BSP提供的外部中断服务程序初始化函数,把CallbackForException作为入口参数传递给BSP,作为单板上设备的异常中断服务程序,然后BSP在各个ISR中调用该回调函数将各种异常和错误信息上报。
4.2.2 实时状态检测进程
该进程在具有版本加载进程的单板上只从版本加载进程接收上电消息,否则作为基本进程运行。主要完成单板外围电路和单板上资源的状态检测,处理异常处理任务发送过来的设备异常消息,定时查询异常设备的告警恢复状态和单板上的HW、GE、FE等实时状态以及DSP的工作状态,定时查询各个设备的工作状况,并且响应后台的性能统计请求等。进程的实现与具体的物理单板密切相关,对各个相应的单板会有不同的检测需求,也随之实现不同的功能。
4.2.3 版本加载进程
该进程作为基本上电进程,接收主控进程发来的上电消息,并负责给本模块的另外两个进程上电。上电时,首先对单板的需下载资源进行设置,再加载DSP、固件和微码版本,然后给状态查询和音下载进程发送上电消息。
4.2.4 音资源加载进程
音资源的加载在MRB单板上,在完成对DSP TMS320VC5402的版本加载后,通过DSP与HOST的交互,调用BSP提供的接口函数,完成加载。本