Forums

Erasing PFIU2 on the DSP56F807

Started by icktheslick February 6, 2003
I'm having some difficulty erasing PFIU2 on the DSP56F807. The
manual alludes to the fact that PFLASH is actually one flash unit,
60k in total size, and that the number of "pages" reflects this. I
found that if I base everything on "PFLASH2" whose base address is
0x8000, and assume "page 0" begins at 0x8000, and then try and erase
page 0, I end up trashing the stack. My next step is to try and
assume that page 0 is still in reference to PFLASH, not "PFLASH2."
Does anyone know of any written documentation or have an example
program on how this is supposed to be done?



Actually, the DSP56F807 Program Memory map is as follows:

PFIU: 0x0000-0x7FFF (length = 32K)
PFIU2: 0x8000-0xEFFF (length = 28K)
P RAM: 0xF000-0xF7FF (length = 2K)
BFIU: 0xF800-0xFFFF (length = 2K)

So, PFIU is the bottom 32K and PFIU2 is the next 28K. The top 4K is Program RAM
and Boot Flash. All of the Flash Interface Units (FIUs) operate exactly the
same, so they have the same restrictions regarding erasing and programming the
flash in normal operation. The X (Data) memory addresses of the FIUs in the
DSP56F807 chip are as follows:

PFIU 0x1340-0x135F (Program Flash Interface Unit)
DFIU 0x1360-0x137F (Data Flash Interface Unit)
BFIU 0x1380-0x139F (Boot Flash Interface Unit)
PFIU2 0x1420-0x143F (Program Flash Interface Unit 2)

I hope this information is helpful to you, and please let me know if you have
any further questions on this subject.

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: icktheslick <> [mailto:]
Sent: Thursday, February 06, 2003 8:07 AM
To:
Subject: [motoroladsp] Erasing PFIU2 on the DSP56F807 I'm having some difficulty erasing PFIU2 on the DSP56F807. The
manual alludes to the fact that PFLASH is actually one flash unit,
60k in total size, and that the number of "pages" reflects this. I
found that if I base everything on "PFLASH2" whose base address is
0x8000, and assume "page 0" begins at 0x8000, and then try and erase
page 0, I end up trashing the stack. My next step is to try and
assume that page 0 is still in reference to PFLASH, not "PFLASH2."
Does anyone know of any written documentation or have an example
program on how this is supposed to be done? _____________________________________
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/


RE: [motoroladsp] Erasing PFIU2 on the DSP56F807

To expand on Art's comment, while it may be true that the flash is a single area of silicon, it takes 2 flash interface units to access it.  A Flash interface unit can only access 32K of address space!  The first one accesses the lower 32K while the Upper flash memory is access via PFIU2.  Each PFIU will have a page 0.

Don't forget that the first 4 addresses (0x0000 thru 0x0003) in program menory are actually located in the Boot Flash memory!!!

Also the code that is executing cannot be from the same flash unit that you are trying to program, as it's whole flash address space is disabled for read while you are programming any part of it.

Jerry.

-----Original Message-----
From: icktheslick <p...@cidra.com> [mailto:p...@cidra.com]
Sent: Thursday, February 06, 2003 10:07 AM
To: m...@yahoogroups.com
Subject: [motoroladsp] Erasing PFIU2 on the DSP56F807


I'm having some difficulty erasing PFIU2 on the DSP56F807.  The
manual alludes to the fact that PFLASH is actually one flash unit,
60k in total size, and that the number of "pages" reflects this.  I
found that if I base everything on "PFLASH2" whose base address is
0x8000, and assume "page 0" begins at 0x8000, and then try and erase
page 0, I end up trashing the stack.  My next step is to try and
assume that page 0 is still in reference to PFLASH, not "PFLASH2." 
Does anyone know of any written documentation or have an example
program on how this is supposed to be done?


_____________________________________
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
 

" TARGET="_blank">http://docs.yahoo.com/info/terms/



________________________________________________________________________
This email has been scanned for all viruses by the MessageLabs SkyScan
service. For more information visit http://www.messagelabs.com
________________________________________________________________________


________________________________________________________________________
This email has been scanned for all viruses by the MessageLabs SkyScan
service. For more information visit http://www.messagelabs.com
________________________________________________________________________