Jacob, We do use the P RAM in all our products here to store data that would normally be placed in X RAM, or to have a copy of data that we have placed in X Flash. We do this for 2 reasons: 1) In some products, it saves us from having to add an external RAM chip to get the amount of RAM we need. 2) We copy data from X Flash to P RAM, and use it from the P RAM, so that we are free to erase and program X Flash while our programs are in normal operation. This is more fully described in my message "RE: [motoroladsp] Program xFlash & interrupt problem" that I posted to this discussion group on September 19, 2002, at about 7:05am. Another possible use is what you mentioned, that code can be run out of P RAM while the P Flash is being erased and programmed. Art PS: I am replying to your message immediately after approving it to the discussion group. So, you may receive it _before_ you see your original message on the discussion group! -----Original Message----- From: Jacob Christ [mailto:] Sent: Thursday, November 07, 2002 9:38 AM To: Subject: Re: PRAM segment. What is it ? Art, I'm relitivly new to DSP as well, and well, I can see that there is P and X RAM as well as P and X FLASH. I have used microchip chips which have P and X FLASH and X RAM. So for me, I can see how to use them and transfer data between them all, but what is the intent (if any). Why would you need ram space for a program, my primary assumption is it can be used when doing say a field upgrade of P flash. Jacob --- In motoroladsp@y..., "Art Johnson" <art@p...> wrote: > If you are asking about "P RAM", it is the RAM that is in the Program (P) memory space. The following is from the Linker Command File "linker.cmd" in the directory: > ...\src\dsp56805evm\nos\applications\timers\configflash > where "..." is the base directory where you installed the SDK (C:\Development\DSP568xx\Moto_SDK in our systems here). > > The P RAM is located as follows: > > In the "MEMORY" section: > > # Linker.cmd file for DSP56803EVM/DSP56805EVM > # using internal data memory only ( EX = 0, Boot Mode 0A ) > > #********************************************************************* ********** > MEMORY { > .pInterruptVector (RX) : ORIGIN = 0x0000, LENGTH = 0x0086 > .pFlash (RX) : ORIGIN = 0x0086, LENGTH = 0x7D7A > .pIntRAM (RWX) : ORIGIN = 0x7E00, LENGTH = 0x0200 > .pIntRAM_Mirror (RWX) : ORIGIN = 0x7E00, LENGTH = 0x0200 > .pBootFlash (RX) : ORIGIN = 0x8000, LENGTH = 0x0800 > .pReserved (RX) : ORIGIN = 0x8800, LENGTH = 0x7800 > In the "SECTIONS" section: #********************************************************************* ********** > .InitializedDataForProgramRAM : AT (ADDR(.pFlash) + 1 + SIZEOF (.pFlash) / 2) > { > # Define variables for C initialization code of Program RAM data > > F_Pdata_start_addr_in_ROM = ADDR(.pFlash) + 1 + SIZEOF (.pFlash) / 2; > F_Pdata_start_addr_in_RAM = .; > _P_DATA_ADDR = .; > > # SDK initialized data to be placed into Program RAM > > pramdata.c (.data) > F_Pdata_ROMtoRAM_length = . - _P_DATA_ADDR; > > } > .pIntRAM_Mirror > #********************************************************************* ********** > > > As is shown by the above example, the "P RAM" is located at P:$7E00 to P:$7FFF in the Program (P) memory space (for the 805 chip). The initialized data (.data) from the SDK file "pramdata.c" is placed in this memory area. You can see the contents of this file by looking at: > ...\src\dsp56805evm\nos\config\pramdata.c > where "..." is the base directory where you installed the SDK (C:\Development\DSP568xx\Moto_SDK in our systems here). > > You should also know that any data in P RAM cannot be accessed directly from your C code, you must use the SDK interface functions like memReadP16(), memWriteP16(), etc. The function prototypes for these are located in the file: > ...\src\dsp56805evm\nos\include\mempx.h > where "..." is the base directory where you installed the SDK (C:\Development\DSP568xx\Moto_SDK in our systems here). > > I hope this answers your question. > > 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: art@p... > http://www.pmc-controls.com > > -----Original Message----- > From: giuliano.to@q... [mailto:giuliano.to@q...] > Sent: Thursday, November 07, 2002 6:45 AM > To: motoroladsp@y... > Subject: PRAM segment. What is it ? > Is about from two years that I'm using 56805 microcontroller and I don't > know yet what PRAM segment is. Can anyone explan me ? > Thanks |