Common VxWorks Commands and Flash File System Operations
๐ง Essential VxWorks Shell Commands #
The VxWorks shell provides a large collection of diagnostic commands for inspecting tasks, memory, modules, devices, drivers, semaphores, CPU registers, buses, and other system resources.
These commands are especially useful during BSP development, hardware bring-up, driver debugging, system integration, and field diagnostics.
The following table summarizes commonly used commands.
| Command | Description |
|---|---|
i |
Displays basic task information. When the parameter is 0, information for all tasks is displayed. |
ti |
Displays detailed task TCB information. |
d |
Displays memory contents beginning at the specified target address. |
devs |
Lists devices registered on the target system. |
version |
Displays the VxWorks version information. |
memShow |
Displays system memory statistics, including allocated and free memory. |
memPartShow |
Displays memory partition blocks and related statistics. |
moduleShow |
Lists currently loaded modules. |
iosDevShow |
Displays information about devices registered with the VxWorks I/O system. |
iosDrvShow |
Displays installed I/O drivers. |
semShow |
Displays semaphore information. |
regsShow |
Displays processor register information. |
taskShow |
Displays task TCB information. |
taskRegsShow |
Displays register contents associated with a specified task. |
coreShow |
Displays processor and system information such as CPU frequency, DDR frequency, system frequency, cache information, and MSR registers. |
coreLbcShow |
Displays detailed Local Bus Controller (LBC) register information. |
vxBusShow |
Displays detailed VxBus information. |
pciConfigTopoShow |
Displays PCI configuration topology information. |
pciDevShow |
Displays information about a specified PCI device. |
TempratureShow |
Displays the current system temperature. |
The exact command set depends on the VxWorks version, BSP, processor architecture, and included components. Some commands listed above are BSP-specific rather than standard VxWorks shell commands.
๐งต Task and Process Diagnostics #
Task-related commands are among the most frequently used tools when debugging VxWorks applications.
i
#
The i command provides a quick overview of running tasks.
-> i
Passing 0 can be used to request information for all tasks on systems where the command supports the parameter:
-> i 0
This is useful for quickly checking task states, priorities, IDs, and names.
ti
#
For more detailed information about a task’s Task Control Block (TCB), use:
-> ti taskId
taskShow
#
taskShow provides task-specific diagnostic information and can be useful when investigating task state, priority, stack usage, or synchronization behavior.
-> taskShow taskId
taskRegsShow
#
When debugging an exception or abnormal task state, the task’s processor registers can be inspected with:
-> taskRegsShow taskId
Together, these commands provide a useful first step when determining why a task is blocked, suspended, or behaving unexpectedly.
๐ง Memory and Module Inspection #
memShow
#
Use memShow to inspect system memory usage:
-> memShow
It can provide information about allocated and available memory and is useful for identifying potential memory leaks or unexpectedly high memory consumption.
memPartShow
#
For memory partition details:
-> memPartShow
This command provides additional information about memory partition blocks and their current state.
d
#
The d command displays raw memory contents starting at a specified address.
For example:
-> d 0x80000000
This is particularly useful during BSP bring-up when verifying:
- Memory controller initialization
- Flash contents
- Device register mappings
- DMA buffers
- Boot image locations
- Hardware initialization results
moduleShow
#
To inspect dynamically loaded modules:
-> moduleShow
This is useful when determining whether a driver or application module has been successfully loaded into the target system.
๐พ Device and Driver Inspection #
VxWorks provides several commands for inspecting its I/O subsystem.
devs
#
The devs command lists devices currently registered with the system:
-> devs
Typical output may include devices such as:
/null
/tyCo/0
/tyCo/1
/tffs0
This is one of the quickest ways to determine whether a device has been successfully registered.
iosDevShow
#
For more detailed device information:
-> iosDevShow
iosDrvShow
#
To inspect installed I/O drivers:
-> iosDrvShow
These commands are particularly useful when developing custom device drivers and verifying whether driver initialization has successfully registered the expected device.
๐ Semaphore Diagnostics #
Semaphore-related problems can cause tasks to remain blocked indefinitely.
Use:
-> semShow
to inspect semaphore information.
This can help identify synchronization problems involving:
- Binary semaphores
- Counting semaphores
- Mutual-exclusion semaphores
- Task synchronization
- Resource contention
When debugging a system that appears to be stalled, checking task states together with semaphore information can often reveal where execution is waiting.
๐ฅ๏ธ CPU and Hardware Diagnostics #
regsShow
#
To display processor register information:
-> regsShow
This command is particularly useful during low-level debugging and exception analysis.
coreShow
#
Some BSPs provide a coreShow command for inspecting processor and system-level information:
-> coreShow
Depending on the BSP implementation, the output may include:
- CPU frequency
- DDR frequency
- System frequency
- L1 cache information
- L2 cache information
- MSR register values
Because coreShow is typically BSP or architecture dependent, its output can vary significantly between platforms.
coreLbcShow
#
On platforms equipped with an applicable Local Bus Controller, the following command can display detailed LBC register information:
-> coreLbcShow
This can be useful when debugging memory-mapped peripherals, Flash devices, or other hardware attached to the local bus.
๐ VxBus and PCI Diagnostics #
vxBusShow
#
For systems using VxBus, use:
-> vxBusShow
to inspect the VxBus device and driver hierarchy.
This is particularly useful when debugging:
- Device discovery
- Driver binding
- Device instances
- Hardware resources
- Bus initialization
pciConfigTopoShow
#
PCI configuration topology can be inspected with:
-> pciConfigTopoShow
This is useful for determining how PCI devices and buses were enumerated during system initialization.
pciDevShow
#
To inspect a specific PCI device:
-> pciDevShow pciDeviceNumber
For example:
-> pciDevShow 0
The available device numbering and output format depend on the BSP and VxWorks PCI implementation.
๐ก๏ธ Temperature Monitoring #
Some BSPs provide a temperature-monitoring command such as:
-> TempratureShow
It displays the current temperature reported by the supported hardware sensor.
Note that TempratureShow is not necessarily a standard VxWorks command. The exact spelling, capitalization, and availability depend on the BSP implementation.
โจ๏ธ Entering VxWorks Command Mode #
The VxWorks shell prompt typically looks like:
->
Commands can be entered directly at this prompt.
For example:
-> version
To enter command mode from an applicable VxWorks environment:
-> cmd
The exact behavior of cmd depends on the shell and BSP configuration.
In environments providing the [ VxWorks ] command interface, the following command may be used to exit command mode:
[ VxWorks ] C
Shell behavior can differ between VxWorks versions, so command availability should be verified against the target image.
๐ Formatting and Restoring a Flash File System #
VxWorks systems commonly use Flash-based file systems for persistent storage of configuration files, application images, startup scripts, and other system data.
A typical workflow involves:
- Formatting the Flash volume.
- Navigating to the Flash file-system mount point.
- Creating a directory.
- Connecting to an FTP server.
- Downloading the required file.
- Verifying the downloaded file size.
1. Format the TFFS Volume #
From the VxWorks shell, execute:
-> sysTffsFormat
This formats the supported TFFS Flash volume.
Warning: Formatting Flash storage destroys the existing file-system contents. Make sure important files have been backed up before performing this operation.
2. Enter the Flash Volume #
After formatting, change to the Flash volume:
-> cd FlashVolume
The actual device or directory name depends on the BSP and TFFS configuration.
3. Create a Directory #
Create a directory for the files to be restored:
-> file create -d FILE_DIR
Replace FILE_DIR with the desired directory name.
For example:
-> file create -d config
4. Enter the New Directory #
Change into the directory:
-> cd FILE_DIR
For example:
-> cd config
5. Connect to the FTP Server #
Start an FTP connection:
-> ftp ip_addr
Replace ip_addr with the address of the FTP server.
The FTP client then prompts for the username and password.
6. Select the Remote Directory #
After logging in, change to the directory containing the file:
ftp> cd directory_of_the_file
For example:
ftp> cd /release/config
7. Select Binary Transfer Mode #
For binary files, especially files such as .ini files that must preserve their exact contents, switch to binary mode:
ftp> binary
Using binary mode avoids unwanted transfer conversions and is the preferred choice when transferring files whose contents must remain byte-for-byte identical.
8. Download the File #
Use get to download the required file:
ftp> get FILE
For example:
ftp> get system.ini
The file is transferred to the current VxWorks directory.
9. Exit FTP #
After the download completes:
ftp> quit
This closes the FTP session and returns control to the VxWorks shell.
10. Verify the Downloaded File #
Finally, inspect the directory:
-> ls -l
Check the downloaded file size against the original file on the FTP server.
For example:
-> ls -l
The size should match the source file. A mismatch may indicate an incomplete transfer, incorrect transfer mode, insufficient storage space, or another communication problem.
๐ Complete Flash Restore Workflow #
The entire procedure can be summarized as:
VxWorks Target
โ
โผ
sysTffsFormat
โ
โผ
FlashVolume
โ
โผ
Create Directory
โ
โผ
Start FTP
โ
โผ
Login to Server
โ
โผ
Select Remote Path
โ
โผ
binary
โ
โผ
get FILE
โ
โผ
quit
โ
โผ
ls -l
โ
โผ
Verify File Size
๐ ๏ธ Practical Debugging Workflow #
For day-to-day VxWorks development, these commands can be grouped into a simple diagnostic sequence.
Check the System #
-> version
-> devs
-> iosDevShow
-> iosDrvShow
Check Tasks #
-> i
-> taskShow taskId
-> taskRegsShow taskId
Check Memory #
-> memShow
-> memPartShow
-> d address
Check Hardware #
-> regsShow
-> coreShow
-> coreLbcShow
-> vxBusShow
Check PCI #
-> pciConfigTopoShow
-> pciDevShow pciDeviceNumber
Check Persistent Storage #
-> devs
-> cd FlashVolume
-> ls -l
This grouping makes it easier to narrow down problems systematically rather than running diagnostic commands randomly.
๐ Conclusion #
The VxWorks shell is an important part of BSP and embedded-system development. Commands such as i, taskShow, memShow, devs, vxBusShow, and pciConfigTopoShow provide visibility into the operating system, memory subsystem, device drivers, buses, and hardware.
For Flash-based systems, the combination of sysTffsFormat, file-system navigation, FTP transfer, and ls -l verification provides a straightforward workflow for rebuilding and restoring persistent files.
The most important commands to remember are:
Task inspection: i, ti, taskShow, taskRegsShow
Memory inspection: d, memShow, memPartShow
I/O inspection: devs, iosDevShow, iosDrvShow
Synchronization: semShow
Hardware inspection: regsShow, coreShow, coreLbcShow
Bus inspection: vxBusShow
PCI inspection: pciConfigTopoShow, pciDevShow
Storage: sysTffsFormat, cd, ls -l
File transfer: ftp, binary, get, quit
Having these commands readily available can significantly speed up VxWorks bring-up, driver debugging, system diagnostics, and Flash-based deployment workflows.