I'm using the "_memcpy_l1" function on BF512 processor in order to a large piece of code from data section to the instruction section.
most of the code is transfered correctly except of 9 bytes ,alwys at the same location of the code.
What are you setting your arguments to when calling _memcpy_l1? What happens when you just try to copy over 8bytes?
What addresses don't get copied from/written to correctly?
What version and update of the tools are you using?
I'm copying a full program (17408 bytes) to the start of the code section (0xffa00000).
before using the function I had to take care to where the function _memcpy_l1 will be placed When loading the program, So I Want run over it when copying diffrent code.
When finishing copy the code I placed the program counter at the start address (0xffa00000).
The problem is the When transfering from data to code section it happened with some mistakes.
look what i have found:
Reference Number: 41134
Do you know what does it mean : "will work incorrectly" ?
That TAR shouldn't really be on the public list as the problem it covers was not ever in a released Update. It was only seen on unreleased versions of VisualDSP++ Update 7. While it should not be the cause of the problem you are seeing it does indicate that there has been activity in this area.
What silicon revision is your project set to build for?
Could you tell me the value in the MMR at 0xFFC00014?
The reason I ask is there are changes in this function between revision 0.0 and 0.1 due to a change in the memory map and if you have a revision 0.0 processor that could be the problem.
Also I wondered if you'd considered using DMA to do the copy. It's not my area of expertise though so perhaps I'm missing some problem that means it's not suitable.
thank you for your support.
I have an other problem using The memcpy_l1 .
when I define a Sub section in the instruction section(l1_code) , in order to copy the data to this specific place in the code section . the function does not copy the data to this sub section (256 bytes).
when i don't touch the ldf file there is no problem to copy data .
are you familiar with this problem ?
can you clarify what changes you have made to the LDF to create this 'sub-section'? Can you also provide a code snippet/small example that shows the memcpy_l1 problem? The memcpy_l1 function should work as long as the destination pointer is within L1 instruction memory.
Thank you for your support.
I Solve (I hope) The Problem , and I managed to replace the entire code section. in order to do so , one need to do it, before configuring the Processor and all the periphery.
the second Thing is to replace all the relevant datasections of the replacing code.
Retrieving data ...