Hi,

As we know, in most of our MPC57xx parts, such as MPC5775K as below, there are VFPU and SPE2-SIMD, which are very useful when doing DSP and complex math calculation.but how can we enable and use it in a S32DS project?

There is no options for this when create the project, and there are some related options in project properties-->C/C++ Bulid-->Stettings-->Target Processor, I checked Use hardware floating point, and configured Signal Processing: generate SPE v2 SIMD instructions and use ewl_c9x library:

However, after configurations as above, I find the disassemle code has nothing differerent, no performance improve, no SPE instructions generated for my codes, it seems still call the ewl_c9x library to complete my math operations:

void calc_magnitude_doppler( fft_value_t* inAddr, magnitude_t* outAddr, bool_t bRCSComp, eDistRange distRange){

fft_value_t real, img;

uint64_t quad;

double sqroot;

uint16_t x, y;

for(y=0; y<FFT_NUM_SAMPLES; y++){

// Do it for one chirp

for(x=0;x<FFT_NUM_CHIRPS;x++){

// Pointer to values

real = *(inAddr + (x * FFT_NUM_SAMPLES * 2));

img = *(inAddr + (x * FFT_NUM_SAMPLES * 2) + 1);

// Calculate magnitude

quad = (uint64_t)((int64_t)real*real + (int64_t)img*img);

sqroot = sqrt((double)quad);

// sqroot = __ev_fssqrt(quad);

// Calculate RCS compensation

/*if( par->bRCSComp == bTrue ){

if( y < (FFT_NUM_SAMPLES/2) ){

sqroot = sqroot * rcs_comp(y, par->distRange);

}

else{

sqroot = sqroot * rcs_comp((y-(y-128)*2-1), par->distRange);

}

}*/

// Save Value

*(outAddr) = (magnitude_t)sqroot;

// Adjust pointer

outAddr++;

}

// Adjust Pointer

inAddr+=2;

}

}

So, how can we enable and use the powerful VFPU and SPE2-SIMD in S32DS project? Is there any addtional header files should be included or any SPE/FPU initialization needed besides the above project settings/configurations?

Thanks~!

Best regard,

Enwei Hu.

It's OK now, it seems can only work with newlib.

Besides, it's necessary to add the below codes in startup.s to enable SPE before use it:

I also attached my test project in S32DS version for your reference(the spe intrinsics instructions is tested in z7_1 CPU core project):

;#*************************** Enable SPE Bit in MSR ****************************

mfmsr r6

se_bseti r6,6

mtmsr r6

Thanks very much for Stan's great support on this case~!

Enwei Hu.