내장형 하드웨어/ATmega128

ATmega128 spec 분석, 포인터 복습

동화다아아 2011. 6. 14. 13:53

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