[에이콘][요약] 임베디드 시스템 아키텍처 사물인터넷을 위한 임베디드 시스템의 기초 Chapter 1 - 개요

Embedded June·2021년 8월 8일
1

Chapter 1. 개요

image-20210808175803417
  • 임베디드 시스템의 아키텍처는 MCU를 중심으로 peripheral 및 외부 세계와 통신하기 위한 특별한 인터페이스 모음을 갖고 있다. MCU는 프로세서, RAM, Flash, serial tx/rx 등을 포함한 SoC이다.
  • 임베디드 프로그래밍에서 중요한 부분은 주변장치(Peripheral)와 통신하는 것이다. 전자공학에 대한 기본적인 지식, 회로도 및 datasheet를 이해하는 능력, 로직 분석기나 오실로스코프 같은 측정 도구에 대한 확신이 필요하다.
  • 임베디드 SW 개발은 자원이 제한돼있음을 철저히 고려해 가장 효율적인 방식에 초점을 맞춰야 한다.
    1. 새로운 기능이나 복잡한 구조체를 구현하는데 필요한 충분한 공간이 RAM과 flash에 없을 수 있다.
    2. 프로세서가 데이터를 처리하기에 충분히 빠르지 않을 수 있다.
    3. 더 적은 전력을 소모하는 펌웨어가 필요할 수도 있다.
  • MCU는 MMU를 가지고 있지 않고, 메모리가 항상 부족하며, 특정 순서로 모든 데이터를 처리한다. 모든 연산에 잠재적으로 필요한 메모리의 양과 buffer를 항상 고려해야 한다. 스와핑 및 메모리 relocation 같은 고급 OS 기능은 불가능한 경우가 많다. 따라서 성공적인 개발을 위해서는 잘 정의된 테스트 케이스, 성능 지표, 효율적인 프로토타입 단계 등으로 구성된 탄탄한 workflow가 필요하다.
  • 펌웨어는 MCU 내부 flash에 저장되며, MMU가 없기 때문에 flash는 memory에 고정 물리 주소로 매핑되기 때문에 프로세서는 주소 변환 없이 flash에서 직접 instruction을 순차적으로 가져오는 XIP(Execute In Place) 매커니즘으로 실행된다.
  • ARM Cortex-M 제품은 다음과 같은 특징을 가진다.
    • 16개의 general purpose register.
    • 코드 밀도 최적화를 위한 Thumb 16bit용 instruction format.
    • Priority based NVIC (Nested Vector Interrupt Controller)
    • 8개의 구역을 지원하는 MPU (Memory Protection Unit)
profile
임베디드 시스템 공학자를 지망하는 컴퓨터공학+전자공학 복수전공 학부생입니다. 타인의 피드백을 수용하고 숙고하고 대응하며 자극과 반응 사이의 간격을 늘리며 스스로 반응을 컨트롤 할 수 있는 주도적인 사람이 되는 것이 저의 20대의 목표입니다.

0개의 댓글