Hi Wim,
I think this problem is a matter of opinion, as to whether or not it is a
CodeWarrior bug.
I just looked in the CodeWarrior on-line manual, and in the Section titled
"Flash Programming the Reset and Interrupt Vectors", it says the
following:
"The first four P: (program) memory locations
in Flash ROM are actually "mirrored" from the
first four memory locations of Boot Flash.
Therefore, when Flash programming the reset
vectors, write the reset vectors to the beginning
of Boot Flash. The interrupt vectors are located
in Program Flash. Write the interrupt vectors
normally, starting at P:0x0004. The Flash targets
in the stationery demonstrate how the source,
linker command file, and flash configuration
file look."
So, in my opinion, the program "flash_over_jtag.exe" (from the SDK) is
the one
that has a work-around, that permits you to program the Reset and One
(COP/WDT)
vectors at the "wrong" P Memory addresses.
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: Wednesday, October 30, 2002 6:24 AM
To: Art Johnson; '
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807
Hi Art,
Thank you for your mail and explanation.
However what you describe is a (usefull) work-around, but the bug is
present.
The program "flash_over_jtag.exe" (from the SDK) erases and programs
the
addresses P:0x0000 to P:0x0003. So "flash_over_jtag.exe" works
perfect.
But Codewarrior skips the erase of the addresses P:0x0000 to P:0x0003 and
only programs them. So my conclusion is, that Codewarrior has a bug for
erase of these adresses.
Kind regards,
Wim de Haan
-----Original Message-----
From: Art Johnson [mailto:]
Sent: dinsdag 29 oktober 2002 18:34
To: Wim de Haan; MW Ron;
Subject: RE: [motoroladsp] Codewarrior does not erase boot flash 56F807
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/
|