AnsweredAssumed Answered

Blackfin ldr maxim block size is 64k?

Question asked by AviMagos on Oct 25, 2011
Latest reply on Oct 27, 2011 by CraigG

Hi,

 

I working with Blackfin518F.

I'm worrking with update 9 of version 5.0 of VisaulDSP.

 

I'm trying to useexternally  initialized variables larger than 64K defined in c code as follows:

 

complex_fract16 Beam_Forming_Mat[BF_MATRIX_DRAM_SIZE] = {
#include BF_DATA_FILE_NAME
}; ////16 bit complex data - total 4 byte no need to divide

 

The total size of the variable is ~100K.

 

When useing the debugger to load the .dxe file the variable is properly loaded.

 

However, when burning the .ldr file and running from internal  flash I can see that the variable is only intialized up to 64K, after which the memory contains junk.

 

In order to burn the ldr I'm using the default flash driver supplied with the VisualDSP version.

 

I wonder if this problem is caused because of the flash driver or the boot kernel?

Is it becuase the internal  flash memory is divided into pages or sectors that are 64K and cannot be intialized by larger blocks?

 

The only workaround I can think of is splitting the file and the variable into several peices smaller than 64K, and then splitting the input section  of the variable in the ldf - thus achieving several blocks in the ldr each smaller than 64K . If this indeed is the only solution, could you please

instruct me how to ensure that the split variables will be continuous in DRAM memory space (is there an ldf directive or something?)

 

Thanks,

 

Amit & Avi

Outcomes