Trouble running DSP application on BeagleBoard

I am trying to run modified version of sample readwrite application on
DSP. I followed this link,,
to create memory to transfer data to and from GPP/DSP. I copy and
pasted the same on the respective files. Also changed the address
while calling the PROC_write API as follows:

status = PROC_write(processorID, WRITEMEM,bufferSize,bufIn);
WRITEMEM is defined as '0x8FC00000' as mentioned in the link above.

I tried to run the sample program but got the error as follows. My
code does not assigns the input address of
0x87f05000 to anything. It is just a dummy value given at input to
comply with input agruements syntax.

Can somebody, please point out my mistake. I am struggling on this for
more than a day. Your help will be highly appreciated.

root@beagleboard:/usr/share/ti-dsplink/cmd_compiled/RELEASE# ./
readwritegpp read

write.out 0x87f05000 1000 1
============= Sample Application : READWRITE ==========
Entered RDWR_Create ()
Leaving RDWR_Create ()
Entered RDWR_Execute ()
BufferSize must be greater than file size.
file is read into bufferheader i[ 137.174133] Assertion failed
State == ProcState_Started) || (procState->dspState ==
ProcState_Stopped) || (pr
ocState->dspState == ProcState_Idle)). File : /home/jars/
/gpp/src/../../gpp/src/ldrv/ldrv_proc.c Line : 575
s copiedEnd of pointer assign and start of proc_write
PROC_write Failed. Status: [0x80008013]
PROC_write Failed. Status: [0x80008013]
Verifying data and printing
Leaving RDWR_Execute ()
Execute phase failed. Status: [0x80008013]
Entered RDWR_Delete ()
PROC_stop () failed (output). Status: [0x8000801b]
Leaving RDWR_Delete ()

Haven't tried this, but based on some quick code browsing...

0x80008013 is DSP_ERANGE - an 'out of range' error.

The address you're providing on the command line (0x87f05000) _is_ an
important one, as that's what the readwritegpp executable uses as the
address to write into.

I think you're getting an 'out of range' error b/c the address you're
providing (0x87f05000) isn't in the region you've added to Link's
memory map (which you've done per the wiki article. Maybe try
providing an address on the cmd line that's within the shared memory
region you've configured into Link.


Thanks for the reply. But the address that I am giving while running
the program ie,0x87f05000 is just a dummy address which is never used
anywhere. The actual address i am using for PROC_read and PROC_write
is the one given in the link above.