real-time codec implementation on BF533

Started by maccordel June 24, 2010
Hi Guys,

I am new in DSP hardware. Please enlighten me. I am working on real-time implementation of a codec on BF533 devt kit. Here are my questions:

1. BF533 has default memory segments. There are 2 internal memory (L1) data segments, each has a size of 32k (cache off). If I need larger data segment, I am not allowed to increase the size of the data right since other segments are reserved for other use?

2. Please give comments regarding my plans how to implement my codec in real-time: First, all codes will be placed in L1 (luckily all codes fit). Since all codes fit in L1, I will turn off my instruction cache. Second, all data, including LUTs, will be placed in external memory, L3. The data segments (Data A and Data B) in L1 will be used for data cache, stack and heap. To decrease the cycle accessing the data from L3, I will use memory overlay (I am still studying the memory overlay). Will this work if I am aiming for real-time implementation?

3. If I call a function from main(); all local variables will be saved first in a stack, preferably in L1. This is true, right? Now, what if I have local variables (usually floating point arrays) with total size larger than 32k, this will not fit in my L1 stack, should I use my external (SDRAM) memory as extension of my stack? I am hesitant to do this since it will take me several cycles accessing the stack. Do you have any idea how to handle this?

4. BF533 is a fixed point dsp right? If I have floating point in my C program, I don't have to worry about this right since the compiler will handle this? I tried floating point multiplication just to check, and I got the right answer. I just want to confirm.

Thank you very much for sharing your ideas/knowledge. I will really really appreciate any input/ideas/knowledge that you will give. God bless!