<< Contents << Other Topics
 
Symbol Tables
 
A symbol table is a lookup substitution for channel group values. After a symbol table file is associated a channel group, the trace data can be displayed using the "Symbol" or "Symbol+offset" options.
 
Binary Symbol Table Files
 
The GoLogic7 software supports the following binary symbol table file formats produced by assemblers and compilers...
 
ELF/DWARF versions 2.0 to 4.0 - Executable and Linkable Format / Debug With Arbitrary Relocation Format. This is the most common and powerful debug file format the GoLogic7 software supports. Most large compilers vendors support this format. These files contain both symbol names and line number information.
 
OMF51 - Keil Object Module Format specific to 8051 processors. These files contain both symbol names and line number information.
 
TICOFF - Texas Instruments Common Object File Format. These files contain both symbol names and line number information.
 
Note: Remember to set the compiler/assembler options to include debug information in the output file. This is usually found under the "link" options. There are usually separate options for symbols and line number information.
 
Text Symbol Table Files
 
Text symbol table files use these formatting rules...
 
Address values are read as 64-bit unsigned hexadecimal values.
 
All address values must use absolute addressing. Segment+offset addressing is not supported.
 
Each line can begin with the address or the symbol name. The first line in the file determines the format. Address-first lines cannot be mixed with symbol-first lines.
 
To distinguish addresses from symbol names, the first line's address must have a '0x' prefix if the value contains only hexadecimal 'A' through 'F' digits. For example, the 'FABC' address must be changed to '0xFABC'. If the prefix is missing, the address is assumed to be a string. The '0x' prefix only needs to be used on the first line in the file. The file format is determined from the first line in the file.
 
No extra text is allowed in the file. Therefore, symbol table files produced by a compiler or assembler may have to be edited. Use a text editor like NotePad to remove superfluous text.
 
The file size is unlimited.
 
For example, here is a symbol-first file for a 12-bit channel group...
 
HelloWorld    AB7
Welcome2    139
 
Here is an example address-first file for the same 12-bit channel group...
 
0xAB7    HelloWorld
0x139    Welcome2
 
For very large text symbol table files, the following header lines can be placed at the start of the file to minimize the time required to read the file...
 
"SymbolCount=X"
 
"The total symbols in the file, which is the total text lines not including the header lines. For example, "SymbolCount=100" means that 100 lines follow the header lines. Omit this header line if you are unsure of the total symbol lines in the file. The software may crash if an incorrect value is provided.
 
"StringTableSize=X"
 
The total number of characters required to contain all the symbol names. An extra character is needed to separate each symbol name. Omit this header line if you are unsure of the total number of characters required for all symbol names. The software may crash is an incorrect value is provided.
 
"AssumeAscending=yes"
 
The symbols are assumed to be sorted by ascending address values. The smallest address is the first symbol line and the largest address is the last line. Therefore, the symbol table does not need to be sorted after the file is loaded.
 
Text Bit-Mask Files
 
To create a text bit-mask file, use the following header line at the start of the text file...
 
"BitMasks=yes"
 
A text bit-mask file is a special type of text symbol table. Symbol names are associated with masks which can match many values. This makes them more useful for channel groups representing a status bus. For example...
 
BitMasks=yes
HelloWorld     11110000xxxx
 
The above example is for a 12-bit channel group. The symbol name "HelloWorld" matches all values 0x0F00 through 0x0F0F. Ordinary text symbol table files match a single value to each symbol name. The text bit-mask file matches multiple values to each symbol name.
 
All lines that follow the "BitMasks" flag are assumed to define a symbol name and mask. No other header lines can be used with the "BitMasks" flag.
 
Text bit-mask files follow these rules...
 
At least one space or tab character must separate each symbol name and mask value.
 
The mask values must use binary "0", "1", and "x" characters. The "x" character means that the associated channel matches both 0 and 1 values.
 
The number of bits in each mask can be less than the channel group, but not greater. For example, the above 12-bit mask can be used with a 20-bit channel group, but not a 10-bit channel group.
 
Each line can begin with the bit-mask or the symbol name. The first line in the file determines the format. Mask-first lines cannot be mixed with symbol-first lines.
 
No extra text is allowed in the file.
 
The file size is unlimited.
 
Here is an example text bit-mask file for a 16-bit channel group...
 
BitMasks=yes
Nine       1001xxxxxxxxxxxx
Eight      1000xxxxxxxxxxxx
Seven     0111xxxxxxxxxxxx
Six          0110xxxxxxxxxxxx
 
Symbol Colors
 
An optional color attribute can be added to each line in text symbol table files and text bit-mask files. Here is an example using a binary mask ...
 
BitMasks=yes
HelloWorld     11110000xxxx     BLUE
Welcome2     11110000111x    C1C13C
 
The symbolic name "HelloWorld" is displayed in blue, which is one of the standard color names supported by the GoLogic7 software (listed below). The symbolic name "Welcome2" is displayed using a custom hexadecimal RGB (red/green/blue) value "0xC1C13C" which is sort of a mustard yellow.
 
The GoLogic7 software recognizes the following standard color names. The hexadecimal RGB value for each color is provided next to the name in parenthesis as examples for creating custom colors...
 
 
 
BLACK (0x000000)
 
WHITE (0xFFFFFF)
 
LTGREY (0xC0C0C0)
 
DKGREY (0x7F7F7F)
 
RED (0xFF0000)
 
DKRED (0x800000)
 
MAGENTA (0xFF00FF)
 
DKMAGENTA (0x800080)
 
GREEN (0x00FF00)
 
DKGREEN (0x008000)
 
YELLOW (0xFFFF00)
 
DKYELLOW (0x808000)
 
LTBLUE (0x00FFFF)
 
TEAL (0x008080)
 
BLUE (0x0000FF)
 
DKBLUE (0x000080)
 
BROWN (0x804000)
 
ORANGE (0xFF8000)
 
PURPLE (0x800080)
 
PALEBROWN (0xE1BFB0)
 
PALERED (0xFF9393)
 
PALEORANGE (0xFFD0A2)
 
PALEYELLOW (0xFFFF80)
 
PALEGREEN (0x9BFF9B)
 
PALEBLUE (0xA6A6FF)
 
PALEPURPLE (0xDAB5FF)
 
Custom RGB color values are 24-bit unsigned integers. Each component color (red, green, and blue) are represented by 8-bits. The color order within each value is RRGGBB. Zero is the absence of a color while 0xFF is each color's maximum value. Therefore, pure red is 0xFF0000, pure green is 0x00FF00, and pure blue is 0x0000FF.
 
Copyright and trademark information