Forums

Codewarrior does not erase boot flash 56F807

Started by Wim de Haan October 8, 2002
Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto:



Attachment (not stored)
Flash_Application_807.zip
Type: application/x-zip-compressed

Attachment (not stored)
pmemwrite.asm
Type: application/octet-stream

Attachment (not stored)
DSP56F80x.h
Type: application/octet-stream

Attachment (not stored)
erase_boot.c
Type: application/octet-stream


While I agree this appears to be a bug in CodeWarrior, we have never experienced
the problem you describe. We have downloaded new programs to the 56F807 chip
using the JTAG/OnCE port thousands of times, and the Boot Flash Reset and One
Vectors (0x0000-0x0003/0xF800-0xF803) have always been erased and programmed
correctly. From reading your message, it sounds like you are using a different
method (ie not the JTAG/OnCE port) for erasing and programming the Boot Flash.
Could you please let me know if this is true, and (if yes) which method you are
using? Thanks.

In our application software, we only do Page Erases of the Boot Flash, never
Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
Vectors. The only way an application could do a Mass Erase of the Boot Flash is
if it immediately re-programmed the Reset and One Vectors. This is still quite
risky, as a power failure at the wrong time would render the system completely
non-fuctional, requiring a program download (via the JTAG/OnCE port or some
other method) to make the system usable again.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 4:05 AM
To: '
Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto:
_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this
message will receive your answer. You need to do a "reply all" if you want your
answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/


Hi Art,

I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
convertor of Motorola.
When I use the program flash_over_jtag.exe (from the SDK) everything
functions ok.

However when I use Codewarrior (versions 4 and 5 have this bug)
and I have in my init.asm file:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
than I load it (for the first time) with Codewarrior in the target and read
at address 0 (mixed source assembly) I read:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E98400e0 jmp 0x0000e0
So far Ok

Than I change my code to:
jmp 0
And load with Codewarrior and read back:
jmp 0
P:00000000: E9840000 jmp 0x000000
So far Ok

Than I change my code back to:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
And load with Codewarrior and read back:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E9840000 jmp 0x000000
THIS IS NOT OK. The zero bits have not been set back to 1 I agree with you, that you must not erase the boot flash within your
program.
I only did it for test purposes to check if erase/write boot flash was
functioning if I programmed it myself.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: -----Original Message-----
From: Art Johnson [mailto:]
Sent: dinsdag 8 oktober 2002 14:59
To: Wim de Haan;
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 While I agree this appears to be a bug in CodeWarrior, we have never
experienced the problem you describe. We have downloaded new programs to
the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
erased and programmed correctly. From reading your message, it sounds like
you are using a different method (ie not the JTAG/OnCE port) for erasing and
programming the Boot Flash. Could you please let me know if this is true,
and (if yes) which method you are using? Thanks.

In our application software, we only do Page Erases of the Boot Flash, never
Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
Vectors. The only way an application could do a Mass Erase of the Boot
Flash is if it immediately re-programmed the Reset and One Vectors. This is
still quite risky, as a power failure at the wrong time would render the
system completely non-fuctional, requiring a program download (via the
JTAG/OnCE port or some other method) to make the system usable again.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 4:05 AM
To: '
Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto:


M. Haan -

We have used the CodeWarrior tool v4 and v5 thousands of times programming the
DSP56F807 and have not experienced a problem where it doesn't properly erase the
bootflash. I think that you must be experiencing a problem very specific to your
set up. Have you entered a service request on this issue ?

- Bill

-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 7:36 AM
To: 'Art Johnson';
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi Art,

I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
convertor of Motorola.
When I use the program flash_over_jtag.exe (from the SDK) everything
functions ok.

However when I use Codewarrior (versions 4 and 5 have this bug)
and I have in my init.asm file:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
than I load it (for the first time) with Codewarrior in the target and read
at address 0 (mixed source assembly) I read:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E98400e0 jmp 0x0000e0
So far Ok

Than I change my code to:
jmp 0
And load with Codewarrior and read back:
jmp 0
P:00000000: E9840000 jmp 0x000000
So far Ok

Than I change my code back to:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
And load with Codewarrior and read back:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E9840000 jmp 0x000000
THIS IS NOT OK. The zero bits have not been set back to 1 I agree with you, that you must not erase the boot flash within your
program.
I only did it for test purposes to check if erase/write boot flash was
functioning if I programmed it myself.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: -----Original Message-----
From: Art Johnson [mailto:]
Sent: dinsdag 8 oktober 2002 14:59
To: Wim de Haan;
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 While I agree this appears to be a bug in CodeWarrior, we have never
experienced the problem you describe. We have downloaded new programs to
the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
erased and programmed correctly. From reading your message, it sounds like
you are using a different method (ie not the JTAG/OnCE port) for erasing and
programming the Boot Flash. Could you please let me know if this is true,
and (if yes) which method you are using? Thanks.

In our application software, we only do Page Erases of the Boot Flash, never
Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
Vectors. The only way an application could do a Mass Erase of the Boot
Flash is if it immediately re-programmed the Reset and One Vectors. This is
still quite risky, as a power failure at the wrong time would render the
system completely non-fuctional, requiring a program download (via the
JTAG/OnCE port or some other method) to make the system usable again.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com <http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 4:05 AM
To: '
Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: <http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S05771855:H\
M/A26184/R=0/*http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1054521.1\
1;sz00x250;adc=ZHS;ord34088377?>

<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmail/S=\
:HM/A26184/rand6774202>

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this
message will receive your answer. You need to do a "reply all" if you want your
answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>

More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/> .


FYI
 
To prevent my applications from inadvertantly erasing or programming the boot vectors (0 and 1) I remove the line in the linker command file that allows the CodeWarrior flash programmer to overwrite the program memory at addresses 0 through 3 ( and the Boot loader memory at 0xF804.
 
remove:
 
 .pBootFlash         (RX)  : ORIGIN = 0xF800, LENGTH = 0x0800

Also the interrupt vector statement should be set to start at location 4 as per the examples.
 
# .pInterruptVector   (RX)  : ORIGIN = 0x0000, LENGTH = 0x0086
 .pInterruptVector   (RX)  : ORIGIN = 0x0004, LENGTH = 0x0082
My Boot loader is a custom loader that is loaded as a separate file, which uses the following section definitions.
 
 .reset  (RX)  : ORIGIN = 0xF800, LENGTH = 0x0004  # boot flash memory reset isr
 .bflash (RX)  : ORIGIN = 0xF804, LENGTH = 0x07FC  # boot flash memory
 
Hope this helps.
 
Jerry

-----Original Message-----
From: Wim de Haan [mailto:w...@exendis.com]
Sent: Tuesday, October 08, 2002 9:36 AM
To: 'Art Johnson'; m...@yahoogroups.com
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807

Hi Art,

I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
convertor of Motorola.
When I use the program flash_over_jtag.exe (from the SDK) everything
functions ok.

However when I use Codewarrior (versions 4 and 5 have this bug)
and I have in my init.asm file:
      jmp FRESET_irq00                        ; irq00 $0000
Hardware Reset
than I load it (for the first time) with Codewarrior in the target and read
at address 0 (mixed source assembly) I read:
      jmp FRESET_irq00                        ; irq00 $0000
Hardware Reset
P:00000000: E98400e0  jmp      0x0000e0
So far Ok

Than I change my code to:
      jmp 0
And load with Codewarrior and read back:
      jmp 0
P:00000000: E9840000  jmp      0x000000
So far Ok

Than I change my code back to:
      jmp FRESET_irq00                        ; irq00 $0000
Hardware Reset
And load with Codewarrior and read back:
      jmp FRESET_irq00                        ; irq00 $0000
Hardware Reset
P:00000000: E9840000  jmp      0x000000
THIS IS NOT OK. The zero bits have not been set back to 1I agree with you, that you must not erase the boot flash within your
program.
I only did it for test purposes to check if erase/write boot flash was
functioning if I programmed it myself.

Kind regards,Wim de HaanExendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB  Ede
The Netherlands.
Tel:  +31-(0)318 - 676305
mailto:w...@exendis.com-----Original Message-----
From: Art Johnson [mailto:a...@pmc-controls.com]
Sent: dinsdag 8 oktober 2002 14:59
To: Wim de Haan; m...@yahoogroups.com
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807While I agree this appears to be a bug in CodeWarrior, we have never
experienced the problem you describe.  We have downloaded new programs to
the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
erased and programmed correctly.  From reading your message, it sounds like
you are using a different method (ie not the JTAG/OnCE port) for erasing and
programming the Boot Flash.  Could you please let me know if this is true,
and (if yes) which method you are using?  Thanks.

In our application software, we only do Page Erases of the Boot Flash, never
Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
Vectors.  The only way an application could do a Mass Erase of the Boot
Flash is if it immediately re-programmed the Reset and One Vectors.  This is
still quite risky, as a power failure at the wrong time would render the
system completely non-fuctional, requiring a program download (via the
JTAG/OnCE port or some other method) to make the system usable again.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone:  604 433-4644
FAX:    604 433-5570
Email:  a...@pmc-controls.com
http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:w...@exendis.com]
Sent: Tuesday, October 08, 2002 4:05 AM
To: 'm...@yahoogroups.com'
Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards,Wim de HaanExendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB  Ede
The Netherlands.
Tel:  +31-(0)318 - 676305
mailto:w...@exendis.com



_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer.  You need to do a "reply all" if you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:  m...@yahoogroups.com

To Post:  m...@yahoogroups.com

To Leave: m...@yahoogroups.com

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3


">Yahoo! Terms of Service.


Hi Bill,

Normally the entry point of your code (where the reset pointer points to)
keeps the same address when you change your software code, so you do not
experience any problem. But the bug I describe can easily be reproduced. Do
it yourself.

I have reported this bug two times in february 2002, but the reaction of
Metrowerks was: "I can not test the cfg file for the 807 derivative because
I don't have the DSP56807EVM board. The cfg file that you sent me seems to
be correct. In attachment you will find an example of the flash programming
for the DSP56807. I hope this help you to fix this problem" (Typical
Metrowerks reaction)
October-2-2002 I have sent this bug again to Metrowerks [
<mailto:> ]. His reaction was:
"Basically, flash doesn't exist to our tools until word 0x0004 so I can't
see how our tools are programming the boot flash portion." (Typical
Metrowerks reaction).
However october-3-2002 I sent the bug report with even more description
again to Metrowerks [ <mailto:> ]
(so for me the fourth time) and until now I haven't got reaction or any
service request number (Typical Metrowerks reaction).

Kind regards,

Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto:

-----Original Message-----
From: Hutchings William-p23437 [mailto:]
Sent: dinsdag 8 oktober 2002 20:04
To: Wim de Haan; 'Art Johnson';
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 M. Haan -

We have used the CodeWarrior tool v4 and v5 thousands of times programming
the DSP56F807 and have not experienced a problem where it doesn't properly
erase the bootflash. I think that you must be experiencing a problem very
specific to your set up. Have you entered a service request on this issue ?

- Bill

-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 7:36 AM
To: 'Art Johnson';
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi Art,

I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
convertor of Motorola.
When I use the program flash_over_jtag.exe (from the SDK) everything
functions ok.

However when I use Codewarrior (versions 4 and 5 have this bug)
and I have in my init.asm file:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
than I load it (for the first time) with Codewarrior in the target and read
at address 0 (mixed source assembly) I read:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E98400e0 jmp 0x0000e0
So far Ok

Than I change my code to:
jmp 0
And load with Codewarrior and read back:
jmp 0
P:00000000: E9840000 jmp 0x000000
So far Ok

Than I change my code back to:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
And load with Codewarrior and read back:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E9840000 jmp 0x000000
THIS IS NOT OK. The zero bits have not been set back to 1 I agree with you, that you must not erase the boot flash within your
program.
I only did it for test purposes to check if erase/write boot flash was
functioning if I programmed it myself.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: -----Original Message-----
From: Art Johnson [mailto:]
Sent: dinsdag 8 oktober 2002 14:59
To: Wim de Haan;
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 While I agree this appears to be a bug in CodeWarrior, we have never
experienced the problem you describe. We have downloaded new programs to
the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
erased and programmed correctly. From reading your message, it sounds like
you are using a different method (ie not the JTAG/OnCE port) for erasing and
programming the Boot Flash. Could you please let me know if this is true,
and (if yes) which method you are using? Thanks.

In our application software, we only do Page Erases of the Boot Flash, never
Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
Vectors. The only way an application could do a Mass Erase of the Boot
Flash is if it immediately re-programmed the Reset and One Vectors. This is
still quite risky, as a power failure at the wrong time would render the
system completely non-fuctional, requiring a program download (via the
JTAG/OnCE port or some other method) to make the system usable again.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com <http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 4:05 AM
To: '
Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: <http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
55:HM/A26184/R=0/*http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
054521.11;sz00x250;adc=ZHS;ord34088377?>

<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
l/S=:HM/A26184/rand6774202>

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you
want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>

More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/> .




I agree, that the Reset (0) Vector normally doesn't change, but in our code the
One (COP timeout) Vector does change, as the COP ISR is in another source file
that is much farther down the Link Order. This Vector is changed correctly when
we download a new program using the JTAG/OnCE port. We also see that the Boot
Flash has been erased, because data that we saved at a higher address in the
Boot Flash has been set to 0xFFFF after we download the new program.

Still, there must be an explanation for why your results are different from our
results. We do have the DSP56F807EVM board here, so if you can send me a small
test program, I can try it here and should be able to find the cause of the
problem.

I do find it strange that a company the size of Metrowerks can't afford to buy
an EVM module for the 807 chip.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 11:36 PM
To: '; Art Johnson;

Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi Bill,

Normally the entry point of your code (where the reset pointer points to)
keeps the same address when you change your software code, so you do not
experience any problem. But the bug I describe can easily be reproduced. Do
it yourself.

I have reported this bug two times in february 2002, but the reaction of
Metrowerks was: "I can not test the cfg file for the 807 derivative because
I don't have the DSP56807EVM board. The cfg file that you sent me seems to
be correct. In attachment you will find an example of the flash programming
for the DSP56807. I hope this help you to fix this problem" (Typical
Metrowerks reaction)
October-2-2002 I have sent this bug again to Metrowerks [
<mailto:> ]. His reaction was:
"Basically, flash doesn't exist to our tools until word 0x0004 so I can't
see how our tools are programming the boot flash portion." (Typical
Metrowerks reaction).
However october-3-2002 I sent the bug report with even more description
again to Metrowerks [ <mailto:> ]
(so for me the fourth time) and until now I haven't got reaction or any
service request number (Typical Metrowerks reaction).

Kind regards,

Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto:

-----Original Message-----
From: Hutchings William-p23437 [mailto:]
Sent: dinsdag 8 oktober 2002 20:04
To: Wim de Haan; 'Art Johnson';
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 M. Haan -

We have used the CodeWarrior tool v4 and v5 thousands of times programming
the DSP56F807 and have not experienced a problem where it doesn't properly
erase the bootflash. I think that you must be experiencing a problem very
specific to your set up. Have you entered a service request on this issue ?

- Bill

-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 7:36 AM
To: 'Art Johnson';
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi Art,

I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
convertor of Motorola.
When I use the program flash_over_jtag.exe (from the SDK) everything
functions ok.

However when I use Codewarrior (versions 4 and 5 have this bug)
and I have in my init.asm file:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
than I load it (for the first time) with Codewarrior in the target and read
at address 0 (mixed source assembly) I read:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E98400e0 jmp 0x0000e0
So far Ok

Than I change my code to:
jmp 0
And load with Codewarrior and read back:
jmp 0
P:00000000: E9840000 jmp 0x000000
So far Ok

Than I change my code back to:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
And load with Codewarrior and read back:
jmp FRESET_irq00 ; irq00 $0000
Hardware Reset
P:00000000: E9840000 jmp 0x000000
THIS IS NOT OK. The zero bits have not been set back to 1 I agree with you, that you must not erase the boot flash within your
program.
I only did it for test purposes to check if erase/write boot flash was
functioning if I programmed it myself.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: -----Original Message-----
From: Art Johnson [mailto:]
Sent: dinsdag 8 oktober 2002 14:59
To: Wim de Haan;
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 While I agree this appears to be a bug in CodeWarrior, we have never
experienced the problem you describe. We have downloaded new programs to
the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
erased and programmed correctly. From reading your message, it sounds like
you are using a different method (ie not the JTAG/OnCE port) for erasing and
programming the Boot Flash. Could you please let me know if this is true,
and (if yes) which method you are using? Thanks.

In our application software, we only do Page Erases of the Boot Flash, never
Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
Vectors. The only way an application could do a Mass Erase of the Boot
Flash is if it immediately re-programmed the Reset and One Vectors. This is
still quite risky, as a power failure at the wrong time would render the
system completely non-fuctional, requiring a program download (via the
JTAG/OnCE port or some other method) to make the system usable again.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com <http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Tuesday, October 08, 2002 4:05 AM
To: '
Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi,

Some members have problems with erasing/programming boot flash of DSP56F807
The bug is, that Codewarrior does not erase the boot flash of DSP56F807
(adresses 0x0..0x3)
However it programs the boot flash without erasing before, so bits can be
set to 0 but not to 1
Obviously zero bits are set to zero, but one-bits have their old state.
This is a bug in Codewarrior and I can also explain you why:
The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
manual:

5.11.3 Intelligent Erase Operation

4. For a mass erase: set the page to $0. (Exception: when mass erasing
bootflash of
56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
FIU_CNTL register must be set.

THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
the bootflash does not work at 56F807, but the programming does, so this
explains why bits can be set to 0 and not to 1 in the boot flash.

See attached files how to program boot flash from your own software.

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31-(0)318 - 676305
mailto: <http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
55:HM/A26184/R=0/*http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
054521.11;sz00x250;adc=ZHS;ord34088377?>

<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
l/S=:HM/A26184/rand6774202>

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you
want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>

More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/> .


Win,

Do you understand that the these four locations are mirrored elsewhere in
the bootflash and you need to ensure that you are writing to the mirrored
location.

It is not that we are ignoring you, indeed I have had several people looking
at this and I just asked one other engineer to look at it again. But
apparently you have never given us any example that when coded right does
not work right.

Ron

> Hi Bill,
>
> Normally the entry point of your code (where the reset pointer points to)
> keeps the same address when you change your software code, so you do not
> experience any problem. But the bug I describe can easily be reproduced. Do
> it yourself.
>
> I have reported this bug two times in february 2002, but the reaction of
> Metrowerks was: "I can not test the cfg file for the 807 derivative because
> I don't have the DSP56807EVM board. The cfg file that you sent me seems to
> be correct. In attachment you will find an example of the flash programming
> for the DSP56807. I hope this help you to fix this problem" (Typical
> Metrowerks reaction)
> October-2-2002 I have sent this bug again to Metrowerks [
> <mailto:> ]. His reaction was:
> "Basically, flash doesn't exist to our tools until word 0x0004 so I can't
> see how our tools are programming the boot flash portion." (Typical
> Metrowerks reaction).
> However october-3-2002 I sent the bug report with even more description
> again to Metrowerks [ <mailto:> ]
> (so for me the fourth time) and until now I haven't got reaction or any
> service request number (Typical Metrowerks reaction).
>
> Kind regards,
>
> Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto:
>
> -----Original Message-----
> From: Hutchings William-p23437 [mailto:]
> Sent: dinsdag 8 oktober 2002 20:04
> To: Wim de Haan; 'Art Johnson';
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > M. Haan -
>
> We have used the CodeWarrior tool v4 and v5 thousands of times programming
> the DSP56F807 and have not experienced a problem where it doesn't properly
> erase the bootflash. I think that you must be experiencing a problem very
> specific to your set up. Have you entered a service request on this issue ?
>
> - Bill
>
> -----Original Message-----
> From: Wim de Haan [mailto:]
> Sent: Tuesday, October 08, 2002 7:36 AM
> To: 'Art Johnson';
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > Hi Art,
>
> I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
> convertor of Motorola.
> When I use the program flash_over_jtag.exe (from the SDK) everything
> functions ok.
>
> However when I use Codewarrior (versions 4 and 5 have this bug)
> and I have in my init.asm file:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> than I load it (for the first time) with Codewarrior in the target and read
> at address 0 (mixed source assembly) I read:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> P:00000000: E98400e0 jmp 0x0000e0
> So far Ok
>
> Than I change my code to:
> jmp 0
> And load with Codewarrior and read back:
> jmp 0
> P:00000000: E9840000 jmp 0x000000
> So far Ok
>
> Than I change my code back to:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> And load with Codewarrior and read back:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> P:00000000: E9840000 jmp 0x000000
> THIS IS NOT OK. The zero bits have not been set back to 1 > I agree with you, that you must not erase the boot flash within your
> program.
> I only did it for test purposes to check if erase/write boot flash was
> functioning if I programmed it myself.
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto: > -----Original Message-----
> From: Art Johnson [mailto:]
> Sent: dinsdag 8 oktober 2002 14:59
> To: Wim de Haan;
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > While I agree this appears to be a bug in CodeWarrior, we have never
> experienced the problem you describe. We have downloaded new programs to
> the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
> Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
> erased and programmed correctly. From reading your message, it sounds like
> you are using a different method (ie not the JTAG/OnCE port) for erasing and
> programming the Boot Flash. Could you please let me know if this is true,
> and (if yes) which method you are using? Thanks.
>
> In our application software, we only do Page Erases of the Boot Flash, never
> Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and One
> Vectors. The only way an application could do a Mass Erase of the Boot
> Flash is if it immediately re-programmed the Reset and One Vectors. This is
> still quite risky, as a power failure at the wrong time would render the
> system completely non-fuctional, requiring a program download (via the
> JTAG/OnCE port or some other method) to make the system usable again.
>
> Regards,
>
> Art Johnson
> Senior Systems Analyst
> PMC Prime Mover Controls Inc.
> 3600 Gilmore Way
> Burnaby, B.C., Canada
> V5G 4R8
> Phone: 604 433-4644
> FAX: 604 433-5570
> Email:
> http://www.pmc-controls.com <http://www.pmc-controls.com >
> -----Original Message-----
> From: Wim de Haan [mailto:]
> Sent: Tuesday, October 08, 2002 4:05 AM
> To: '
> Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 > Hi,
>
> Some members have problems with erasing/programming boot flash of DSP56F807
> The bug is, that Codewarrior does not erase the boot flash of DSP56F807
> (adresses 0x0..0x3)
> However it programs the boot flash without erasing before, so bits can be
> set to 0 but not to 1
> Obviously zero bits are set to zero, but one-bits have their old state.
> This is a bug in Codewarrior and I can also explain you why:
> The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
> manual:
>
> 5.11.3 Intelligent Erase Operation
>
> 4. For a mass erase: set the page to $0. (Exception: when mass erasing
> bootflash of
> 56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
> FIU_CNTL register must be set.
>
> THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to $78.)
> IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
> the bootflash does not work at 56F807, but the programming does, so this
> explains why bits can be set to 0 and not to 1 in the boot flash.
>
> See attached files how to program boot flash from your own software.
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto: > <http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
> 55:HM/A26184/R=0/*http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
> 054521.11;sz00x250;adc=ZHS;ord34088377?>
>
> <http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
> l/S=:HM/A26184/rand6774202>
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author of
> this message will receive your answer. You need to do a "reply all" if you
> want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
> <http://www.yahoogroups.com/group/motoroladsp>
>
> More Groups: http://www.dsprelated.com/groups.php3
> <http://www.dsprelated.com/groups.php3 > ">http://docs.yahoo.com/info/terms/> . > _____________________________________
> Note: If you do a simple "reply" with your email client, only the author of
> this message will receive your answer. You need to do a "reply all" if you
> want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
>
> More Groups: http://www.dsprelated.com/groups.php3 > ">http://docs.yahoo.com/info/terms/

--
Do what you do best and let Metrowerks do the rest !!
http://www.metrowerks.com/MW/Services/SSG/default.htm

Metrowerks, maker of CodeWarrior - "Software Starts Here"
Ron Liechty - - http://www.metrowerks.com



Hi Ron,

Herewith a sample project (for Codewarrior 5, but Codewarrior 4 has the same
bug):

First debug Flashtest\flashtest.mcp, set debug window to mixed
source/assembly, page up and you will see:
jmp F_irq00 ; irq00 $0000 Hardware Reset
P:00000000: E9840080 jmp 0x000080 <== Ok!
Close debug session

Than debug Flashtest2\flashtest2.mcp, set debug window to mixed
source/assembly, page up and you will see:
jmp 0 ; to show the not-erase bug
P:00000000: E9840000 jmp 0x000000 <== Ok!
Close debug session

Than again debug Flashtest\flashtest.mcp, set debug window to mixed
source/assembly, page up and you will see:
jmp F_irq00 ; irq00 $0000 Hardware Reset
P:00000000: E9840000 jmp 0x000000 <== NOT OK!!

So you see erasing boot flash did not happen!!

Kind regards,

Wim de Haan

-----Original Message-----
From: MW Ron [mailto:]
Sent: woensdag 9 oktober 2002 15:18
To:
Subject: Re: [motoroladsp] Codewarrior does not erase boot flash 56F807 Win,

Do you understand that the these four locations are mirrored elsewhere in
the bootflash and you need to ensure that you are writing to the mirrored
location.

It is not that we are ignoring you, indeed I have had several people looking
at this and I just asked one other engineer to look at it again. But
apparently you have never given us any example that when coded right does
not work right.

Ron

> Hi Bill,
>
> Normally the entry point of your code (where the reset pointer points to)
> keeps the same address when you change your software code, so you do not
> experience any problem. But the bug I describe can easily be reproduced.
Do
> it yourself.
>
> I have reported this bug two times in february 2002, but the reaction of
> Metrowerks was: "I can not test the cfg file for the 807 derivative
because
> I don't have the DSP56807EVM board. The cfg file that you sent me seems to
> be correct. In attachment you will find an example of the flash
programming
> for the DSP56807. I hope this help you to fix this problem" (Typical
> Metrowerks reaction)
> October-2-2002 I have sent this bug again to Metrowerks [
> <mailto:> ]. His reaction was:
> "Basically, flash doesn't exist to our tools until word 0x0004 so I can't
> see how our tools are programming the boot flash portion." (Typical
> Metrowerks reaction).
> However october-3-2002 I sent the bug report with even more description
> again to Metrowerks [ <mailto:> ]
> (so for me the fourth time) and until now I haven't got reaction or any
> service request number (Typical Metrowerks reaction).
>
> Kind regards,
>
> Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto:
>
> -----Original Message-----
> From: Hutchings William-p23437 [mailto:]
> Sent: dinsdag 8 oktober 2002 20:04
> To: Wim de Haan; 'Art Johnson';
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > M. Haan -
>
> We have used the CodeWarrior tool v4 and v5 thousands of times programming
> the DSP56F807 and have not experienced a problem where it doesn't properly
> erase the bootflash. I think that you must be experiencing a problem very
> specific to your set up. Have you entered a service request on this issue
?
>
> - Bill
>
> -----Original Message-----
> From: Wim de Haan [mailto:]
> Sent: Tuesday, October 08, 2002 7:36 AM
> To: 'Art Johnson';
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > Hi Art,
>
> I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
> convertor of Motorola.
> When I use the program flash_over_jtag.exe (from the SDK) everything
> functions ok.
>
> However when I use Codewarrior (versions 4 and 5 have this bug)
> and I have in my init.asm file:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> than I load it (for the first time) with Codewarrior in the target and
read
> at address 0 (mixed source assembly) I read:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> P:00000000: E98400e0 jmp 0x0000e0
> So far Ok
>
> Than I change my code to:
> jmp 0
> And load with Codewarrior and read back:
> jmp 0
> P:00000000: E9840000 jmp 0x000000
> So far Ok
>
> Than I change my code back to:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> And load with Codewarrior and read back:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> P:00000000: E9840000 jmp 0x000000
> THIS IS NOT OK. The zero bits have not been set back to 1 > I agree with you, that you must not erase the boot flash within your
> program.
> I only did it for test purposes to check if erase/write boot flash was
> functioning if I programmed it myself.
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto: > -----Original Message-----
> From: Art Johnson [mailto:]
> Sent: dinsdag 8 oktober 2002 14:59
> To: Wim de Haan;
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > While I agree this appears to be a bug in CodeWarrior, we have never
> experienced the problem you describe. We have downloaded new programs to
> the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
> Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
> erased and programmed correctly. From reading your message, it sounds
like
> you are using a different method (ie not the JTAG/OnCE port) for erasing
and
> programming the Boot Flash. Could you please let me know if this is true,
> and (if yes) which method you are using? Thanks.
>
> In our application software, we only do Page Erases of the Boot Flash,
never
> Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and
One
> Vectors. The only way an application could do a Mass Erase of the Boot
> Flash is if it immediately re-programmed the Reset and One Vectors. This
is
> still quite risky, as a power failure at the wrong time would render the
> system completely non-fuctional, requiring a program download (via the
> JTAG/OnCE port or some other method) to make the system usable again.
>
> Regards,
>
> Art Johnson
> Senior Systems Analyst
> PMC Prime Mover Controls Inc.
> 3600 Gilmore Way
> Burnaby, B.C., Canada
> V5G 4R8
> Phone: 604 433-4644
> FAX: 604 433-5570
> Email:
> http://www.pmc-controls.com <http://www.pmc-controls.com> <
http://www.pmc-controls.com <http://www.pmc-controls.com> >
> -----Original Message-----
> From: Wim de Haan [mailto:]
> Sent: Tuesday, October 08, 2002 4:05 AM
> To: '
> Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 > Hi,
>
> Some members have problems with erasing/programming boot flash of
DSP56F807
> The bug is, that Codewarrior does not erase the boot flash of DSP56F807
> (adresses 0x0..0x3)
> However it programs the boot flash without erasing before, so bits can be
> set to 0 but not to 1
> Obviously zero bits are set to zero, but one-bits have their old state.
> This is a bug in Codewarrior and I can also explain you why:
> The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
> manual:
>
> 5.11.3 Intelligent Erase Operation
>
> 4. For a mass erase: set the page to $0. (Exception: when mass erasing
> bootflash of
> 56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
> FIU_CNTL register must be set.
>
> THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to
$78.)
> IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
> the bootflash does not work at 56F807, but the programming does, so this
> explains why bits can be set to 0 and not to 1 in the boot flash.
>
> See attached files how to program boot flash from your own software.
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto: > <
http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
<http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
>
> 55:HM/A26184/R=0/*
http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
<http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1>
> 054521.11;sz00x250;adc=ZHS;ord34088377?>
>
> <
http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
>
> l/S=:HM/A26184/rand6774202>
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of
> this message will receive your answer. You need to do a "reply all" if
you
> want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>
> < http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp> >
>
> More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3>
> < http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3> >
>
>
> ">http://docs.yahoo.com/info/terms/ <http://docs.yahoo.com/info/terms/> >
.
>
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of
> this message will receive your answer. You need to do a "reply all" if
you
> want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>
>
> More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3>
>
>
> ">http://docs.yahoo.com/info/terms/
<http://docs.yahoo.com/info/terms/>
>
>

--
Do what you do best and let Metrowerks do the rest !!
http://www.metrowerks.com/MW/Services/SSG/default.htm
<http://www.metrowerks.com/MW/Services/SSG/default.htm>

Metrowerks, maker of CodeWarrior - "Software Starts Here"
Ron Liechty - - http://www.metrowerks.com
<http://www.metrowerks.com

<http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
55:HM/A26184/R=0/*http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
054521.11;sz00x250;adc=ZHS;ord34169674?>

<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
l/S=:HM/A26184/randh2117450>

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you
want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>

More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/> .


Attachment (not stored)
Flash bug.ZIP
Type: application/octet-stream

The problem was caused by your linker command file, which was placing the
interrupt vectors for Reset and One at addresses P:0x0000 to P:0x0003. In order
to erase and program the Boot Flash in the 56F807 chip, these must be placed at
addresses P:0xF800 to P:0xF803. This requires that the interrupt vectors for
Reset and One are placed into a separate file called "vectorreset.asm". The
.text section of your program must start at P:0x0004 in the linker command file.
I also used the Flash configuration file "flash.cfg" that came with the
Motorola SDK version 2.5, instead of your file "flash807.cfg".

The attached file has this problem fixed, for the Flashtest\flashtest.mcp
project.

Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com
-----Original Message-----
From: Wim de Haan [mailto:]
Sent: Thursday, October 10, 2002 12:54 AM
To: 'MW Ron';
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 Hi Ron,

Herewith a sample project (for Codewarrior 5, but Codewarrior 4 has the same
bug):

First debug Flashtest\flashtest.mcp, set debug window to mixed
source/assembly, page up and you will see:
jmp F_irq00 ; irq00 $0000 Hardware Reset
P:00000000: E9840080 jmp 0x000080 <== Ok!
Close debug session

Than debug Flashtest2\flashtest2.mcp, set debug window to mixed
source/assembly, page up and you will see:
jmp 0 ; to show the not-erase bug
P:00000000: E9840000 jmp 0x000000 <== Ok!
Close debug session

Than again debug Flashtest\flashtest.mcp, set debug window to mixed
source/assembly, page up and you will see:
jmp F_irq00 ; irq00 $0000 Hardware Reset
P:00000000: E9840000 jmp 0x000000 <== NOT OK!!

So you see erasing boot flash did not happen!!

Kind regards,

Wim de Haan

-----Original Message-----
From: MW Ron [mailto:]
Sent: woensdag 9 oktober 2002 15:18
To:
Subject: Re: [motoroladsp] Codewarrior does not erase boot flash 56F807 Win,

Do you understand that the these four locations are mirrored elsewhere in
the bootflash and you need to ensure that you are writing to the mirrored
location.

It is not that we are ignoring you, indeed I have had several people looking
at this and I just asked one other engineer to look at it again. But
apparently you have never given us any example that when coded right does
not work right.

Ron

> Hi Bill,
>
> Normally the entry point of your code (where the reset pointer points to)
> keeps the same address when you change your software code, so you do not
> experience any problem. But the bug I describe can easily be reproduced.
Do
> it yourself.
>
> I have reported this bug two times in february 2002, but the reaction of
> Metrowerks was: "I can not test the cfg file for the 807 derivative
because
> I don't have the DSP56807EVM board. The cfg file that you sent me seems to
> be correct. In attachment you will find an example of the flash
programming
> for the DSP56807. I hope this help you to fix this problem" (Typical
> Metrowerks reaction)
> October-2-2002 I have sent this bug again to Metrowerks [
> <mailto:> ]. His reaction was:
> "Basically, flash doesn't exist to our tools until word 0x0004 so I can't
> see how our tools are programming the boot flash portion." (Typical
> Metrowerks reaction).
> However october-3-2002 I sent the bug report with even more description
> again to Metrowerks [ <mailto:> ]
> (so for me the fourth time) and until now I haven't got reaction or any
> service request number (Typical Metrowerks reaction).
>
> Kind regards,
>
> Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto:
>
> -----Original Message-----
> From: Hutchings William-p23437 [mailto:]
> Sent: dinsdag 8 oktober 2002 20:04
> To: Wim de Haan; 'Art Johnson';
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > M. Haan -
>
> We have used the CodeWarrior tool v4 and v5 thousands of times programming
> the DSP56F807 and have not experienced a problem where it doesn't properly
> erase the bootflash. I think that you must be experiencing a problem very
> specific to your set up. Have you entered a service request on this issue
?
>
> - Bill
>
> -----Original Message-----
> From: Wim de Haan [mailto:]
> Sent: Tuesday, October 08, 2002 7:36 AM
> To: 'Art Johnson';
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > Hi Art,
>
> I use the JTAG/OnCE port of the chip and use the parallel-port-JTAG
> convertor of Motorola.
> When I use the program flash_over_jtag.exe (from the SDK) everything
> functions ok.
>
> However when I use Codewarrior (versions 4 and 5 have this bug)
> and I have in my init.asm file:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> than I load it (for the first time) with Codewarrior in the target and
read
> at address 0 (mixed source assembly) I read:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> P:00000000: E98400e0 jmp 0x0000e0
> So far Ok
>
> Than I change my code to:
> jmp 0
> And load with Codewarrior and read back:
> jmp 0
> P:00000000: E9840000 jmp 0x000000
> So far Ok
>
> Than I change my code back to:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> And load with Codewarrior and read back:
> jmp FRESET_irq00 ; irq00 $0000
> Hardware Reset
> P:00000000: E9840000 jmp 0x000000
> THIS IS NOT OK. The zero bits have not been set back to 1 > I agree with you, that you must not erase the boot flash within your
> program.
> I only did it for test purposes to check if erase/write boot flash was
> functioning if I programmed it myself.
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto: > -----Original Message-----
> From: Art Johnson [mailto:]
> Sent: dinsdag 8 oktober 2002 14:59
> To: Wim de Haan;
> Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807 > While I agree this appears to be a bug in CodeWarrior, we have never
> experienced the problem you describe. We have downloaded new programs to
> the 56F807 chip using the JTAG/OnCE port thousands of times, and the Boot
> Flash Reset and One Vectors (0x0000-0x0003/0xF800-0xF803) have always been
> erased and programmed correctly. From reading your message, it sounds
like
> you are using a different method (ie not the JTAG/OnCE port) for erasing
and
> programming the Boot Flash. Could you please let me know if this is true,
> and (if yes) which method you are using? Thanks.
>
> In our application software, we only do Page Erases of the Boot Flash,
never
> Mass Erases, because a Mass Erase will destroy the Boot Flash Reset and
One
> Vectors. The only way an application could do a Mass Erase of the Boot
> Flash is if it immediately re-programmed the Reset and One Vectors. This
is
> still quite risky, as a power failure at the wrong time would render the
> system completely non-fuctional, requiring a program download (via the
> JTAG/OnCE port or some other method) to make the system usable again.
>
> Regards,
>
> Art Johnson
> Senior Systems Analyst
> PMC Prime Mover Controls Inc.
> 3600 Gilmore Way
> Burnaby, B.C., Canada
> V5G 4R8
> Phone: 604 433-4644
> FAX: 604 433-5570
> Email:
> http://www.pmc-controls.com <http://www.pmc-controls.com> <
http://www.pmc-controls.com <http://www.pmc-controls.com> >
> -----Original Message-----
> From: Wim de Haan [mailto:]
> Sent: Tuesday, October 08, 2002 4:05 AM
> To: '
> Subject: [motoroladsp] Codewarrior does not erase boot flash 56F807 > Hi,
>
> Some members have problems with erasing/programming boot flash of
DSP56F807
> The bug is, that Codewarrior does not erase the boot flash of DSP56F807
> (adresses 0x0..0x3)
> However it programs the boot flash without erasing before, so bits can be
> set to 0 but not to 1
> Obviously zero bits are set to zero, but one-bits have their old state.
> This is a bug in Codewarrior and I can also explain you why:
> The programmer of Codewarrior did not read page 5-15 of DSP56F80x User's
> manual:
>
> 5.11.3 Intelligent Erase Operation
>
> 4. For a mass erase: set the page to $0. (Exception: when mass erasing
> bootflash of
> 56F807, set the page to $78.) Also, for a mass erase, the MAS1 bit of the
> FIU_CNTL register must be set.
>
> THIS EXCEPTION (when mass erasing bootflash of 56F807, set the page to
$78.)
> IS FORGOTTEN BY THE PROGRAMMER OF CODEWARRIOR, and therefor the erasing of
> the bootflash does not work at 56F807, but the programming does, so this
> explains why bits can be set to 0 and not to 1 in the boot flash.
>
> See attached files how to program boot flash from your own software.
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31-(0)318 - 676305
> mailto: > <
http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
<http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
>
> 55:HM/A26184/R=0/*
http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
<http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1>
> 054521.11;sz00x250;adc=ZHS;ord34088377?>
>
> <
http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
>
> l/S=:HM/A26184/rand6774202>
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of
> this message will receive your answer. You need to do a "reply all" if
you
> want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>
> < http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp> >
>
> More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3>
> < http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3> >
>
>
> ">http://docs.yahoo.com/info/terms/ <http://docs.yahoo.com/info/terms/> >
.
>
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of
> this message will receive your answer. You need to do a "reply all" if
you
> want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>
>
> More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3>
>
>
> ">http://docs.yahoo.com/info/terms/
<http://docs.yahoo.com/info/terms/>
>
>

--
Do what you do best and let Metrowerks do the rest !!
http://www.metrowerks.com/MW/Services/SSG/default.htm
<http://www.metrowerks.com/MW/Services/SSG/default.htm>

Metrowerks, maker of CodeWarrior - "Software Starts Here"
Ron Liechty - - http://www.metrowerks.com
<http://www.metrowerks.com

<http://rd.yahoo.com/M!9695.2310151.3725769.2113459/D=egroupweb/S057718
55:HM/A26184/R=0/*http://ad.doubleclick.net/jump/N879.ameritrade.yahoo/B1
054521.11;sz00x250;adc=ZHS;ord34169674?>

<http://us.adserver.yahoo.com/l?M!9695.2310151.3725769.2113459/D=egroupmai
l/S=:HM/A26184/randh2117450>

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you
want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp
<http://www.yahoogroups.com/group/motoroladsp>

More Groups: http://www.dsprelated.com/groups.php3
<http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/> .

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this
message will receive your answer. You need to do a "reply all" if you want your
answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/



Attachment (not stored)
FlashBugFixed.zip
Type: application/x-zip-compressed