From: BazookaJoe on
Hello,

I'm using the 56371 DSP and I have to boot it with serial EEPROM in
I2C-Mode. The Procedure is described in the manual, but I do not know
how to make a boot image from the *.cld file.
I managed to make a .s file using srec.exe and then I converted that to
intel hex format. Now, I don't know how to put the information about
start adresses and record length at the file header. Does anyone know a
tool (or methode), which can do that?

Thanks for any help in advance!

From: Roman Rumian on
Hi,

BazookaJoe napisa?(a):
> Hello,
>
> I'm using the 56371 DSP and I have to boot it with serial EEPROM in
> I2C-Mode. The Procedure is described in the manual, but I do not know
> how to make a boot image from the *.cld file.
> I managed to make a .s file using srec.exe and then I converted that to
> intel hex format. Now, I don't know how to put the information about
> start adresses and record length at the file header. Does anyone know a
> tool (or methode), which can do that?
>
> Thanks for any help in advance!

you can make a .lod (use cldlod utility) where the data structure will
be easily seen in text format.
Another way is to use emulator: you have to load program into DSP563xx
internal RAM and then copy it into EEPROM by a small utility written for
that DSP.
It is not complicated - belive me ! :-)

Regards

Roman Rumian
From: BazookaJoe on
Hi,

Roman Rumian wrote:
> Another way is to use emulator: you have to load program into DSP563xx
> internal RAM and then copy it into EEPROM by a small utility written for
> that DSP.

where may I get such a utility?

Regards, BJ

From: Roman Rumian on
BazookaJoe napisa?(a):
> Hi,
>
> Roman Rumian wrote:
>> Another way is to use emulator: you have to load program into DSP563xx
>> internal RAM and then copy it into EEPROM by a small utility written for
>> that DSP.
>
> where may I get such a utility?

you have to write it oneself. It depends on EEPROM type you used.
Ooops ! New, DSP56371 BootROM loads X: and Y: RAM also.
Thats great !

"(...)
Assuming the EEPROM address starts at 0: -
EEPROM Byte expected at DSP Example
Address
0 PstartAddress2 00
1 PstartAddress1 04
2 PstartAddress0 00
3 XstartAddress2 00
4 XstartAddress1 05
5 XstartAddress0 00
6 YstartAddress2 00
7 YstartAddress1 06
8 YstartAddress0 00
9 PdataLength2 67
10 PdataLength1 45
11 PdataLength0 00
12 XdataLength2 21
13 XdataLength1 35
14 XdataLength0 43
15 YdataLength2 56
16 YdataLength1 64
17 YdataLength0 24
18 data in P, X and Y order -
19 must make up whole 24 bit words
-
-
-
- PstartAddress2 00
- PstartAddress1 04
- PstartAddress0 00
(final word is start address of rogram to run)
The above example would store: $004567 words from P:$400
$433521 words from X:$500
$246456 words from Y:$600
And will start running from P:$400 once all of the data has been downloaded.
(...)"
----------------

So, you must write a simple routine which will write to EEPROM a block
of data (size of block may depend on EEEPROM organisation), and then
call it three times for your P:, X: and Y: data, after writing 18 bytes
of header first, of course.

I did it for DSP56362, but for emulated on SPI interface on GPIO pins,
so its useless for you.

Good luck !

Roman Rumian
From: geroldschrutz on
"Roman Rumian" <usun_torumian(a)agh.edu.pl> schrieb im Newsbeitrag
news:edoeah$aof$1(a)news.agh.edu.pl...
> BazookaJoe napisa?(a):
>> Hi,
>>
>> Roman Rumian wrote:
>>> Another way is to use emulator: you have to load program into DSP563xx
>>> internal RAM and then copy it into EEPROM by a small utility written for
>>> that DSP.
>>
>> where may I get such a utility?
>
> you have to write it oneself. It depends on EEPROM type you used.
> Ooops ! New, DSP56371 BootROM loads X: and Y: RAM also.
> Thats great !
>
> "(...)
> Assuming the EEPROM address starts at 0: -
> EEPROM Byte expected at DSP Example
> Address
> 0 PstartAddress2 00
> 1 PstartAddress1 04
> 2 PstartAddress0 00
> 3 XstartAddress2 00
> 4 XstartAddress1 05
> 5 XstartAddress0 00
> 6 YstartAddress2 00
> 7 YstartAddress1 06
> 8 YstartAddress0 00
> 9 PdataLength2 67
> 10 PdataLength1 45
> 11 PdataLength0 00
> 12 XdataLength2 21
> 13 XdataLength1 35
> 14 XdataLength0 43
> 15 YdataLength2 56
> 16 YdataLength1 64
> 17 YdataLength0 24
> 18 data in P, X and Y order -
> 19 must make up whole 24 bit words
> -
> -
> -
> - PstartAddress2 00
> - PstartAddress1 04
> - PstartAddress0 00
> (final word is start address of rogram to run)
> The above example would store: $004567 words from P:$400
> $433521 words from X:$500
> $246456 words from Y:$600
> And will start running from P:$400 once all of the data has been
> downloaded.
> (...)"
> ----------------
>
> So, you must write a simple routine which will write to EEPROM a block of
> data (size of block may depend on EEEPROM organisation), and then call it
> three times for your P:, X: and Y: data, after writing 18 bytes of header
> first, of course.
>
> I did it for DSP56362, but for emulated on SPI interface on GPIO pins, so
> its useless for you.
>
> Good luck !
>
> Roman Rumian

Hello Roman,
you have to insert an extra Byte in front of "0 PstartAddress2 00" to get it
running. The bootcode from freescale is wrong.

Gerold