2011년6월13일_ATmega128 복습(Datasheet), 임베디드C 복습(C함수의 구조, 주소형상수를 이용한 메모리에 직접 값을 대입하기)

 

 

ATmega128 복습

 
● ATmega128 Datasheet 분석
① 차례가 뒤에 있음.
② 처음에 오는 것은 장점(칭찬)

 

image  
          고성능                          저전력         등록상표    8비트 마이크로컨트롤러(CPU + 메모리 + 주변제어회로)


image

<옴의 법칙>

V = IR을 이항정리하면 R = V / I,  I = V / R
P = VI

220W를 소비하는 가전제품은 220V연결시 1A를 소비하고 있다.
220Wh는 1시간당 220W를 소비한다는 뜻이고 220VA(220V * 1A)로도 표시하고,
440Wh는 1시간당 440W를 소비한다는 뜻이고 440VA(220V * 2A)로도 표시한다.

 image

전력계는 수도계량기와 마찬가지로 전기의 흐름..
즉, 전류를 측정하는 계기이다.

위에 440Wh와 220Wh의 가전제품이 있다면,
440Wh를 소비하는 제품이 220Wh를 소비하는 제품보다
2배나 전류가 강하게 흐르므로 전력계는 더 빨리 돈다.
전류가 흐르면 전자석이 되는 원리이니..
전력계 위에 자석을 올려 두면 전력계는 돌지 않는다.

과연 진짜 이렇게 공짜 전기를 쓸 수 있는지 실험해보자.
(단, 벌금을 물더라도 나는 모른다 ㅎㅎㅎ)

 

 

이처럼 같은 공급전압일 때 전류의 세기에 따라 전력량이 결정되니..
ATmega128 spec에서 low-power라는 말은 공급전압이 5V라면 기존의 다른 MCU들 보다 소비전류가 적다는 것을 알 수 있다.

 

image  ®는 등록 상표(Registered Trade Mark)라는 의미이다.

 

image 

8bit는 데이터처리량이 한 번에 1Byte씩 한다는 의미이고,
마이크로 컨트롤러는 CPU core에 메모리와 주변제어회로가 딸려 칩에 내장되어 있어 쉽게 단독으로 사용이 가능하는 뜻이다.

 

image


그냥 128은 16Mhz까지 사용이 가능하나 전원전압이 L에 비해 높아 소비전력이 크고,

L타입은 전원전압을 3.3V까지 낮출 수 있어 적게 먹고 많은 일을 할 수 있어 좋다.

 


image 
        향상된 RISC(Reduced Instruction Set Computer) 구조
                        축소된     명령     세트  컴퓨터

이와 반대되는 말로 CISC가 있고,
Complex Instruction Set Computer
복잡한    명령     세트   컴퓨터         →   명령어가 복잡해 사용자 입장에선 복잡한 작업을 단순한 명령 하나로 끝내니 편함.(좋음)

그러나,
서울로 가는 일을 CISC방식으로 수행하면 KTX나 버스를 타고 서울로 바로 가 중간에 경로를 바꿀 수 없다.
(버스면 버스로 하드웨어적으로 정해져 있어 택시를 타고 갈 수 없다.)
RISC는 이와 다르게 서울로 가더라도 부산 → 대구 → 대전 → 수원 → 서울, 이렇게 중간에 경로 쉽게 바꿀 수 있다.

자본주의가 사회주의의 장점인 복지를 모방하듯 사회주의도 자본주의의 장점인 자유시장경제를 모방하듯이...
Intel의 CPU는 CISC이고 RISC의 장점(레지스터多, 속도高, 가격高)을 받아 들이는 것도 같다.

RISC와 CISC의 특징을 표로 요약해서 정리하면,

  속도 레지스터 가격 명령어수 하드웨어복잡도 스택포인터 컴파일러 비고
RISC 빠름 많음 높음 적음 간단함 없음(소프트웨어구현) 복잡해짐 ARM, IBM
CISC 느림 적음 낮음 많음 복잡함 있음 간단함. Intel, 모토롤라

 


 image

서울까지 가는 방법이 133개라는 뜻으로 그다지 많지 않아 강력하지 않으니 powerful을 뺄 것.

 

image

명령어의 길이가 고정이다. (2Bytes)  Datasheet p.18참조.

이와 반대로 Intel은, 7A가 쓰라는 명령이라면,

16bit주소일 때, 7A ㅁㅁ  (3Bytes)
32bit주소일 때, 7A ㅁㅁㅁㅁ (5Bytes)

로 명령어의 크기가 변한다. 그러니 1Byte단위로 끊어서 다룸.

image

IQ와 같은 성능을 의미한다. CPU성능을 100% 측정 못 함.


image

칩 내부에 2사이클만에 한 번 곱하는 곱셈기가 내장되어있다.
덧셈 보다 2배의 시간이 소요되나 다른 MCU에 비해 빠르니 장점이라고 표시하였음.
2배의 차이라 그다지 크게 느껴지지 않으나 이것을 수십만번 반복하면 그 차이는 어마어마 하므로 조금이라도 빠를수록 유리함.

image

16Mhz = 16 000 000 Hz
                M   k

Intel Pentium CPU는 4Ghz로 ATmega128보다 빠름.

●인간: k → 1000 → 10^3
●기계: K → 1024 → 2^10

image

ATmega128의 내부 메모리
① FLASH : 비휘발성메모리로 EEPROM보다 싸다. 그래서 128KBytes로 제일 큰 용량을 가진다.
② EEPROM : 비휘발성메로리로 FLASH에 비해 비싸다. 대신 성능은 좋다.
                (Non-Volatile)


image

FLASH메모리보다 더 싼 메모리는 하드디스크이다.

 

image

SRAM은 속도는 빠르나 기억력이 금붕어 수준이라 오래 못 가니 recycle회로가 필요하다.

image 

High레벨신호인 5V를 넣으면 점점 낮아져 0V가 되어 버리니 recycle회로로 계속 전압을 올려줘야함.

 
image

 

 

 DSCN3354 DSCN3355

 

 

 

임베디드C 복습

 

p.12 1.3 C함수의 구조


image

 

<VI editor>

image 

 

<소스코드>

   1:  //숫자를 출력하는 프로그램으로 변수 사용의 예를 보여준다.
   2:  #include <stdio.h>
   3:   
   4:  int main()
   5:  {
   6:      int number;        //int형 변수 number의 선언
   7:   
   8:      number = 3;
   9:      printf("The number is %d.\n", number);
  10:      printf("number의 주소 %08X\n", &number);
  11:      
  12:      *((int *)(0xBFFFF838)) = 100;
  13:      
  14:      printf("The number is %d.\n", number);
  15:      
  16:      return 0;
  17:  }



<컴파일 및 실행결과>
image

 

 

 

 

 

참조(Reference)

 

DSCN3351 DSCN3352 DSCN3353 DSCN3354 DSCN3355 DSCN3356