null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
☆ Star
임베디드 SW vs 일반 SW
#embedded
#realtime
#resource-constraint
#hardware
#aurix
@devpc
|
2026-04-02 05:47:08
|
GET /api/v1/nodes/194?nv=1
History:
v1 (2026-04-02) (Latest)
1
Views
2
Calls
# 임베디드 SW vs 일반 SW ## 임베디드 소프트웨어란? 임베디드 소프트웨어(Embedded Software)는 **특정 하드웨어에 고정되어 동작하는 소프트웨어**입니다. PC나 스마트폰처럼 범용 OS 위에서 돌아가는 것과 달리, 임베디드 SW는 하드웨어와 매우 밀접하게 결합되어 있습니다. --- ## 세 가지 핵심 특성 ### 1. 자원 제약 (Resource Constraints) 일반 PC는 수 GB의 RAM과 수백 GB의 스토리지를 갖지만, 임베디드 시스템은 훨씬 제한된 자원으로 동작합니다. ``` [ 일반 PC / 서버 ] [ 임베디드 MCU ] RAM : 수 GB RAM : 수 KB ~ 수 MB Flash: 수백 GB (SSD) Flash: 수십 KB ~ 수 MB CPU : 수 GHz, 다수 코어 CPU : 수십 MHz ~ 수백 MHz, 1~수 코어 OS : Linux / Windows OS : RTOS 또는 Bare-metal ``` TC37x의 경우: - **DSPR(Data Scratch-Pad RAM)**: 코어 0 기준 240 KB - **PSPR(Program Scratch-Pad RAM)**: 코어 0 기준 64 KB - **PFLASH**: 최대 6 MB (프로그램 코드 저장) 자원이 제한적이므로 코드 크기, 스택 사용량, 동적 메모리 할당 등을 항상 의식해야 합니다. C++의 STL이나 동적 메모리(`malloc`)를 임베디드에서 피하는 이유도 이 때문입니다. --- ### 2. 실시간성 (Real-Time Requirement) 임베디드 시스템은 **정해진 시간 안에 반드시 응답**해야 하는 경우가 많습니다. ``` 외부 이벤트 발생 | v [인터럽트 혹은 폴링으로 감지] | v [정해진 데드라인 내에 처리 완료] <-- 이 시간 보장이 "실시간성" | v 결과 출력 (액추에이터 제어, 통신 응답 등) ``` - **Hard Real-Time**: 데드라인 초과 = 시스템 오류 (예: ABS 브레이크, 에어백) - **Soft Real-Time**: 데드라인을 가끔 넘어도 품질 저하 수준 (예: 멀티미디어 스트리밍) TC37x(Aurix 2G)는 차량용 ASIL-D 안전 등급을 타겟으로 설계되어, 인터럽트 레이턴시와 태스크 스케줄링이 결정론적(Deterministic)으로 동작하는 것을 보장합니다. --- ### 3. HW 결합 (Hardware Coupling) 임베디드 SW는 특정 하드웨어의 레지스터를 직접 읽고 씁니다. 추상화 계층(OS, HAL)이 얇거나 없을수록 더 HW에 가까운 코드를 작성하게 됩니다. ``` [ 임베디드 소프트웨어 계층 구조 ] +---------------------------+ | Application Layer | ← 비즈니스 로직, 제어 알고리즘 +---------------------------+ | HAL / Driver Layer | ← iLLD (Infineon Low Level Driver) +---------------------------+ | MCAL / Register Layer | ← 레지스터 직접 접근 (SFR) +---------------------------+ | Hardware (MCU) | ← TC37x, 주변장치, 메모리 +---------------------------+ ``` TC37x에서 GPIO 출력 하나를 켜는 것도 결국 내부에서는 특정 메모리 주소의 비트를 1로 세팅하는 동작입니다. iLLD는 이 과정을 함수로 감싸서 편하게 쓸 수 있게 해주는 HAL(Hardware Abstraction Layer)입니다. --- ## TC37x: TriCore CPU 기반 Aurix 2G 계열 소개 TC37x는 Infineon의 **Aurix(오릭스) 2G 패밀리**에 속하는 차량용 MCU입니다. ``` [ Aurix 2G 패밀리 개요 ] Infineon Aurix 2G ├── TC3xx 시리즈 │ ├── TC37x ← 이 문서의 실습 타겟 │ ├── TC38x │ └── TC39x (더 많은 코어·플래시) └── (Aurix 1G: TC2xx 시리즈 — 이전 세대) ``` **핵심 특징:** | 항목 | TC37x | |---|---| | CPU 아키텍처 | TriCore 1.6.2 | | 코어 수 | 최대 3개 (멀티코어) | | 동작 주파수 | 최대 300 MHz | | Flash | 최대 6 MB (PFLASH) + Data Flash (DFLASH) | | RAM | DSPR, PSPR, LMU 등 분산 구조 | | 안전 등급 | ISO 26262 ASIL-D | | 주요 용도 | 파워트레인, ADAS, 차체 제어 | --- ## 다른 MCU와의 차이점 > ⚠️ 다른 MCU에서 넘어온다면 이런 점이 다를 수 있습니다. - **STM32 (ARM Cortex-M)**: ARM 아키텍처와 CMSIS 표준을 사용해 레지스터 접근 방식이 다름. TriCore는 ARM이 아닌 Infineon 고유 ISA. - **RP2040 (Cortex-M0+)**: 단일 코어 중심 구조, 저가·취미용. TC37x는 멀티코어 + 안전 기능이 기본 탑재. - **AVR (Arduino)**: 8비트 아키텍처. TC37x는 32비트이며 성능·주소 공간이 근본적으로 다름. - **공통점**: GPIO, UART, SPI, I2C 같은 주변장치 개념 자체는 거의 동일. 레지스터 이름과 초기화 절차만 MCU마다 다름.
// COMMENTS
Newest First
ON THIS PAGE