Tool/software: TI C/C++ Compiler
Hi,
the C2000 Compiler/Assembler refuses to process the code below, I get the message (Console output) also shown below.
The .pp file generated according to "How to Submit a Compiler Test Case" is here: f64tf.zip
This is not the only case where this error occurs.
Thanks & regards,
Frank
"C:\\ti\\ccsv7\\utils\\bin\\gmake" -k f64tf.obj
'Building file: ../f64tf.c'
'Invoking: C2000 Compiler'
"C:/ti/ccsv7/tools/compiler/ti-cgt-c2000_16.9.1.LTS/bin/cl2000" -v28 -ml -mt --vcu_support=vcu2 --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 -O2 --include_path="C:/ti/ccsv7/tools/compiler/ti-cgt-c2000_16.9.1.LTS/include" --include_path="J:/workspace/firmware/duc/rtos/include" --include_path="J:/workspace/firmware/duc/duc_firmware/" --include_path="J:/workspace/firmware/duc/device_support/f2837xs/common/include" --include_path="J:/workspace/firmware/duc/device_support/f2837xs/headers/include" --include_path="J:/workspace/firmware/duc/driverlib/f2837xs/driverlib/inc" -g --preproc_with_comment --preproc_with_compile --define=CPU1 --display_error_number --diag_warning=225 --diag_suppress=10063 -k "../f64tf.c"
1 Assembly Error, No Assembly Warnings
>> Compilation failure
subdir_rules.mk:191: recipe for target 'f64tf.obj' failed
"../f64tf.c", line 34 (col. 14): advice #2614-D: (Performance) Use --fp_mode=relaxed to enable TMU hardware support for FP division.
"f64tf.asm", ERROR! at line 212: [E0200] Block size 7 out of range 8..127
RPTB $C$L5,AR6 ; [CPU_] |40|
typedef long double float64_t;
#define F64TF_MAXORDER 4 /* max. order of transfer function */
/* transfer function data structure */
typedef struct {
int order; /* order of transfer function */
int index; /* index into input/output values */
float64_t dinv; /* 1 / b[0] for faster anti windup */
float64_t ymin; /* lower output saturation */
float64_t ymax; /* upper output saturation */
float64_t b[F64TF_MAXORDER+1]; /* numerator coefficients */
float64_t a[F64TF_MAXORDER+1]; /* denominator coefficients */
float64_t u[F64TF_MAXORDER]; /* input values */
float64_t y[F64TF_MAXORDER]; /* output values */
} f64tf_data;
/* initialize f64tf_data with z transfer function G(z) = B(z) / A(z) */
void f64tf_init_tf(f64tf_data *p, int order, float64_t b[], float64_t a[])
{
int i;
float64_t an;
p->order = order;
an = 1.0 / a[0];
for ( i = 0; i <= order; ++i ) {
p->a[i] = a[i] * an;
p->b[i] = b[i] * an;
}
#if COMPILER_FAILS || 1
for ( ; i <= F64TF_MAXORDER; ++i ) {
p->a[i] = p->b[i] = 0.0;
}
#endif
p->dinv = 1.0 / b[0];
}