ATmega128 spec 분석, 포인터 복습
ATmega128 spec 분석
- High-performance
- Low-power(저전력, 3.3V로도 수행 가능하다.)
- 8-bit Microcontroller (데이터 처리가 8bit)
⇒ Microconroller (Microprocessor + Memory + Peripheral Interface)
- Advanced RISC Architecture
⇒ 133 instructions (기능이 133개라는 뜻, 대부분 ‘포인터’로 제어 가능하다.
⇒ Fully Static Operation (명령어 길이가 고정되어 있다.)
⇒ Up to 16 MIPS Throughput at 16MHz
⇒ 모든 CPU는 1주기(Cycle)에 덧셈을 한번한다.
⇒ On-chip 2-cycle Multiplier (곱셈을 2Cycle에 한다. CPU간에 덧셈은 서로 차이가 없지만 곰셈에선 차이가 있다.)
- RISC(Reduced Instruction Set Computer)
⇒ 레지스터가 많으므로 CISC보다 비싸나 속도는 더 빠르다.
- High Endurance Non-volatile Memory segments
⇒ 128k Bytes of In-System Self-programmable Flash program memory
⇒ 4K Bytes EEPROM
⇒ 4K Bytes Internal SRAM
⇒ Write/Eraser cycles: 10,000 Flash/100,000 EEPROM
- 비휘발성 메모리(Non-volatile memory)
⇒ EEPROM(4k - Flash보다 비싸다. 하지만 Flash보다 성능이 좋다.)
⇒ FLASH (128k) - 코드영역
지우고 쓰는 것이 1번이다.(반드시 지우고 써야 한다.), 10,000 write/erase 이후로는 읽기만 가능해 진다.
- 휘발성 메모리
⇒ SRAM(속도가 가장 빠르다 - random access memory) - stack 영역.
단, 기억시간이 너무 짧으므로 recycle(재활용) 기능의 회로가 달려있다.
- Programming Lock for Software Security(칩안에 있는 프로그램을 다운받지 못하게 한다.)
- JTAG(IEEE std. 1149.1 Compliant) interface
⇒ 칩안에 있는 내용을 디버그 할 수 있다.(CPU 상태 모니터링)
⇒ 프로그램도 집어 넣을 수 있다.(펌웨어 업데이트 기능)
⇒ 장비를 따로 사야한다.
- Peripheral Features
⇒ Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
C언어 복습
<프로그램 예제: p1_3.c>
#include<stdio.h>
int main()
{
int number;
number = 3;
printf("The number is %d\n", number);
printf("&number = %08X\n", &number);
*((int *)0xBFFFF848) = 100;
printf("The number is %d\n", number);
return 0;
}
⇒ printf("&number = 08X\n", &number); // number의 주소값
→ &numbr = BFFFF848
48 |
49 |
4A |
4B |
⇒ *((int *)0XBFFFF848) = 100; // 포인터로 number의 주소에 접근해 값 변경
→ The number is 100
'내장형 하드웨어 > ATmega128' 카테고리의 다른 글
ATmega Pin Configurations, DDR, PORT, PIN (0) | 2011.04.20 |
---|---|
ATmega 123 - 특징, Havard architecture, RISC / CISC (0) | 2011.04.19 |