VWorks下的任务监控方法及应用

上传人:jin****ng 文档编号:110354849 上传时间:2022-06-18 格式:DOC 页数:2 大小:17KB
收藏 版权申诉 举报 下载
VWorks下的任务监控方法及应用_第1页
第1页 / 共2页
VWorks下的任务监控方法及应用_第2页
第2页 / 共2页
资源描述:

《VWorks下的任务监控方法及应用》由会员分享,可在线阅读,更多相关《VWorks下的任务监控方法及应用(2页珍藏版)》请在装配图网上搜索。

1、VxWorks 下的任务监控方法及应用 1 VxWorks 交叉开发模式 在 VxWorks 下应用软件开发时采用交叉开发模式,宿主机通常 是普通的PC机,目标机就是应用程序真实的运行的硬件平台;集成开发环境Tornado位于宿 主机,用户通过Tornado开发环境完成代码编写、编译、链接,宿主机与目标机通过分别位 于其上的Target Server和Target Agent实现信息交互,物理连接往往是串口或者网络,在 开发调试过程中,用户将编译链接后的目标代码通过Target Server加载到目标机上运行, 可以通过 Tornado 下的 Shell、 Debugger、 Browser

2、以及 Windview 等工具监控目标机上应用 程序任务的运行情况,应用程序使用printf语句打印的调试信息回送到宿主机,借助打印信 息和Tornado提供的各种调试工具,开发者可以监控任务的运行情况,当某个任务出错时, 可以通过各种输出信息分析问题原因。 但是一旦完成开发投入实际试验使用, 由于实际 使用环境和当初的开发调试环境有较大的区别,难免会出现各种异常情况,比较常见的异常 就是任务挂起,在这种情况下开发者往往无法像在地面调试时那样可以外接调试电缆捕获异 常信息, 以确定发生异常的任务,也无法捕获开发者在开发过程中的辅助打印信息,这种情 况在战斗机机载软件尤为常见。基于VxWorks

3、的应用软件大多采用多任务方式,无法像以前 没有操作系统的嵌入式系统那样,通过硬件看门狗电路,在软件运行出错时自动重启恢复软 件运行,一个任务出错往往并不会引起操作系统重启,用户通过上层很难判断应用软件运行 是否正常。因此需要建立软件看门狗机制,监控任务运行情况,在出现异常时记录必要的异 常信息,自动重启设备。同时,需像开发阶段那样记录输出信息,以辅助分析异常原因。2系统输出信息捕获在VxWorks下系统输出信息包括:标准输出(STD_OUT,文件描述为1)和标准错误输出(STD_ERR,文件描述为2)。使用printf、IogMsg语句等输出的信息,以 及用户和操作系统其他的打印输出信息均通过

4、STD_OUT输出,而STD_ERR则是在系统出错时 使用,例如: data accessException current instruction address: 0x00072054Machine Status Register: 0x0000b030Data Access Register: 0xeeeeeef2Condition Register: 0x22000040Data storage interrupt Register :0x0000b030Task :0x1c9e50&quo t;RadarProc&quo t;上面的打印信息是任务& ldquo;RadarProc&r

5、dquo;出错时操作系统输出的错误信息,通过STD_ERR文件描述符输出的。STD_OUT和STD_ERR可以分别输出,但是通常情况下它们均定向到控制台(consoleFd),即在交叉开发模式下通过目标机 Target Agent和宿主机的Target Server输出到串口或者网络。在VxWorks下操作系统提供 ioGIobalStdSet 接口函数支持输出重定向,函数原型:void ioGIobalStdSet(int stdFd,int newFd) 其中stdFd为STD_OUT( 1)或者STD_ERR(2),newFd为重定向的文件描述符。利用 这个函 数就 可以 实现系统 输出

6、 信息 的捕 获,具体 方法 如下 : FILE* printf_stream = fopen("/ide0/log.txt","a+"):ioGlobalStdSet(STD_OUT,fileno(printf_stream);ioGlobalStdSet(STD_ERR,fileno(printf_stream);在上面的代码中,在设备/ideO(电子盘)上打开名为 log.txt 的文件,打开方式为追加式,将 STD_OUT 和 STD_ERR 重定向到 printf_stream 指向的文件。需要注意的是,不能像平常那样关闭 printf_str

7、eam 文件指针, 这样就可以将系统的所有输出信息保存在文件log. txt中。3任务监控3.1任务状态VxWorks下任务有四种基本状态:READY、PEND、DELAY、SUSPEND,在用户不使用Shell命令人为改变任务状态前提下,如果状态中出现SUSPEND,就说明该任 务已经出错。3.2 任务监控设计 任务监控需要周期性的监测操作系统中所有运行的任务状态,发现某 任务出错时记录任务的相关基本信息,并自动重启。任务监控必须两个操作系统接口函数: int taskIdListGet(int idList,int maxTasks)STATUS taskStatusString(int

8、tid,char*pString) taskldListGet函数可以获得当前操作系统中运行的所有任务,idList存放获 取的任务id的数组,maxTasks为数组大小。taskStatusString获取任务状态名称,tid是 任务id,pString为任务状态名称。在发现时任务出错时通过回调函数告诉用户出错任务情况,出错任务数据结构:struct TroubleTaskStruetint taskID; /出错任务idchar taskName256; /任务名称 chartaskState32; /任务状态;回调函数原型: typedefvoid (*TroubleTaskFuncPtr)(const TroubleTaskStruct troubleTaskVector , int troubleTaskNum);4 结束语 嵌入式系统应用软件完成开发调试后,在随后的试验阶段很难象调试阶段那样 得到任务状态等输出信息,一旦出现任务异常,因为缺乏发生异常时的相关信息,很难判断 和分析问题,给解决问题带来很大难度,使用任务监控和系统信息捕获技术可以有效地解决 此类问题。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!