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: | |||
| |||
| |||
| |||
| |||
|
Codewarrior does not erase boot flash 56F807
Started by ●October 8, 2002
Reply by ●October 8, 20022002-10-08
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/ |
Reply by ●October 8, 20022002-10-08
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: |
Reply by ●October 8, 20022002-10-08
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/> . |
Reply by ●October 8, 20022002-10-08
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
|
Reply by ●October 9, 20022002-10-09
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/> . |
|
Reply by ●October 9, 20022002-10-09
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/> . |
Reply by ●October 9, 20022002-10-09
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 |
Reply by ●October 10, 20022002-10-10
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/> . | |||
|
Reply by ●October 29, 20022002-10-29
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/ | |||
|