DSPRelated.com
Forums

Binary boot table for DSK 5509A

Started by WisconsinAndIowaRRCo March 2, 2009
Hello:

We're running on a Spectrum Digital DSK 5509A with a TI TMS320VC5509A
processor. We're using CCS v3/1/0 with v3.2.2 of the C5500 Code
Generation Tools.

We want to use the TI USB Bootloader to download our application code
to the device. We have the device successfully configured to come-up
in USB Boot-mode (we do see the TI USB Bootloader enumerate as
expected after USB plug-in).

We are attempting to produce a binary boot table to be downloaded to
the TI USB Bootloader. The DSK 5509A platform is a 16-bit memory
width architecture. Therefore, we are specifying "-parallel16 -
memwidth 16 -romwidth 16" in our final build command that invokes the
hex55 conversion utility. When we try to build the binary boot table,
we receive a fatal error from the hex55 conversion utility:

>> FATAL ERROR: Binary format must have a memory width of 8 bits
(aborting)

Our final build command looks like this:

FinalBuildCmd="$(Install_dir)\C5500\cgtools\bin\hex55" "$(debug_dir)
\test.out" -b -o "$(debug_dir)\test.bin"
-map "$(debug_dir)\test.map" -v5510:2 -romwidth 16 -memwidth 16 -
boot -parallel16 -reg_config 0,0 -reg_config 0x0045,0
-reg_config 0xc01,0 -reg_config 0xc21,0 -reg_config 0xc41,0 -
reg_config 0xc61,0 -reg_config 0xc81,0 -reg_config 0xca1,0
-reg_config 0x0803,0x3fff -reg_config 0x0804,0x5fff -reg_config
0x0805,0x5fff -reg_config 0x0806,0x122a
-reg_config 0x0807,0x522a -reg_config 0x0808,0 -reg_config
0x0809,0x122a -reg_config 0x080a,0x522a -reg_config 0x080b,0
-reg_config 0x080f,0x5938 -reg_config 0x0813,0x035f -reg_config
0x0812,0

Is there a way to produce a binary boot table that the TI USB
Bootloader will accept on a 16-bit memory width?

Thanks in advance for any help/suggestions.
Hi,



I download my usb_boot.bin using some simple PC software written in Visual
Basic 6.0.



I use a batch file to convert the .out file to .bin file, here is the .cmd
file I use for the hex55 program from TI which takes a .out and creates a
.hex, I have written a converter hexbin2 which converts the .hex file to
.bin



USB_DEMO.CMD:

usb_demo.out /* File name*/

-i /*INTEL format*/

-memwidth 8 /*Byte-wide memory*/

-boot /*Boot-loadable*/

-serial8 /*As for 8-bit serial EEPROM*/

-v5510:2 /*For v2.10*/

/*-e 0x345e *//*Entry point symbol.*/

-map usb_demo.mxp /* map file */

-o usb_demo.hex /*Output file*/





BATCH FILE:

hex55 Boot.cmd

.\hexbin2 Boot.hex Boot.bin i



hex55 usb_demo.cmd

.\hexbin2 usb_demo.hex usb_demo.bin i



copy usb_demo.bin usb_boot.bin



FlashCon

copy taxisnap.bin RR1000_2_22.bin





The boot.bin is a simple bootloader which allows my system to boot when it
isnt in USB mode.

The FlashCon concatenates the boot.bin and usb_demo.bin into one image that
I can simply flash into the DSPs ROM.







Gwyn Evans

Mobile Video Systems

Drachenseestr 12

81373 Mchen

+4989491689 (Tel)

+491733510658 (Mobile)

-----Original Message-----
From: c... [mailto:c...] On Behalf Of
WisconsinAndIowaRRCo
Sent: 02 March 2009 19:55
To: c...
Subject: [c55x] Binary boot table for DSK 5509A



Hello:

We're running on a Spectrum Digital DSK 5509A with a TI TMS320VC5509A
processor. We're using CCS v3/1/0 with v3.2.2 of the C5500 Code
Generation Tools.

We want to use the TI USB Bootloader to download our application code
to the device. We have the device successfully configured to come-up
in USB Boot-mode (we do see the TI USB Bootloader enumerate as
expected after USB plug-in).

We are attempting to produce a binary boot table to be downloaded to
the TI USB Bootloader. The DSK 5509A platform is a 16-bit memory
width architecture. Therefore, we are specifying "-parallel16 -
memwidth 16 -romwidth 16" in our final build command that invokes the
hex55 conversion utility. When we try to build the binary boot table,
we receive a fatal error from the hex55 conversion utility:

>> FATAL ERROR: Binary format must have a memory width of 8 bits
(aborting)

Our final build command looks like this:

FinalBuildCmd="$(Install_dir)\C5500\cgtools\bin\hex55" "$(debug_dir)
\test.out" -b -o "$(debug_dir)\test.bin"
-map "$(debug_dir)\test.map" -v5510:2 -romwidth 16 -memwidth 16 -
boot -parallel16 -reg_config 0,0 -reg_config 0x0045,0
-reg_config 0xc01,0 -reg_config 0xc21,0 -reg_config 0xc41,0 -
reg_config 0xc61,0 -reg_config 0xc81,0 -reg_config 0xca1,0
-reg_config 0x0803,0x3fff -reg_config 0x0804,0x5fff -reg_config
0x0805,0x5fff -reg_config 0x0806,0x122a
-reg_config 0x0807,0x522a -reg_config 0x0808,0 -reg_config
0x0809,0x122a -reg_config 0x080a,0x522a -reg_config 0x080b,0
-reg_config 0x080f,0x5938 -reg_config 0x0813,0x035f -reg_config
0x0812,0

Is there a way to produce a binary boot table that the TI USB
Bootloader will accept on a 16-bit memory width?

Thanks in advance for any help/suggestions.
I didn't see an answer come through, so I'll take a stab.

Have you tried simply sending an 8-bit image? I'm new to the C55x,
but with other 16-bit memory processors that I have written firmware
for, they surprisingly use 8-bit format for the .hex files, even
though the processor has 16-bit memory and 16-bit opcodes. This got
the disassembler that I developed off to a rough start until I
realized that everyone seems to standardize on 8-bit files.

As long as your compiler is set to produce the right data, I have a
hunch it won't hurt anything to send it over in 8-bit format. I'm
sure it will end up 16-bit on the target.

Worth a shot, at least.

Brian Willoughby
Sound Consulting
On Mar 2, 2009, at 10:55, WisconsinAndIowaRRCo wrote:
> We're running on a Spectrum Digital DSK 5509A with a TI TMS320VC5509A
> processor. We're using CCS v3/1/0 with v3.2.2 of the C5500 Code
> Generation Tools.
>
> We want to use the TI USB Bootloader to download our application code
> to the device. We have the device successfully configured to come-up
> in USB Boot-mode (we do see the TI USB Bootloader enumerate as
> expected after USB plug-in).
>
> We are attempting to produce a binary boot table to be downloaded to
> the TI USB Bootloader. The DSK 5509A platform is a 16-bit memory
> width architecture. Therefore, we are specifying "-parallel16 -
> memwidth 16 -romwidth 16" in our final build command that invokes the
> hex55 conversion utility. When we try to build the binary boot table,
> we receive a fatal error from the hex55 conversion utility:
>
> >> FATAL ERROR: Binary format must have a memory width of 8 bits
> (aborting)
>
> Our final build command looks like this:
>
> FinalBuildCmd="$(Install_dir)\C5500\cgtools\bin\hex55" "$(debug_dir)
> \test.out" -b -o "$(debug_dir)\test.bin"
> -map "$(debug_dir)\test.map" -v5510:2 -romwidth 16 -memwidth 16 -
> boot -parallel16 -reg_config 0,0 -reg_config 0x0045,0
> -reg_config 0xc01,0 -reg_config 0xc21,0 -reg_config 0xc41,0 -
> reg_config 0xc61,0 -reg_config 0xc81,0 -reg_config 0xca1,0
> -reg_config 0x0803,0x3fff -reg_config 0x0804,0x5fff -reg_config
> 0x0805,0x5fff -reg_config 0x0806,0x122a
> -reg_config 0x0807,0x522a -reg_config 0x0808,0 -reg_config
> 0x0809,0x122a -reg_config 0x080a,0x522a -reg_config 0x080b,0
> -reg_config 0x080f,0x5938 -reg_config 0x0813,0x035f -reg_config
> 0x0812,0
>
> Is there a way to produce a binary boot table that the TI USB
> Bootloader will accept on a 16-bit memory width?
>
> Thanks in advance for any help/suggestions.
Glenn-

> We're running on a Spectrum Digital DSK 5509A with a TI TMS320VC5509A
> processor. We're using CCS v3/1/0 with v3.2.2 of the C5500 Code
> Generation Tools.
>
> We want to use the TI USB Bootloader to download our application code
> to the device. We have the device successfully configured to come-up
> in USB Boot-mode (we do see the TI USB Bootloader enumerate as
> expected after USB plug-in).
>
> We are attempting to produce a binary boot table to be downloaded to
> the TI USB Bootloader. The DSK 5509A platform is a 16-bit memory
> width architecture. Therefore, we are specifying "-parallel16 -
> memwidth 16 -romwidth 16" in our final build command that invokes the
> hex55 conversion utility. When we try to build the binary boot table,
> we receive a fatal error from the hex55 conversion utility:
>
>>> FATAL ERROR: Binary format must have a memory width of 8 bits
> (aborting)

This may be because instructions on the C55x are of variable length, up to 6 bytes. Possibly the tools are saying "if
you (the system) feed raw data to the device at boot-time, it has to be byte wide". It seems that if you ask HEX55
for an ASCII output file, it won't bother you about it. Maybe this is because it's then up to some host utility to
parse the ASCII file from one of the supported formats, and either program an EEPROM or feed (again) bytes to the DSP.

-Jeff

> Our final build command looks like this:
>
> FinalBuildCmd="$(Install_dir)\C5500\cgtools\bin\hex55" "$(debug_dir)
> \test.out" -b -o "$(debug_dir)\test.bin"
> -map "$(debug_dir)\test.map" -v5510:2 -romwidth 16 -memwidth 16 -
> boot -parallel16 -reg_config 0,0 -reg_config 0x0045,0
> -reg_config 0xc01,0 -reg_config 0xc21,0 -reg_config 0xc41,0 -
> reg_config 0xc61,0 -reg_config 0xc81,0 -reg_config 0xca1,0
> -reg_config 0x0803,0x3fff -reg_config 0x0804,0x5fff -reg_config
> 0x0805,0x5fff -reg_config 0x0806,0x122a
> -reg_config 0x0807,0x522a -reg_config 0x0808,0 -reg_config
> 0x0809,0x122a -reg_config 0x080a,0x522a -reg_config 0x080b,0
> -reg_config 0x080f,0x5938 -reg_config 0x0813,0x035f -reg_config
> 0x0812,0
>
> Is there a way to produce a binary boot table that the TI USB
> Bootloader will accept on a 16-bit memory width?
>
> Thanks in advance for any help/suggestions.