Hallo,
ich versuche unter IAR für den MSP430 einen vector als weak zu
deklarieren. Leider wird die Funktion nicht umgebogen:
1 | test1.c
|
2 | -------
|
3 |
|
4 | #pragma vector = PORT1_VECTOR
|
5 | __interrupt void port1_int();
|
6 | #pragma weak port1_int
|
7 |
|
8 | test2.c
|
9 | -------
|
10 |
|
11 | __interrupt void port1_int(void)
|
12 | {
|
13 | // interrupt handler ...
|
14 | }
|
Ein anderes Problem mit weak. Ich will jedem Vector einen default Vector
verpassen der dann wieder weak sein soll:
1 | test1.c
|
2 | -------
|
3 |
|
4 | __interrupt void default_int(void)
|
5 | {
|
6 | __asm("nop");
|
7 | }
|
8 |
|
9 | #pragma vector = PORT1_VECTOR
|
10 | __interrupt void port1_int();
|
11 | #pragma weak port1_int = default_int
|
12 |
|
13 | test2.c
|
14 | -------
|
15 |
|
16 | __interrupt void port1_int(void)
|
17 | {
|
18 | // interrupt handler ...
|
19 | }
|
Fehlermedlung:
Error[e27]: Entry "port1_int" in module test1.c redefined in module
test2.c
Kann mir jemand auf die Sprünge helfen? Sollte ich den Compiler
wechseln?
Danke & Grüße.