1简介
  提供从宿主机到目标机之间的一个命令 shellWindSh 是一种非常受欢迎的开发工具,它具有很强的交互性和可操作性,允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程。它不但具有一般命令语言的功能,而且也具有 C 语言的设计特点,能够解释几乎任何 C 语言表达式, 执行大多数 C 语言算子,解析符号表数据。对初用者来说,WindSh学习起来比较简单,使用比较方便,对熟练用户而言,则有较为高级的手段可以应用。
  WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。Tornado外壳还能解释常规的工具命令语言TCL
  WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。它主要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机。
2 启动和终止
启动:命令行方式为:windSh phobos(目标服务器名称);菜单Tool->Shell;工具条。
终止: 快捷键[Ctrl+D];命令exit() quit()
3 Shell特性
I/O重定向: 程序员常常调用例程从标准输入接收数据或在标准输出显示数据,缺省情况下,标准输入输出流被定向到 Tornado Shell 使用Tcl过程 shConfig 修改WindSh 环境变量 SH_GET_TASK_IO,实现I/O复位向。
  路径与符号补齐: 键入任何符号或存在的路径名的开始部分,然后键入[Ctrl+D] Shell会自动补齐命令或路径名。 并且可以继续键入若干字符后加上 [Ctrl+D] 知道命令或路径完整为止。
打印命令摘要(Synopsis ):键入完整的命令后,继续键入空格 + [Ctrl+D] 可以显示命令摘要,同时输入的命令继续作为输入。
使用Synopsis printing功能包含自定义程序的说明显示
1、按WRS代码约定创建包含新例程的文件
2、在工程中包含这些文件
3、在makefile中为宏DOC_FILES加入文件名
4à cd $WIND_BASE/target/src/projectX
à make synopsis
显示HTML 帮助: 键入完整的命令后,继续键入空格 + [Ctrl+W]。将会启动浏览器显示该命令的详细帮助信息。
删除一行: [Ctrl+U]
输入类似Vi编辑命令:Esc
数据转换与计算: 键入整数或字符后回车可以显示该整数的十进制及十六进制值。也可以键入字符常量或符号地址。
所有的C操作符都可以在Shell里用于数值计算。也可以在C表达式中使用变量。
WindSh环境变量: 使用 shConfig 命令修改环境变量
SH_GET_TASK_IO 为调用函数设置I/O重定向。
ON:重定向到WindSh;OFF:I/O显示到目标机控制台。
LD_CALL_XTORS
LD_SEND_MODULES:设置load模式。
LD_PATH: 为模块设置搜索路径,用隔开。 例如:ld 命令提交后,Shell搜寻模块的路径顺序为:首先在当前目录,然后到LD_PATH设置的路径。
LD_COMMON_MATCH_ALL:
DSM_HEX_MOD:
注意:因为shConfigTcl过程,所以输入命令时使用 ?shConfig
4 WindSh内置命令
1.4.1 任务管理
sp( ) 用缺省参数创建一个任务(priority="100" 返回值为任务ID,或错误)(taskSpawn)
sps( ) 创建一个任务,并挂起它(启动一个任务进入阻塞态
shell命令属于什么语言
tr( ) 恢复一个挂起的任务(与taskResume相同)(恢复一个阻塞的任务
ts( ) 挂起一个任务 (与taskSuspend相同)(阻塞一个任务
td( ) 删除一个任务 (与taskDelete相同)
period( ) 创建一个周期调用函数的任务(启动一个任务周期性调用某个函数
repeat( ) 创建一个重复调用函数的任务
taskIdDefault( ) 设置并报告当前缺省的任务ID。(报告当前任务的任务号
1.4.2 任务状态信息
i( ) 显示系统信息,包括当前任务明、状态等(重复查询目标机,有时可能显示不一致)
iStrict( ) 类似于i( ),但只查询目标机一次
ti( ) 显示任务的TCB信息 (例如:ti tWdbTask)
w( ) 显示所有挂起任务的详细信息。.显示各个任务等待的摘要信息
tw( ) 显示某挂起任务的详细信息。(例如: tw tLogTask)(显示某个指定任务正在等待的对象信息
checkStack( ) 显示一个任务的使用堆栈的总结,没有定义任务时显示所有
tt( ) 显示堆栈记录
taskIdFigure( ) 报告任务的ID,以及名称
1.4.3 系统信息
devs( ) 列出目标机系统上的所有设备
lkup( ) List symbols from symbol table在符号表中查指定的符号项
lkAddr( ) List symbols whose values are near a specified value
d( ) 显示目标机内存
l( ) Disassemble and display a specific nuber of instructions反汇编显示
printError( ) 给出最近的错误值
version() 显示VxWorks版本
cd( ) 改变宿主机工作目录(不影响目标机)
ls( ) 列出宿主机工作目录下的文件
pwd( ) 显示宿主机当前工作目录
help( ) 显示Shell命令的帮助
h( ) 显示最近输入的20个命令
shellHistory( ) 设置或显示Shell命令
shellPromptSet( )改变C解释器Shell 提示
printLogo( ) 显示Tornado Shell 登陆
1.4.4 系统修改和调试
ld( ) 加载一个对象模块到目标机,并动态连接到run-time
( 例如:ld 1,0,"/Tornado/target/proj/project0/simntgnu/multitasktest.o"
ld() < / Tornado/target/proj/project0/simntgnu/multitasktest.o
错误:返回-1;正确:返回MOUDLE_ID
unld( ) 从目标机内存中删除动态连接的对象模块 例:unld (“windDemo.o”)
m( ) Modify memory in Width(byte,short,long)starting at adr.
MRegs( ) 为特定的任务改变寄存器的值
b( ) 设置或修改断点 例:b (wdCreate)
bh( ) 设置硬件断点
s( ) 单步跟踪到下一条指令
so( ) 单步跟踪,但跳过子程序
c( ) 从断点处继续
cret( ) 继续执行,直到当前的子程序返回
bdall( ) 删除所有断点
bd( ) 删除一个断点
reboot( ) 重新启动targe server
bootChange( ) 改变boot参数保存值
sysSuspend( ) 如果目标机代理支持,进入系统模式
sysResume( ) 如果目标机代理支持,从系统模式返回到任务模式
agentModeShow( ) 显示代理模式(系统模式 任务模式)
sysStatusShow( )显示系统上下文(suspend running 系统模式下使用)
quit( ) or exit( )
1.4.5 对象显示命令( WindSh Commands for Object Display )
show( ) shell窗口打印特定对象的信息
browse( ) Tornado browser 显示特定的对象
classShow( ) Show information about a class of VxWorks kernel objects.List available classes
taskShow( ) 显示任务TCB信息
taskCreateHookShow( ) 显示任务创建例程列表
taskDeleteHookShow( ) 显示任务删除例程列表
taskRegsShow( ) 显示任务寄存器的内容
taskSwitchHookShow( ) 显示任务切换例程列表
taskWaitShow( ) 显示阻塞任务信息
semShow( ) 显示信号量的信息
semPxShow( ) 显示POSIX信号量的信息
wdShow( ) 显示看门狗的信息
msgQShow( ) 显示消息队列的信息
mqPxShow( ) 显示POSIX消息队列的信息
iosDrvShow( ) 显示系统驱动程序的信息
iosDevShow( ) 显示系统设备的信息
iosFdShow( ) 显示系统命名descriptor的信息
memPartShow( ) 显示分区块及统计信息
memShow( ) 显示系统分区上空闲和已分配空间的总数等等
smMemShow( ) Display the amount of free space and statistics on
memory-block allocation for the shared-memory system partition
smMemPartShow( ) Display the amount of free space and statistics on
memory-block allocation for a specified shared-memory partition

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。