Cecko - zacatecnicka

Šerých Jakub Serych@panska.cz
Pátek Leden 4 22:14:20 CET 2008


DD,
v Ccku (konkretne Microchip C30, ale to je asi jedno) jsem toho jeste moc
nenapsal, takze se omlouvam za zacatecnicky dotaz. Da se vubec, a pokud ano,
tak jak, realizovat nekolikery pohled na stejnou pozici v pameti? 
Napriklad mam promennou:
unsigned int Sestnactibit; 

a chtel bych na totez taky koukat jako na:
typedef struct HLverze {
   unsigned char H;
   unsigned char L;
} HLverze;

HLverze SestnactHL;

V Pascalu se blahe pameti takove triky daly delat pomoci klicoveho slovicka
"absolute" ale v Cecku nemuzu prijit na to, jak to udelat.

Hlavickove soubory od Microchipu jsou presne tohohle plne, jenze tam
pouzivaji __attribute__ __sfr__, ktery to usadi na predem danou pevnou adresu
SFR registu (ta je myslim ve scriptu linkeru .gld nebo v prislusnem inc
souboru. (Namatkou vybiram priklad z p30f3012.h):

/* MODCON: Modulo Addressing Control Register */
extern volatile unsigned int MODCON __attribute__((__sfr__));
typedef struct tagMODCONBITS {
        unsigned XWM    :4;     /* X-RAGU/X-WAGU modulo addressing register
select  */
        unsigned YWM    :4;     /* Y-RAGU modulo addressing register select
*/
        unsigned BWM    :4;     /* Bit-reversed addressing register select
*/
        unsigned        :2;
        unsigned YMODEN :1;     /* Y-RAGU modulo addressing enable
*/
        unsigned XMODEN :1;     /* X-RAGU/X-WAGU modulo addressing enable
*/
} MODCONBITS;
extern volatile MODCONBITS MODCONbits __attribute__((__sfr__));


Predem diky za radu, jak tuhle zrejme trivialitu v Cecku vyresit.

Jakub Serych




Další informace o konferenci Hw-list