实时系统vxWorks - 在线调试

本文介绍了如何在vxWorks实时操作系统中进行应用工程创建、调试环境建立和在线调试的详细步骤,包括新建工程、编译、连接目标机、设置断点及运行调试等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

在之前的文章小编就讲过,在小编的字典中,调试能力的重要性是要强过开发设计能力的。关于调试为何如此重要等等,这里就不再过多的赘述了。

注意

★环境:vxWorks<6.9.4>   workbench<3.3.5>   

操作

创建应用工程

1. 新建工程文件夹。

2. 启动workbench,选择工程目录,然后点击OK。

3. 在Project Explorer窗口空白处右键,选择New->VxWorks Downloadable Kernel Module Project。

4. 输入Project name,选择Create project in workspace,然后点击Next。

5. 一路点击Next,直到出现如下界面,选择Active build spec为SIMNT diab,然后点击Finish。

6. 在工程名右键,依次点击New->File。

7. 输入文件名,然后点击Finish。

8. 输入以下代码。

#include <vxWorks.h>      
#include "stdioLib.h"  

int main(void)
{
    int a=1, b=3, c;
    c = a+b; 
    printf("hello vxWorks...\n");
    printf("c = %d\n", c);
    return 0;
}

9. 右键工程,选择Rebuild Project,开始编译工程。

10. 在弹出窗口中点击Continue。

11. 等待编译完成,终端会提示工程是否有错。

建立调试环境

1. 启动vxWorks。

2. 键入ifconfig命令,我们可以查看到目标机的ip地址为192.168.10.200。

3. 回到workbench,点击按钮,新建连接。

4. 在弹出窗口选择Wind River VxWorks 6.x Target Server Connection,然后点击Next。

5. 在Target name or address处输入目标机ip地址,并在Kernel image处选择目标机镜像,注意,这里的目标机镜像要与实际目标机运行的镜像一致,否则会报错。最后点击Finish。

6. 回到workbench主窗口,此时我们可以看到新建的远程终端系统已经自动连接成功。

7. 在工程名上右键,依次点击Debug As->VxWorks Kernel Task。

8. 选择目标机,并在Entry Point处点击Browse,指定主函数入口。

9. 在弹窗中选择main,也就是我们的主函数入口,然后点击OK

10. 点击Debug开始调试。

开始调试

1. 执行完上面的步骤,工程进入调试模式,下图红框出按钮用于执行调试命令,包括单步运行,终止,运行等,这点与其他调试工具命令基本一致。

2. 如果我们想要增加断点,只需要在对应的语句前双击即可,取消断电也只需要再次双击。

3. 点击运行按钮,程序将会直接运行到断点,同时我们可以在Variable窗口观测到相关变量的值。

4. 另外分析程序,在断点前一句,目标机应该会有hello VxWorks的输出信息,此时回到目标机,可以看到屏幕上会有相应的信息输出。

5. 最后,若想退出调试模式,只需要点击终止按钮即可。

往期 · 推荐

浅谈linux - 字符设备框架

帮你自动化办公的python-自动提取pdf指定页(项目概述)

也没想象中那么神秘的数据结构-一种通用化的双向链表设计(底层源码)

也没想象中那么神秘的数据结构-一环扣一环的“链表”(双向链表)

我用C语言玩对象,偷偷关注着你的观察者模式(基类设计)

关注

更多精彩内容,请关注微信公众号:不只会拍照的程序猿,本人致力分享linux、设计模式、C语言、嵌入式、编程相关知识,也会抽空分享些摄影相关内容,同样也分享大量摄影、编程相关视频和源码,另外你若想要获得更多内容教程请关注公众号:不只会拍照的程序猿。

1 TORNADO的调试工具 4 1.1 WINDSHELL 4 1.1.1 简介 4 1.1.2 功能键 5 1.1.3 特殊控制符 6 1.1.4 计算功能 6 1.1.5 环境变量 6 1.1.6 内置指令 6 1.2 BROWSE 17 1.2.1 内存查看 17 1.2.2 模块信息 17 1.2.3 堆栈使用率 18 1.2.4 CPU占有率 18 1.2.5 任务信息 19 1.2.6 中断向量表 19 1.2.7 实体查看 20 1.3 DEBUGGER 21 1.3.1 条件断点 21 1.3.2 代码显示 21 1.4 TARGET SERVER 21 1.4.1 使用串口调试 21 1.4.2 重定向 21 1.5 WINDVIEW 22 1.5.1 记录层次 22 1.5.2 记录数据存储方式 22 1.5.3 传送方式 22 1.5.4 数据分析 23 1.6 TRIGGER 23 1.7 TELNET 24 1.8 调试模式 24 1.8.1 任务调试模式下的多任务调试 26 1.8.2 系统调试模式下多任务的调试: 27 1.8.3 中断服务程序的调试 28 2 V2支撑的调试手段 28 2.1 各模块提供的函数 28 2.2 如何查看ERROR.LOG文件 29 2.2.1 定位到具体的出错行 31 3 V3支撑的调试手段 31 1.1. 进程调试 31 1.2. 查看所有进程信息:OSS_DBGGETALLUSEPCBINFO 31 1.3. 查看当前运行的进程信息 31 1.3.1. 进程断点设置:b 31 1.3.2. 当前进程运行信息:OSS_DbgGetCurPCBInfo 32 1.3.3. 当前进程的消息信息:OSS_DbgGetCurMsgInfo 32 1.3.4. 进程断点取消:bd 32 1.3.5. 恢复进程运行:tr 32 1.4. 内存观察 32 1.4.1. 消息队列堆积、阻塞观察:tw 32 1.4.2. 任务消息队列观察:OSS_DbgShowQueueCtl 33 1.4.3. 任务UB使用观察:OSS_DbgShowTaskUB 33 1.4.4. 进程使用UB情况:OSS_DbgShowProcUBInfo 34 1.4.5. UB的配置和当前状态:OSS_DbgMemUbUsePrn/ OSS_DbgShowUbPool 34 1.5. 通信和定时器状态观察 35 1.5.1. 通信状态显示OSS_DbgShowComm 35 1.5.2. 测试板间通信是否正常:OSS_DbgRudpPing 35 1.5.3. 单板上定时器的使用信息:OSS_DbgGetTimerInfo 36 1.5.4. 单板进程使用定时器的信息:OSS_DbgGetTimerInfoOfProc 36 1.6. 杂项观察 36 1.6.1. 异常发生后信息观察:OSS_DbgShowExcInfo 36 1.6.2. 堆栈使用率/运行时间统计:zte 36 1.6.3. 进程最近打印内容观察:ztecall/ ztemsg 36 1.6.4. 进程最近打印的1K内容和打印时间:zteprint 37
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不只会拍照的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值