2011년6월13일_ATmega128 복습(Datasheet), 임베디드C 복습(C함수의 구조, 주소형상수를 이용한 메모리에 직접 값을 대입하기)
ATmega128 복습 |
● ATmega128 Datasheet 분석
① 차례가 뒤에 있음.
② 처음에 오는 것은 장점(칭찬)
고성능 저전력 등록상표 8비트 마이크로컨트롤러(CPU + 메모리 + 주변제어회로)
<옴의 법칙>
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)로도 표시한다.
전력계는 수도계량기와 마찬가지로 전기의 흐름..
즉, 전류를 측정하는 계기이다.
위에 440Wh와 220Wh의 가전제품이 있다면,
440Wh를 소비하는 제품이 220Wh를 소비하는 제품보다
2배나 전류가 강하게 흐르므로 전력계는 더 빨리 돈다.
전류가 흐르면 전자석이 되는 원리이니..
전력계 위에 자석을 올려 두면 전력계는 돌지 않는다.
과연 진짜 이렇게 공짜 전기를 쓸 수 있는지 실험해보자.
(단, 벌금을 물더라도 나는 모른다 ㅎㅎㅎ)
이처럼 같은 공급전압일 때 전류의 세기에 따라 전력량이 결정되니..
ATmega128 spec에서 low-power라는 말은 공급전압이 5V라면 기존의 다른 MCU들 보다 소비전류가 적다는 것을 알 수 있다.
®는 등록 상표(Registered Trade Mark)라는 의미이다.
8bit는 데이터처리량이 한 번에 1Byte씩 한다는 의미이고,
마이크로 컨트롤러는 CPU core에 메모리와 주변제어회로가 딸려 칩에 내장되어 있어 쉽게 단독으로 사용이 가능하는 뜻이다.
그냥 128은 16Mhz까지 사용이 가능하나 전원전압이 L에 비해 높아 소비전력이 크고,
L타입은 전원전압을 3.3V까지 낮출 수 있어 적게 먹고 많은 일을 할 수 있어 좋다.
향상된 RISC(Reduced Instruction Set Computer) 구조
축소된 명령 세트 컴퓨터
이와 반대되는 말로 CISC가 있고,
Complex Instruction Set Computer
복잡한 명령 세트 컴퓨터 → 명령어가 복잡해 사용자 입장에선 복잡한 작업을 단순한 명령 하나로 끝내니 편함.(좋음)
그러나,
서울로 가는 일을 CISC방식으로 수행하면 KTX나 버스를 타고 서울로 바로 가 중간에 경로를 바꿀 수 없다.
(버스면 버스로 하드웨어적으로 정해져 있어 택시를 타고 갈 수 없다.)
RISC는 이와 다르게 서울로 가더라도 부산 → 대구 → 대전 → 수원 → 서울, 이렇게 중간에 경로 쉽게 바꿀 수 있다.
자본주의가 사회주의의 장점인 복지를 모방하듯 사회주의도 자본주의의 장점인 자유시장경제를 모방하듯이...
Intel의 CPU는 CISC이고 RISC의 장점(레지스터多, 속도高, 가격高)을 받아 들이는 것도 같다.
RISC와 CISC의 특징을 표로 요약해서 정리하면,
속도 | 레지스터 | 가격 | 명령어수 | 하드웨어복잡도 | 스택포인터 | 컴파일러 | 비고 | |
RISC | 빠름 | 많음 | 높음 | 적음 | 간단함 | 없음(소프트웨어구현) | 복잡해짐 | ARM, IBM |
CISC | 느림 | 적음 | 낮음 | 많음 | 복잡함 | 있음 | 간단함. | Intel, 모토롤라 |
서울까지 가는 방법이 133개라는 뜻으로 그다지 많지 않아 강력하지 않으니 powerful을 뺄 것.
명령어의 길이가 고정이다. (2Bytes) Datasheet p.18참조.
이와 반대로 Intel은, 7A가 쓰라는 명령이라면,
16bit주소일 때, 7A ㅁㅁ (3Bytes)
32bit주소일 때, 7A ㅁㅁㅁㅁ (5Bytes)
로 명령어의 크기가 변한다. 그러니 1Byte단위로 끊어서 다룸.
IQ와 같은 성능을 의미한다. CPU성능을 100% 측정 못 함.
칩 내부에 2사이클만에 한 번 곱하는 곱셈기가 내장되어있다.
덧셈 보다 2배의 시간이 소요되나 다른 MCU에 비해 빠르니 장점이라고 표시하였음.
2배의 차이라 그다지 크게 느껴지지 않으나 이것을 수십만번 반복하면 그 차이는 어마어마 하므로 조금이라도 빠를수록 유리함.
16Mhz = 16 000 000 Hz
M k
Intel Pentium CPU는 4Ghz로 ATmega128보다 빠름.
●인간: k → 1000 → 10^3
●기계: K → 1024 → 2^10
ATmega128의 내부 메모리
① FLASH : 비휘발성메모리로 EEPROM보다 싸다. 그래서 128KBytes로 제일 큰 용량을 가진다.
② EEPROM : 비휘발성메로리로 FLASH에 비해 비싸다. 대신 성능은 좋다.
(Non-Volatile)
FLASH메모리보다 더 싼 메모리는 하드디스크이다.
SRAM은 속도는 빠르나 기억력이 금붕어 수준이라 오래 못 가니 recycle회로가 필요하다.
High레벨신호인 5V를 넣으면 점점 낮아져 0V가 되어 버리니 recycle회로로 계속 전압을 올려줘야함.
임베디드C 복습 |
p.12 1.3 C함수의 구조
<VI editor>
<소스코드>
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: }
참조(Reference) |