Forum: Compiler & IDEs externer zugriff auf eine variable, Bolero Board(MPC56XX)


von taifun m. (sela12)


Lesenswert?

Hallo,

ich arbeite in einem AUTOSAR Projekt mit einem Bolero Board(MPC56XX) ich 
habe bei dem interrupt ein Flag, das bei der If abrage eine eins 
schreiben soll. Ich verwende diesen flag in einer anderen Datei, mit 
einer anderen Ordner Struktur. Um dort den flag zu lesen und zu 
verändern, habe es mit extern (extern unsigned int uart_flag; )im 
Headerfile versucht aber es wollte nicht. Hat irgendwer eine Idee ?

1
ISR(Lin_LLD_IsrRx_LINFlex_0)
2
    {
3
4
  temp[uartInPos++] = (unsigned      char)LINFLEX_LLM_DATA4_Read(LINFLEX0_BASEADDR);
5
6
7
      LINFLEX_LLM_DATA4_Clear(LINFLEX0_BASEADDR);
8
     LINFLEX_LLM_UART_RMB_Clear(LINFLEX0_BASEADDR);
9
     LINFLEX_LLM_UART_DRF_Clear(LINFLEX0_BASEADDR);
10
     LINFLEX_LLM_UART_DTF_Clear(LINFLEX0_BASEADDR);
11
12
13
     if (uartInPos>=5 && temp[uartInPos-1] == '\r')
14
     {
15
     uart_flag=1;
16
     }

von Karl H. (kbuchegg)


Lesenswert?

volatile ist natürlich immer ein Thema, wenn Interrupts im Spiel sind

### >>>>  FAQ: Was hat es mit volatile auf sich  <<<< ###

> extern unsigned int uart_flag;

und die Originaldefintion lautet ebenfalls auf 'unsigned int'?

> aber es wollte nicht

Und das bedeutet jetzt was ganz genau?

von taifun m. (sela12)


Lesenswert?

sorry, es wollte nicht fehlerfrei Kompilieren.

von Karl H. (kbuchegg)


Lesenswert?

taifun mayfun schrieb:
> sorry, es wollte nicht fehlerfrei Kompilieren.

Aha.
Und?
Fehlermeldung gibts keine?

von taifun m. (sela12)


Lesenswert?

1
"d:/CASDEV/CCM_WA/MPC560X/e_acprj_r3_0_i_ic_mpc560x/b_ardb_com_lin_driver_mpc560x/c_ar_com_lin_driver_mpc560x/Uart_Irq.c", line 13: fatal error: #5: 
2
        could not open source file d:/CASDEV/CCM_WA/MPC560X/e_acprj_r3_0_i_ic_mpc560x/e_acprj_r3_0_i_ic_mpc560x/BSW_auxiliary/test_application/swp_stub.h"
3
  #include d:/CASDEV/CCM_WA/MPC560X/e_acprj_r3_0_i_ic_mpc560x/e_acprj_r3_0_i_ic_mpc560x/BSW_auxiliary/test_application/swp_stub.h"

von Karl H. (kbuchegg)


Lesenswert?

na ja.
Steht doch da
1
could not open source file

also: warum konnte die Datei nicht gefunden werden?

PS: Bei den Pfadnamen würde ich mich auch 15 mal vertippen.
Ist dir nichts besseres an Pfaden eingefallen, als diese Monster?
Manche Probleme sind ganz einfach hausgemacht, indem man sich selber 
Prügel zwischen die Beine wirft.

von ble, Bol (Gast)


Lesenswert?

Es wäre nat auch ganz interessant zu wissen, wie das
Compiler-Kommando aussieht..., bzw. was Du für eine
IDE benutzt, wie Dein #include statement aussieh usw, usf.

In deren Manuals ist sicher beschrieben, wie man
Include-Pfade definiert.

Es ist nicht ratsam ein Monster wie

#include 
"d:/CASDEV/CCM_WA/MPC560X/e_acprj_r3_0_i_ic_mpc560x/e_acprj_r3_0_i_ic_mp 
c560x/BSW_auxiliary/test_application/swp_stub.h"

in den Sourcode zu schreiben. Da sollte nur

#include "swp_stub.h"

also nur der Name des Headers stehen und sonst nix.

Include-Pfade dann im Makefile oder in Deiner IDE definieren.

von Bronco (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ist dir nichts besseres an Pfaden eingefallen, als diese Monster?

Ich wette, daß das vorgegeben ist!
Das ist doch Automotive-Zeug, das muß so kompliziert sein ;)
Allerdings wundert es mich doch, warum er nicht einfach einen 
Arbeitskollegen fragt.

von Karl H. (kbuchegg)


Lesenswert?

Bronco schrieb:
> Karl Heinz Buchegger schrieb:
>> Ist dir nichts besseres an Pfaden eingefallen, als diese Monster?
>
> Ich wette, daß das vorgegeben ist!

Kann gut sein :-)

Aber deswegen muss ich doch nicht meine Test-Programme da mit in den 
Pfad mit reinnehmen :-)

Was mich stutzig macht
Aus einer

   Uart_Irq.c

heraus, die auf einem Treiberverzeichnis liegt, wird ein Include auf

   swp_stub.h

gemacht, welches auf einem  ..../test_application/ gesucht wird.
????

Ich schätze mal, da fehlen ein paar globale Include-Verzeichnisse in der 
IDE bzw. Makefile, so wie "ble, Bol" das ja auch schon angedacht hat.


> Allerdings wundert es mich doch, warum er nicht einfach einen
> Arbeitskollegen fragt.

Ah geh. Da würde man sich doch im neuen Job eine Blösse geben, dass man 
dann doch nicht so gut ist, wie man im Einstellungsgespräch behauptet 
hat.
@taifun
Vergiss es. Deine Kollegen merken auch so sehr schnell, wie gut du bist. 
Spar Zeit und frag sie um Hilfe, dass jemand mit dir die 
IDE-Einstellungen durchgeht und die Verzeichnissstruktur mal 
dokumentiert und dir erklärt, wie man Pfadnamen in einem Include angibt, 
bzw. welche Einstellungen bei einem neuen Projekt wo in der IDE gemacht 
werden müssen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.