CS/Embedded System

Microprocessor 기초 - MSP432P4111

WakaraNai 2021. 10. 13. 10:50
728x90
반응형

Logic Gate

 

 

 

Memory

  • 명령어와 데이터를 위한 저장 공간
    • micro-controller는 서로 다른 종류의 메모리 하드웨어 컴포넌트들 여러 개로 구성되어 있음
  • 메모리의 종류
    • Volatile 여부
      • ex) RAM(random-access) vs ROM(read only)
      • access : read and write
    • Byte 단위 주소, Byte들의 블록 단위 주소
      • ex) NOR(byte) vs NAND (block) Flash

 

 

Microprocessors (uP)

uP의 핵심 component는 ALU(arithmetic logical unit)과 register

  • ALU : +, - , 비교, branch, read/write..
  • register : internal memory

 

uP는 메모리 읽기쓰기를 제외하고, ALU에 외부 메모리를 직접적으로 사용하지 못함

  • 외부 메모리 속 데이터는 register에 load된 후에 ALU에 쓸 수 있다.
    • 0000의 10을 reg 1로
    • 0004의 20을 reg 2로
    • reg 1 + reg 2를 reg 3에 저장 (30)
    • reg 3 (30)을 000C에 저장

 

 

 

 

Microprocessor Pins

  • 각 핀의 주소들을 표기
  • 어떤 신호를 받는지, read/write인지, clock signal input 용인지 등

 

 

Bus

HW component를 연결한 선

  • uP
    • 64KB addressable
      • 64KB = 65536 = 2^16
      • A0 ~ A15
    • 8 Bits data
      • data signal: D0 ~ D7
  • RAM/ROM
    • 32KB memory space
      • A0-A14 addressable, signals
  • Read는 OE/ ( output enable) signal에 부착
  • Write는 WE/에 붙이며 오직 RAM에만 있음
    • ROM은 READ-ONLY라서 없음

 

Memory Map

uP의 16 bit addressable 체계에 대해서 알아보자

 - 64KB (0x0000 ~ 0xffff)

 

RAM과 ROM에 주소 범위를 할당하는 것을 ‘memory mapping’이라고 함

  • ROM : 0x0000 ~ 0x7fff (32KB)
    • 0111111111111111
  • RAM : 0x8000 ~ 0xffff (32KB)
    • 1000000000000000
  • (이진수로 표현했을 때 !!)

 

uP가 데이터를 읽고 싶다면

  • ROM의 A15를 LOW로 (directly)
  • RAM의 A15를 HIGH로 (inverted)

+) ROM과 RAM은 동시에 일하면 안 되기에 RAM의 CLK에 not 게이트를 붙임



 

Additional Devices on the Bus

  • 외부 장치는 메모리 주소에 의해 접근 가능
    • memory mapped I/O
      • 장치들은 data와 address signal와 함께 같은 bus로 uP에 연결해야 함
        • Sensor, actuator, ..
  • Memory Map
    • 장치에다가 사용하지 않은 주소 범위에 할당
      • uP와 장치는 서로 같은 기능의 핀들에 연결되어야 함
    • 도면을 보면 각 컴포넌트 끼리 어떻게 연결되었는지 볼 수 있음

 

 

 

MSP432P4111

 

 

Initialization code

  • startup_msp432p411_ccs.c
    • 프로세서가 처음 실행할 때 동작하는 reset event
      • SystemInit();은 system_msp432p4111.c에 있음
        • MSP-EXP432P4111의 초기화 단계에 필요한 일을 수행
      • _c_int00()는 C 프로그램을 돌리는데 필요한 단계를 수행

 

WDT : Watchdog Timer

프로그램을 재시작하지 않는 이상 특정 시간 간격이 후에 초기화하는 타이머

  • 만약 프로그램이 정상작동하고 있다면, 간격이 끝나기 전에 WDT를 다시 프로그래밍해야 함

 

WDT 펄스의 출력은 일반적으로 소프트웨어가 실패했을 때 유효함

  • 출력은 uP의 reset 신호에 연결되고, 프로그램을 처음부터 다시 시작
  • 시스템에 장애가 발생 시 일정 시간 뒤에 재시작

 

+) 컴퓨터 오작동을 감지하고 복구하는 데 사용되는 타이머이다. 정상 작동 중에는 컴퓨터가 정기적으로 watchdog 타이머를 리셋하여 경과 시간이 지나지 않게, 즉 "시간 초과(time out)"하지 않게 하여야 한다.

 

 

오류로 인해 컴퓨터가 watchdog을 재설정하지 못하면 타이머가 경과되고 시간 초과 신호가 생성. time-out 신호의 발생은 컴퓨터의 루프가 정상적으로 동작하고 있지 못함을 나타는 신호

발생 시 이를 대처하기 위해 시스템을 안전한 상태로 두고 정상 작동을 복원(재시작)

 

예를 들어, 우주 탐사선과 같은 원격 임베디드 시스템은 인간 조작자가 물리적으로 접근 할 수 없다. 장애로부터 자율적으로 복구 할 수없는 경우 잘못하면 이 시스템을 영구적으로 사용할 수 없게 될 수 있다. watchdog 타이머는 일반적으로 이와 같은 경우에 사용됩니다.

( https://xmctutorial.readthedocs.io/ko/stable/Watchdog/)

 

 

Dummy main()

실행가능한 binary 파일로 target을 빌드함

( Project -> Build Project )

watchdog가 프로그램에게 정기적으로 잘 작동하고 있는지 물어봄

제대로 답변을 안 하면 계속 껐다 키려고 하기 때문에 stop으로 구현함

 

Download the Executable Binary

  • Click “Flash”
    • 이전에 flash하여 생성된 binary는 삭제되고  새 binary가 flash된다
    • 약 100만 번 이상 flash하면 (썼다 지웠다 하면)
    • 일부분은 닳아 없어지기에 새 binary에 대해 단순 쓰기만 했는지, flash까지 해주었는지 검증할 필요가 있다

 

728x90
반응형

'CS > Embedded System' 카테고리의 다른 글

Header file에 정의된 macro와 데이터형 이용하기  (0) 2021.10.13
[실습] Memory Map for P1.0 Red LED  (0) 2021.10.13
Bit Operator  (0) 2021.10.13
전자공학 기초 2  (0) 2021.10.13
전자공학 기초 1  (0) 2021.10.13