Forum: Compiler & IDEs AVR 443 Application: __regvar __no_init unsigned char *pDrvPattern @14;


von Jorge M. (jorge)


Angehängte Dateien:

Lesenswert?

Hallo,

anhand dem von Atmel zur Verfügung gestellten Programm zur 
BLDC-Steuerung versuche ich gerade die AVR Programmierung zu verstehen. 
An einer Stelle komme ich allerdings nicht weiter:
1
//! Stores the current motor driver pattern.
2
__regvar __no_init unsigned char *pDrvPattern @14;
3
//__regvar __no_init unsigned char *pComPattern @12;
4
5
6
7
//! Used for optimized temporary varables.
8
__regvar __no_init union _fastTemp{
9
  unsigned int word;
10
  struct{
11
    unsigned char LByte;
12
    unsigned char HByte;  //Hbyte = Zero
13
  };
14
} fastTemp @12;
15
16
__regvar __no_init unsigned char hallMask @11; //!< Workaround for internal compiler error
17
__regvar __no_init unsigned char count @10; //!< Optimized variable decremented every pin change int.

Hierzu habe ich folgende Fragen (diese sind möglicherweise sehr banal, 
ich habe aber schon viele C-Dokus hoch und runter gelesen und nichts 
gefunden)

Was macht
1
__regvar __no_init
 vor der Deklaration des Pointers?
Was ist
1
@14
?

Vielen Dank!

Gruß ... Jorge

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Dürfte alles IAR-spezifisch sein.  Ich vermute mal, in GCC-Syntax
würde man schreiben:
1
register unsigned char *pDrvPattern asm("r14");

Vorsicht aber mit der Zuteilung der Register selbst, ich würde bei
AVR-GCC mit r2 aufsteigend beginnen.

von Jorge M. (jorge)


Lesenswert?

Aha,

vielen Dank.

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.