
PC - board(ARM ( or PPC, Tricore, Risc-V, ...))
ASM - machine language : mnemonic instruction
C based on PC(x86 - 64) : function oriented programming - embedded
C++ -> class oriented programming
Qt -> GUI application programming - embedded ~ higher
Embedded system : 특정 기능 수행, HW+SW, 제한적인 자원, 고 신뢰성, 실시간성의 요구
400x 시리즈 : 프로그램 가능한 ROM IC
CPU operaing mode :
USR(user) : 비특권, 하드웨어에 직접 접근 불가, 어플리케이션 단
SVC(Super visor call) : 특권 모드, 하드웨어에 대한 접근 가능, OS 단
GPU computing : 어플리케이션의 연산집약적인 부분은 GPU 담당, 나머지는 CPU에서 처리
OS가 있는 경우 : 함수에 대한 것만 작성 -> 드라이버가 하드웨어에 접근하고, 필요한 경우 어플리케이션과 통신
OS가 없는 경우 : 함수에 대한 것, 하드웨어 접근에 대한 것 모두 필요
bare-metal
Free-RTOS 스타일
리눅스 같은 OS 스타일

경성 실시간 시스템 : 시간 제약 위반이 심각한 결과를 초래, 반드시 준수
연성 실시간 시스템 : 시간 제약 위반이 QoS의 저하를 유발, 가급적 준수
RTOS : 실시간 시스템을 구현 가능한 운영체제, 우선 순위 기반 스케줄링
VxWokrs, ReeRTOS, etc
임베디드 리눅스 운영체제 : 2.4.x ~ 6.x.x, 무료이면서 무료가 아님(자료가 없음), GPL 라이센스, 커널 포팅 작업, 디바이스 드라이버 작업
PC vs Embedded Systme
런타임 환경에 대한 이해, 타겟 전용 개발 툴 사용, 어플리케이션 보다 더 자세하게 알아야 한다.
A.o + B.o = a.out / a.out(active) = a.out + (stack + heap)
MCU를 선정하는 기준 : COTS, 성능, 개발 툴, 가격, 업그레드 고려, 주변 장치 포함 여부 등
마이크로프로세서의 버스 요소
Address Bus - 주소 버스
Data Bus - 데이터 전송로
Control Bus - 제어 신호 전송로
uKeil : BSP, DFP, CMSIS 드라이버 설치 - 단 너무 높은 버전의 경우 호환 문제 발생 가능
volatile : 휘발성 -> 전원이 꺼지면 초기화
non-volatile : 비휘발성 -> 저원과 상관 없이 데이터 유지, NOR(프로그램 메모리), NAND(자료저장 메모리)
MCU, CPU, MPU의 차이는?
항목 CPU ALU MPU MCU
구분 | 구성 요소 | 기능 범위 | 유연성 | 예시 |
---|---|---|---|---|
CPU | 연산, 제어 | 기본적인 연산 유닛 | 높음 (모듈 단위) | Intel i9, ARM Cortex-A |
MCU | CPU + RAM + ROM + I/O | 제어 중심의 간단한 시스템 | 낮음 | STM32, ATmega328 |
MPU | CPU 단독 또는 일부 통합 | 고성능 연산 시스템 | 높음 | ARM Cortex-A MPU |
SoC | CPU + GPU + DSP + I/O + 기타 | 완전한 시스템 단일 칩 | 낮음 (하지만 최적화됨) | Snapdragon, Apple M1 |
Chip select : 해당 핀을 이용하여 어느 소자와 통신할 것인지 결정
메모리맵 : 각 디바이스들이 주소 공간에 할당되어진 상태
Bank + Chip select : 소자 메모리 접근 가능

PAL : 논리회로를 구성할 수 있도록 설계된 사용자 프로그래밍 가능한 디지털 논리 장치
GAL : PAL의 범용 버전으로 재프로그래밍 가능
PLD : 사용자가 논리 회로를 설계하여 직접 프로그래밍할 수 있는 디지털 논리 소자
시간적 지역성, 공간적 지역성 -> Cache 메모리의 존재 이유
Cache : tag, valid를 비교하였을 때 맞다면 Hit, 아니면 Miss - Mapping 방법에 따라서 다름
직접 매핑 방식, 연관 매핑 방식, 세트 연관 매핑 방식
'VEDA 복습' 카테고리의 다른 글
VEDA 26일차 - 임베디드 리눅스 프로그래밍 (0) | 2025.04.21 |
---|---|
VEDA 25일차 - 임베디드 시스템 (1) | 2025.04.18 |
VEDA 18일차 ~ 20일차 : Qt 프로그래밍 (0) | 2025.04.10 |
VEDA 17일차 - Qt 프로그래밍 (0) | 2025.04.08 |
VEDA 16일차 - Qt (0) | 2025.04.07 |