This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I have been trying to use the following DSPLIB functions in my C6713B based development:
1 - DSPF_dp_fir_gen()
2 - DSPF_sp_blk_move()
3 - DSPF_dp_blk_move()
4 - DSPF_sp_vecmul()
5 - DSPF_sp_dotprod()
6 - DSPF_sp_maxval()
7 - DSPF_sp_minval()
Except 6 and 7, none of the others work correctly. I have read spru657c which is the user's guide for DSPLIB but could not see any reason why the other functions should not work.
Function 1 actually behaves very strangely. This function used to work correctly for a while but after my code size increased, it started to corrupt the first 4-5 filter outputs for no obvious reason. Having seen this strange behaviour, I am now worried that I am sitting on a time bomb with the only working functions 6 and 7 and I now consider removing these two from my development to avoid any potential risk !!
I must also add that my development does not use the DSP BIOS. I have written a primitive RTOS in pure C, which works perfectly. Could this be the source of the problem?
Has anyone else had the same problems as above? Is there someting that I am missing here?
Any feedback / references will be very useful and will be greatly appreciated.
Many thanks,
Cryptoman
Cryptoman
I don't know exactly how you use these DSPLIB functions in your application.
For most of these functions, the input variables always need to be double align and the requirement vector length to achieve the optimized task , that is some pre-definition code should be included in your application program, such as:
#pragma DATA_ALIGN(input_variables,8);
The libray link option and other details should have been clearly explained in the DSPLIB's guide.
By the way, could you provide some sample codes to indicates that if you strictly follow the instructions to correctly use the DSPLIB functions?
Did you see the list of known issues in Section B.3? There are a bunch of functions that you need to disable interrupts around the call. Also, as Jeremy mentions you must be sure that you have carefully followed the requirements outlined in the document for each API.
Hi Jeremy,
I have missed the data alignment requirement, which I have now added to my code. I will need to run some tests to verify that this is the actual problem. I have a feeling that data alignment will resolve the matter.
Thank you very much for your great feedback.
Regards...
Hi Brad,
That is a good point. I have already taken the specified interrupt precautions as per the user's guide.
Many thanks.