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!
Regards,
Mac