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