Hallo zusammen, ich wollte heute mein Projekt einmal mit globaler Optimierung compilieren um zu sehen ob ich noch etwas Speicherplatz gewinnen könnte. Jedoch wirft der Compiler dann folgende Fehlermeldung und ich versteh nicht wieso... Ohne die Compiler Einstellung "global Optimizations" wird nicht gemeckert und keine Warnung ausgegeben. Kann mir da ev. jemand weiterhelfen? Ich bin für jeden Tipp dankbar. MFG Fabio Fehlermeldung:
1 | icc430 -c -IC:\icc\include\ -e -D__ICC_VERSION="V7.06" -DF449 -l -A -A -Wf-O8 -g -Wf-intenum -Wf-hwmult -Wa-g X:\...\ZM_Soft_NX10_V011\src\rs232.c |
2 | !W X:\...\ZM_Soft_NX10_V011\src\rs232.c(356):[warning] (MIO)Constant Propagation : overflow in converting 'int' to 'unsigned int' |
3 | Internal error -- register not allocated |
4 | ASGNU2(VREGP(1), CNSTU2(2))!E rs232.s(1050): illegal operand |
5 | !E rs232.s(1071): symbol 'L103': address changed at phase 3: old 042E new 042A at line 1071 |
6 | !E rs232.s(1090): symbol 'L104': address changed at phase 3: old 044A new 0446 at line 1090 |
7 | !E rs232.s(1093): symbol 'L106': address changed at phase 3: old 044C new 0448 at line 1093 |
8 | !E rs232.s(1107): symbol 'L101': address changed at phase 3: old 0464 new 0460 at line 1107 |
9 | C:\iccv7430\bin\imakew.exe: Error code 1 |
10 | C:\iccv7430\bin\imakew.exe: 'rs232.o' removed. |
rs232.c:
1 | #include <msp430x44x.h> |
2 | #include <stdio.h> |
3 | #include "util.h" |
4 | #include "rs232.h" |
5 | |
6 | void rs232_printf(int08 num_args, ...) |
7 | {
|
8 | va_list ap; |
9 | int08 index, t, sum; |
10 | |
11 | va_start(ap, num_args); |
12 | // Preamble
|
13 | printf("%c%c", 0xCC, num_args); |
14 | // CheckSum
|
15 | sum = 0xCC + num_args; |
16 | for(index = 0; index < num_args; index++){ |
17 | t = va_arg(ap, int16); |
18 | sum += t; |
19 | printf("%c", t); |
20 | }
|
21 | printf("%c", sum); |
22 | va_end(ap); |
23 | } // <-- Zeile 356 |
rs232.h
1 | void rs232_printf(int08 num_args, ...); |