Dersler

View on GitHub

EEM-465 Gömülü Sistemler

2022-2023 Güz Dönemi Ders 3

Makro tanımlama

#define PI 3.141

int main(){  
  double yaricap, alan;
  yaricap = 5;
  alan = PI * yaricap * yaricap;
}
#define POS (12U)
#define MASK (0x3U << POS)
#define MASK_0 (0x1U << POS)
#define MASK_1 (0x2U << POS)

int main(){
  unsigned int a = 0x12AF04BA;
  a = a | MASK;
  a = 0x12AF04BA;
  a = a | MASK_0;
  a = 0x12AF04BA;
  a = a | MASK_1;  
}

İşaretçiler

int main(){    
  int a=10; int b=20;
  int *p;
  p =&a;
  *p = *p + 10;
  p=&b;
  *p = *p + 10;
}

Tür dönüşümü

int main(){
  double a=10.3;
  double tam, ondalik;
  tam = (int)a;
  ondalik = a - tam;  
}

Tamsayının işaretçiye dönüşümü

int main(){
  int adresteki_veri;
  adresteki_veri = *((int*) 0x40023830);  
}
#define RCC_ABH1ENR (*((int*) 0x40023830))
int main(){
  int adresteki_veri;
  adresteki_veri = RCC_ABH1ENR;  
}
#define RCC_ABH1ENR (*((int*) 0x40023830))
int main(){
  RCC_ABH1ENR = RCC_ABH1ENR | 1<<3;
  RCC_ABH1ENR |=  1<<1;  
}

Yapılar

#include <string.h>
struct calisan{
  char isim[30];
  int sicil;
  float maas;
};
int main(){
  struct calisan calisan1;
  calisan1.maas=12500;
  calisan1.sicil=152;
  strcpy(calisan1.isim, "isim soyisim");  
}

Yapı işaretçisi

#include <string.h>
struct calisan{
  char isim[30];
  int sicil;
  float maas;
};
int main(){
  struct calisan calisan1, *p;
  calisan1.maas=12500;
  calisan1.sicil=152;
  strcpy(calisan1.isim, "isim soyisim");
  p=&calisan1;
  
  (*p).maas = 15000;
  (*p).sicil =155;
  strcpy((*p).isim, "isim1 soyisim1");
  
  p->maas = 16000;
  p->sicil =160;
  strcpy(p->isim, "isim2 soyisim2");  
}

Tür tanımlama

typedef unsigned char BOOL;
int main(){
    BOOL x;
    x=1;
    x=0;
}

Yapı türü

#include <string.h>
typedef unsigned char BOOL;
typedef struct {
  char isim[30];
  int sicil;
  float maas;
} calisan;
int main(){
  calisan calisan1, *p;
  calisan1.maas=12500;
  calisan1.sicil=152;
  strcpy(calisan1.isim, "isim soyisim");
  p=&calisan1;
  
  //yapı işaretçisi kullanım şekli 1
  (*p).maas = 15000;
  (*p).sicil =155;
  strcpy((*p).isim, "isim1 soyisim1");
  
  //yapı işaretçisi kullanım şekli 2
  p->maas = 16000;
  p->sicil =160;
  strcpy(p->isim, "isim2 soyisim2");  
}
#include <string.h>
#define RCC_ABH1ENR (*((int*) 0x40023830))
typedef struct{
	int a;
	int b;
	int c;
} X_type;

int main(){
	X_type *p;
	p = (X_type*)0x40020C00;

  RCC_ABH1ENR |= 1<<3;
	
	p->a |= 1<<3;
	p->c |=1<<10;
}