Download silicon labs hex to svf conversion utility
Author: a | 2025-04-24
Silicon Labs .HEX to .SVF Conversion Utility. Convert standard Intel HEX files into SVF files, which can be used to program a Silicon Labs MCU over the JTAG port What's new in Silicon Labs .HEX to .SVF Conversion Utility 1.31: Added address setup when necessary and
Portable Silicon Labs .HEX to .SVF Conversion Utility
The TMS320C6000 assembler and linker create object files which are in binary formats that encourage modular programming and provide powerful and flexible methods for managing code segments and target system memory. Most EPROM programmers do not accept object files as input. The hex conversion utility converts an object file into one of several standard ASCII hexadecimal formats, suitable for loading into an EPROM programmer. The utility is also useful in other applications requiring hexadecimal conversion of an object file (for example, when using debuggers and loaders). The hex conversion utility can produce these output file formats: ASCII-Hex, supporting 32-bit addresses Extended Tektronix (Tektronix) Intel MCS-86 (Intel) Motorola Exorciser (Motorola-S), supporting 16-bit addresses Texas Instruments SDSMAC (TI-Tagged), supporting 16-bit addresses Texas Instruments TI-TXT format, supporting 16-bit addresses 10.1 The Hex Conversion Utility's Role in the Software Development Flow Figure 10-1 highlights the role of the hex conversion utility in the software development process. Figure 10-1 The Hex Conversion Utility in the TMS320C6000 Software Development Flow 10.2 Invoking the Hex Conversion Utility There are two basic methods for invoking the hex conversion utility: Specify the options and filenames on the command line. The following example converts the file firmware.out into TI-Tagged format, producing two output files, firm.lsb and firm.msb. hex6x -t firmware -o firm.lsb -o firm.msb hex6x --ti_tagged firmware --outfile=firm.lsb --outfile=firm.msb Specify the options and filenames in a command file. You can create a file that stores command line options and filenames for invoking the hex conversion utility. The following example invokes the utility using a command file called hexutil.cmd: hex6x hexutil.cmd In addition to regular command line information, you can use the hex conversion utility ROMS and SECTIONS directives in a command file. 10.2.1 Invoking the Hex Conversion Utility From the Command Line To invoke the hex conversion utility, enter: hex6x is the command that invokes the hex conversion utility. options supplies additional information that controls the hex conversion process. You can use options on the command line or in a command file. Table 10-1 lists the basic options. All options are preceded by a hyphen and are not case sensitive. Several options have an additional parameter that must be separated from the option by at least one space. Options with multi-character names must be spelled exactly as shown in this document; no abbreviations are allowed. Options are not affected by the order in which they are used. The exception to Silicon Labs .HEX to .SVF Conversion Utility. Convert standard Intel HEX files into SVF files, which can be used to program a Silicon Labs MCU over the JTAG port What's new in Silicon Labs .HEX to .SVF Conversion Utility 1.31: Added address setup when necessary and Silicon Labs .HEX to .SVF Conversion Utility. Convert standard Intel HEX files into SVF files, which can be used to program a Silicon Labs MCU over the JTAG port What's new in Silicon Labs .HEX to .SVF Conversion Utility 1.31: Added address setup when necessary and The hex conversion utility offers some mechanisms to control the starting address in ROM of each section. However, many EPROM programmers offer direct control of the location in ROM in which the data is burned. Depending on whether or not you are using the boot loader, the hex conversion utility output file controlling mechanisms are different. Non-boot loader mode. The address field of the hex conversion utility output file is controlled by the following mechanisms listed from low to high priority: The linker command file. By default, the address field of the hex conversion utility output file is the load address (as given in the linker command file). The paddr parameter of the SECTIONS directive. When the paddr parameter is specified for a section, the hex conversion utility bypasses the section load address and places the section in the address specified by paddr. The --zero option. When you use the --zero option, the utility resets the address origin to 0 for each output file. Since each file starts at 0 and counts upward, any address records represent offsets from the beginning of the file (the address within the ROM) rather than actual target addresses of the data. You must use the --zero option in conjunction with the --image option to force the starting address in each output file to be zero. If you specify the --zero option without the --image option, the utility issues a warning and ignores the --zero option. Boot-Loader Mode. When the boot loader is used, the hex conversion utility places the different sections that are in the boot table into consecutive memory locations. Each section becomes a boot table block whose destination address is equal to the linker-assigned section load address. In a boot table, the address field of the hex conversion utility output file is not related to the section load addresses assigned by the linker. The address fields of the boot table are simply offsets to the beginning of the table. The section load addresses assigned by the linker will be encoded into the boot table along with the size of the section and the data contained within the section. These addresses will be used to store the data into memory during the boot load process. The beginning of the boot table defaults to the linked load address of the first bootable section in the input file, unless you use one of the followingComments
The TMS320C6000 assembler and linker create object files which are in binary formats that encourage modular programming and provide powerful and flexible methods for managing code segments and target system memory. Most EPROM programmers do not accept object files as input. The hex conversion utility converts an object file into one of several standard ASCII hexadecimal formats, suitable for loading into an EPROM programmer. The utility is also useful in other applications requiring hexadecimal conversion of an object file (for example, when using debuggers and loaders). The hex conversion utility can produce these output file formats: ASCII-Hex, supporting 32-bit addresses Extended Tektronix (Tektronix) Intel MCS-86 (Intel) Motorola Exorciser (Motorola-S), supporting 16-bit addresses Texas Instruments SDSMAC (TI-Tagged), supporting 16-bit addresses Texas Instruments TI-TXT format, supporting 16-bit addresses 10.1 The Hex Conversion Utility's Role in the Software Development Flow Figure 10-1 highlights the role of the hex conversion utility in the software development process. Figure 10-1 The Hex Conversion Utility in the TMS320C6000 Software Development Flow 10.2 Invoking the Hex Conversion Utility There are two basic methods for invoking the hex conversion utility: Specify the options and filenames on the command line. The following example converts the file firmware.out into TI-Tagged format, producing two output files, firm.lsb and firm.msb. hex6x -t firmware -o firm.lsb -o firm.msb hex6x --ti_tagged firmware --outfile=firm.lsb --outfile=firm.msb Specify the options and filenames in a command file. You can create a file that stores command line options and filenames for invoking the hex conversion utility. The following example invokes the utility using a command file called hexutil.cmd: hex6x hexutil.cmd In addition to regular command line information, you can use the hex conversion utility ROMS and SECTIONS directives in a command file. 10.2.1 Invoking the Hex Conversion Utility From the Command Line To invoke the hex conversion utility, enter: hex6x is the command that invokes the hex conversion utility. options supplies additional information that controls the hex conversion process. You can use options on the command line or in a command file. Table 10-1 lists the basic options. All options are preceded by a hyphen and are not case sensitive. Several options have an additional parameter that must be separated from the option by at least one space. Options with multi-character names must be spelled exactly as shown in this document; no abbreviations are allowed. Options are not affected by the order in which they are used. The exception to
2025-03-28The hex conversion utility offers some mechanisms to control the starting address in ROM of each section. However, many EPROM programmers offer direct control of the location in ROM in which the data is burned. Depending on whether or not you are using the boot loader, the hex conversion utility output file controlling mechanisms are different. Non-boot loader mode. The address field of the hex conversion utility output file is controlled by the following mechanisms listed from low to high priority: The linker command file. By default, the address field of the hex conversion utility output file is the load address (as given in the linker command file). The paddr parameter of the SECTIONS directive. When the paddr parameter is specified for a section, the hex conversion utility bypasses the section load address and places the section in the address specified by paddr. The --zero option. When you use the --zero option, the utility resets the address origin to 0 for each output file. Since each file starts at 0 and counts upward, any address records represent offsets from the beginning of the file (the address within the ROM) rather than actual target addresses of the data. You must use the --zero option in conjunction with the --image option to force the starting address in each output file to be zero. If you specify the --zero option without the --image option, the utility issues a warning and ignores the --zero option. Boot-Loader Mode. When the boot loader is used, the hex conversion utility places the different sections that are in the boot table into consecutive memory locations. Each section becomes a boot table block whose destination address is equal to the linker-assigned section load address. In a boot table, the address field of the hex conversion utility output file is not related to the section load addresses assigned by the linker. The address fields of the boot table are simply offsets to the beginning of the table. The section load addresses assigned by the linker will be encoded into the boot table along with the size of the section and the data contained within the section. These addresses will be used to store the data into memory during the boot load process. The beginning of the boot table defaults to the linked load address of the first bootable section in the input file, unless you use one of the following
2025-04-19A command file named firmware.cmd contains these lines: firmware.out /* input file */ --ti_tagged /* TI-Tagged */ --outfile=firm.lsb /* output file */ --outfile=firm.msb /* output file */ You can invoke the hex conversion utility by entering: hex6x firmware.cmd This example shows how to convert a file called appl.out into eight hex files in Intel format. Each output file is one byte wide and 4K bytes long. appl.out /* input file */ --intel /* Intel format */ --map=appl.mxp /* map file */ ROMS { ROW1: origin=0x00000000 len=0x4000 romwidth=8 files={ appl.u0 appl.u1 app1.u2 appl.u3 } ROW2: origin=0x00004000 len=0x4000 romwidth=8 files={ app1.u4 appl.u5 appl.u6 appl.u7 } } SECTIONS { .text, .data, .cinit, .sect1, .vectors, .const: } 10.3 Understanding Memory Widths The hex conversion utility makes your memory architecture more flexible by allowing you to specify memory and ROM widths. To use the hex conversion utility, you must understand how the utility treats word widths. Three widths are important in the conversion process: Target width Memory width ROM width The terms target word, memory word, and ROM word refer to a word of such a width. Figure 10-2 illustrates the separate and distinct phases of the hex conversion utility's process flow. Figure 10-2 Hex Conversion Utility Process Flow 10.3.1 Target Width Target width is the unit size (in bits) of the target processor's word. The width is fixed for each target and cannot be changed. The TMS320C6000 targets have a width of 32 bits. 10.3.2 Specifying the Memory Width Memory width is the physical width (in bits) of the memory system. Usually, the memory system is physically the same width as the target processor width: a 32-bit processor has a 32-bit memory architecture. However, some applications require target words to be broken into multiple, consecutive, and narrower memory words. By default, the hex conversion utility sets memory width to the target width (in this case, 32 bits). You can change the memory width (except for TI-TXT format) by: Using the --memwidth option. This changes the memory width value for the entire file. Setting the memwidth parameter of the ROMS directive. This changes the memory width value for the address range specified in the ROMS directive and overrides the --memwidth option for that range. See Section 10.4. For both methods, use a value that is a power of 2 greater than or equal to 8. You should change the memory width default value of 32
2025-04-06Select ASCII-Hex Section 10.12.1 --intel -i Select Intel Section 10.12.2 --motorola=1 -m1 Select Motorola-S1 Section 10.12.3 --motorola=2 -m2 Select Motorola-S2 Section 10.12.3 --motorola=3 -m3 Select Motorola-S3 (default -m option) Section 10.12.3 --tektronix -x Select Tektronix (default format when no output option is specified) Section 10.12.4 --ti_tagged -t Select TI-Tagged Section 10.12.5 --ti_txt Select TI-Txt Section 10.12.6 Load Image Options --load_image Select load image Section 10.6 --section_name_prefix=string Specify the section name prefix for load image object files Section 10.6 10.2.2 Invoking the Hex Conversion Utility With a Command File A command file is useful if you plan to invoke the utility more than once with the same input files and options. It is also useful if you want to use the ROMS and SECTIONS hex conversion utility directives to customize the conversion process. Command files are ASCII files that contain one or more of the following: Options and filenames. These are specified in a command file in exactly the same manner as on the command line. ROMS directive. The ROMS directive defines the physical memory configuration of your system as a list of address-range parameters. (See Section 10.4.) SECTIONS directive. The hex conversion utility SECTIONS directive specifies which sections from the object file are selected. (See Section 10.5.) Comments. You can add comments to your command file by using the /* and */ delimiters. For example: /* This is a comment. */ To invoke the utility and use the options you defined in a command file, enter: hex6x command_filename You can also specify other options and files on the command line. For example, you could invoke the utility by using both a command file and command line options:hex6x firmware.cmd --map=firmware.mxpThe order in which these options and filenames appear is not important. The utility reads all input from the command line and all information from the command file before starting the conversion process. However, if you are using the -q option, it must appear as the first option on the command line or in a command file. The --help option displays the syntax for invoking the compiler and lists available options. If the --help option is followed by another option or phrase, detailed information about the option or phrase is displayed. For example, to see information about options associated with generating a boot table use --help boot. The --quiet option suppresses the hex conversion utility's normal banner and progress information. Assume that
2025-04-02