NetBurner 3.3.3
PDF Version
PC Tools and Utilities

This guide describes the PC tools and utilities that run as stand-alone programs, as well as automatically as part of the NetBurner development tools suite. The executable version of the tools are located in \nburn\pcbin, and the source code is located in \nburn\pctools.

Multi-threaded TTY Serial Terminal (MTTTY)

Multi-Threaded TTY (MTTTY) is a serial terminal utility that you can use to communicate with the RS-232 serial ports on your NetBurner device or development kit. It is multi-threaded in that you can run multiple instances of MTTTY for each serial port.

MTTTY is commonly used for:

  • Displaying status messages sent from the NetBurner device, such as when using iprintf()
  • As a serial interface to any application

MTTTY can be started from:

  • Inside NBEclipse by clicking on the MTTTY icon
  • From the Windows NetBurner program group
  • From a command line. The path is: \nburn\pcbin\mttty.exe





MTTTY FAQ

  • The default serial port used for stdio for NetBurner devices is UART0.
  • The DB9 connector pinout on NetBurner development boards will have the RS-232 rx and tx signals reversed, so that a null-modem adapter is not required and you can use a straight-through serial cable.
  • The DB9 connector pinout on NetBurner Serial-To-Ethernet devices, such as the SB700EX and SB800EX, will be identical to a standard PC type pinout, so a null-modem adapter will be required. (The serial cable that comes with the NetBurner development kits for these specific devices is a null-modem cable)

NBUpdate

Used to progam an application into a NetBurner device by posting the application file to the device's config server. It is invoked as part of the make system for NetBurner development kit NBEclipse and command line builds. It can be replaced with WGET. The format is nbupdate <file name> <device IP>

Smart Traps

While smart traps is not a specific PC application, the interface is accomplished by running the MTTTY serial terminal. During software development it is possible for a software developer to download an application with a coding error severe enough to cause an application to crash. Common causes of a system crash are: task stack overflow, indexing an array out of bounds and bad pointer assignments. When a system crash occurs a device will usually recover by a reboot of the system. The purpose of the SmartTrap utility is to provide more information about the system when the crash occurred to assist with debugging the problem. Smart traps are automatically enabled by the init() function. Note that smart traps are disabled when building an application in debug mode.

  • SmartTraps are commonly used for debugging an application crash
  • SmartTraps are used in conjunction with the MTTTY serial terminal program. The SmartTraps information will be displayed on the debug serial port



    The output has four sections. It is beyond the scope of this document to go into detail on each of the processor registers, please refer to the processor manual for more information, located in the \nburn\docs directory of your development tools installation.

Trap Information

This section displays the processor status and error registers. The most significant is the Faulted PC, with is the Program Counter register indicating the area where the fault occurred. In this example the program counter value at the time a trap was detected is 0x02000152.

Register Information

This section displays the processor's Address and Data registers.

RTOS Information

Identifies the RTOS Task Control Block and the current running task. The priority number is in hexadecimal. Traps caused by stack overflows may corrupt this section of the report.

Task Information

This is a very useful section of the report. It identifies each task, as well as its current state, wait time, and call stack. If you look at the Main task, you can see 6 entries with 0x02000152 (the faulted pc) at the left, and 0 at the right. The value of 0 is the start of the call stack. Each hexadecimal address between those two numbers represents each function that was called.

Each address can be related to the corresponding line number in the source code by using the WinAddr2Line utility. By selecting the .elf file location and each address in the call stack you can determine the calling sequence starting from 0 on the right and moving to the left. The last line signifies the end of the SmartTrap output. Since the boot monitor is configured to "boot to application", the device reboots after the trap occurs.

Task Scan

TaskScan is an network connected debugging tool that can be used to view the RTOS tasks and status of your running NetBurner application. This tool is unique in that it is active in the release build of your code, rather than the debug build which is compiled without optimization. It is very useful to determine such things as why a specific task is not running the way you had anticipated, if it is waiting on other tasks, and its call stack. TaskScan is only active when the PC program generates a request, so it will not impact your release code execution speed otherwise.

The init() function will automatically include taskmon.h and call EnableTaskMonitor(). TaskScan requires that you have the Executable and Linking Format (ELF) file for the specific application that is running on your NetBurner device. The .elf file is created by the compiler each time you build your application. It contains information TaskScan needs to link the application executable to the source code and task information. For example, if you have a project named MyProject, a file named MyProject.elf will be created.

TaskScan is commonly used for:

  • Determining which tasks are running, their state and call stack.
  • Looking for blocked tasks.

TaskScan can be started from:

  • From the Windows NetBurner program group
  • From a command line. The path is: \nburn\pcbin\taskscan.exe

TaskScan FAQ

  • You must have a valid IP address and mask that can communicate with your PC that is running TaskScan
  • TaskScan essentially takes a snapshot picture of what your application is doing at the time your press the Scan button. It does not otherwise impact the application
  • You must have the exact .elf file used to create the application that is running on your NetBurner device to get valid information
    After starting the Task Scan application use the Browse button to locate your project's elf file, and the Find button to locate the IP address.

    Then select the Scan button:



WinAddr2Line

Utility to determine the source code location for a specified memory address and .elf file. This application is typically used in conjunction with the SmartTraps utility when debugging an application that is crashing.

WinAddr2Line is commonly used for:

  • Determining the source code address using a faulted program counter memory address from SmartTraps.
  • If the cause of a crash is severe memory corruption due to bad pointers, it is possible for the Faulted Program Counter to be pointing to an address in which not code exists. In this case WinAddr2Line will not be able to provide a source code reference because no source code exists at that location.

WinAddr2Line can be started from:

  • NBEclipse main tool bar
  • The Windows NetBurner program group.
  • The command line. The path is: \nburn\pcbin\winaddr2line.exe.

Using WinAddr2Line

  • Use the Browse button to select the .elf file for your application and type in the hexadecimal memory address, usually obtained by SmartTraps as the Faulted PC.
  • Click on the Decode button.

IPSetup

IPSetup was used for network configuration in releases prior to 3.0. Network configuration is now down through the network configuration server on the NetBurner device.

AutoUpdate

Autoupdate was used for loading applications to a device in releases prior to 3.0. Updating code is now done through the configuration server, nbupdate utility, or WGET.

Virtual Comm Port

The virtual comm port driver for Windows creates a virtual serial port and associates it with a network IP address and port number. It is typically used for legacy Windows applications without the ability to communicate over a network.

CompHtml

This utility is used by the NetBurner make system. It takes the contents of a project's html directory, implements the NetBurner dynamic web content scheme, callbacks, variables, access priorities, and mime types, and creates a file named htmldata.cpp.


CompCode

This utility is used by the NetBurner make system for 5441x platforms. It processes a .s19 file into a compressed binary with checksum and header.


flashpack

This utility is used by the NetBurner make system for ARM platforms. It processes the application.elf file into a compressed binary with checksum and header.