This script is used to workbench a program, without any intervention. Once it is well configured, it will automatically compile the program to evaluate, download it into the target, retrieves the data and computes them to extract the error information. It will store into an output file the cycle count this process took, the duration in seconds, the error average and the maximal error of the results.
To make this script works you will need a serial cable that you have to connect to the port COM1 of you PC. The other end of this cable has to be connected on the USART of the target.
To configure this script, edit the file "benchmark" and modify the values of the variables defines in the section "BENCH CONFIG".
You will need Data Get and group_dsplib_dataextract plus various standard UNIX tools.
This is the definition of the constants used in the header file generated by this script in order to configure the C program to workbench.
This is the definition of the parameters that permit computations according to the actual configuration of the C program.
Important path used in the script.
Specify the program's path from the $CUR_PATH directory.
In order to make the script compatible with the C program, you should use this C program pattern to design your benchmark. This pattern works perfectly with the EVK1100 board.
In this program you will have access to the constants you defined in the script file as parameters. Those constants are accessible by including the file "bench_config.h" Finally the program has to be compiled defining DSP_BENCH=1 and DSP_DEBUG=1.
This is the file that contains the reference signal which should be the result of the output of the program to workbench. It serves to compare this reference signal with the actual output and permits to retrieve the error average and the maximal error of this output signal.
In this file you will just have to generate the signal you should receive with you C program. To do that you will have access to the constants you defined in the script file as parameters. The output signal must be store in the "y" variable and can be a real or a imaginary vector.
Here is an example for the FFT:
The resulting file of this benchmark is a text file containing all the workbench results. Each result is printed on 4 lines: the first line corresponds to the cycle count of the process, the next one is the duration of this process in second, the third is the error average of the result and the last, its maximal error. Then you can easily manage such a file using a spreadsheet.
Close the HyperTerminal and rerun the script.
Check the error on the file "dsp_bench_temp" else try to launch this script manually with the required files.
This might be due to an error on your C files. Compile it separately to check the error or look at the file ./dsp_bench_log.txt.
All the files related to this module are located under /avr32/services/dsp/dsplib/utils/scripts/benchmark