Język C51 - implementacja.pdf

(2335 KB) Pobierz
3085368 UNPDF
Kompilator
języka C na procesor 8051
RC51 ­ implementacja
3085368.002.png
Implementowane typy danych
  bit  – 1 bit
  char  lub  char signed  8 bitów
  char unsigned  8 bitów
  int  lub  signed int  16 bitów
  unsigned int  16 bitów
  long  lub signed long  32 bity
  unsigned long  32 bity
  float  32 bity (BCD lub IEEE)
  double  48 bitów (tylko BCD)
  long double  56 bitów (tylko BCD)
3085368.003.png
Implementowane typy danych – wskaźniki
 RC51 oferuje dwa rodzaje wskaźników:
 ... kwalifikowane, wskazujące dane w określonym typie pamięci
 ...  generic , mogące wskazywać obiekt w dowolnym obszarze pamięci
Void Example()
{
code char *cPtr; // rozmiar 2 bajty
xdata char *xPtr; // rozmiar 2 bajty
idata char *iPtr; // rozmiar 1 bajt
char generic *gPtr; // rozmiar 3 bajty
dPtr = gPtr; // bł d ą
gPtr = dPtr; // poprawne
xPtr = dPtr; // bł d ą
xPtr = (char xdata*) dPtr; // poprawne
3085368.004.png
Implementowane typy danych – wskaźniki generic 
 Wźniki  generic  oprócz 16­bitowego adresu
 ... zawierają jeszcze bajt kwalifikatora przestrzeni adresowej:
 0x00 – null
 0x01 – idata
 0x02 – xdata
 0x03 – pdata
 0x04 – data
 0x05 – code
 0xFF – zarezerwowany dla procedur we/wy
3085368.005.png
Zmienne automatyczne i statyczne
 Zmienne lokalne funkcji mogą być:
 Automatyczne
 ... są tworzone przy wywołaniu funkcji
 ... oraz usuwane przy powrocie do miejsca wywołania;
 ... zgodnie ze specyfikacją ANSI otrzymują wartość początkową 0
 ... ale można zabronić tego działania w opcjach kompilatora RC51
 Składnia:
auto unsigned int MOJ_LICZNIK;
 Słowo kluczowe  auto  jest opcjonalne.
3085368.001.png
Zgłoś jeśli naruszono regulamin