I am using EZ-Kit lite and Visual DSP 3.1. In most examples provided, as default, code is placed into L2 memory. I would like to have my code executed from L1 Instruction memory (0xFFA00000). In my understanding there are two ways how to do this : 1 Program FLASH with the code that includes L1 designated section, and use second-stage-loader that will load this section into L1 space upon reset/boot, than jump there. or 2 Using examples provided, use default LDF file that will place code into L2 memory and execute from there (after Project is build, Visual DSP will immediately download it onto platform), and this code (executed from L2 space) needs to DMA itself (or a portion of it) into L1 instruction memory, than jump to beggining of L1. Thanks for oppinions/comments. Dubi
Executing from Blackfin535 L1 instruction memory
Started by ●July 28, 2003
Reply by ●July 28, 20032003-07-28
I believe you can use the debugger to download code into L1 memory, and execute from it if the L1 memory is configured as SRAM memory. If it is configured a CACHE memory, the code located in L2 will be executing from L1 cache. PD "DB" <dbiruski@yahoo.com> wrote in message news:bg3nk4$3vv$1@news01.intel.com...> I am using EZ-Kit lite and Visual DSP 3.1. > In most examples provided, as default, code is placed into L2 memory. I > would like to have my code executed from L1 Instruction memory(0xFFA00000).> In my understanding there are two ways how to do this : > 1 > Program FLASH with the code that includes L1 designated section, and use > second-stage-loader that will load this section into L1 space upon > reset/boot, than jump there. > > or > 2 > Using examples provided, use default LDF file that will place code into L2 > memory and execute from there (after Project is build, Visual DSP will > immediately download it onto platform), and this code (executed from L2 > space) needs to DMA itself (or a portion of it) into L1 instructionmemory,> than jump to beggining of L1. > > Thanks for oppinions/comments. > Dubi > >
Reply by ●July 29, 20032003-07-29
In ASM file if I replace directive : .SECTION l2_bank0; with .SECTION program; this should place the code (following directive) into L1 instruction memory space, since LDF file is : MEMORY { CODE { TYPE(RAM) START(0xFFA00000) END(0xFFA03FFF) WIDTH(8) } .... PROCESSOR p0 { SECTIONS { code { INPUT_SECTION_ALIGN(2) INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program) ) }>CODE .... but when I build/load program, the DISASSEMBLY WINDOW starts stepping from 0xF0000000 (L2 memory), although there is same code in L1 memory. Why ? Why not stepping from 0xFFA00000 since there should be nothing in L2 ? Am I doing something wrong ? thanks, Dubi
Reply by ●July 30, 20032003-07-30
Because the reset vector of the processor is F0000000. I'm not 100% sure of the exact syntax, but simply put a jump from L2 to L1 something like ljump 0xFFA00000. You'll have to look up the proper syntax, but that should do it. You will need a few bytes of L2 code to do this. PD "DB" <dbiruski@yahoo.com> wrote in message news:bg732n$jss$1@news01.intel.com...> In ASM file if I replace directive : > .SECTION l2_bank0; > with > .SECTION program; > > this should place the code (following directive) into L1 instructionmemory> space, since LDF file is : > MEMORY > { > CODE { TYPE(RAM) START(0xFFA00000) END(0xFFA03FFF) WIDTH(8) } > .... > PROCESSOR p0 > { > SECTIONS > { > code > { > INPUT_SECTION_ALIGN(2) > INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program) ) > }>CODE > .... > > but when I build/load program, the DISASSEMBLY WINDOW starts stepping from > 0xF0000000 (L2 memory), although there is same code in L1 memory. Why ?Why> not stepping from 0xFFA00000 since there should be nothing in L2 ? Am I > doing something wrong ? > > thanks, > Dubi > >