null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
⌂
Embedded C Intermediate — 인터럽트·주변장치·펌웨어 설계 패턴
Structure
interrupt-system
•
인터럽트 개념 — 벡터 테이블과 ISR 등록 원리
•
인터럽트 라우팅 — SRC 레지스터로 코어에 연결하기
•
ISR 작성 규칙 — 재진입 금지, 실행 시간 최소화
•
ISR 공유 데이터 — volatile, 임계구역, 원자 접근
timers
•
타이머 개념 — 카운터, 오버플로, 프리스케일러
•
PWM 생성 — 원리, 듀티사이클, GTM TOM
•
입력 캡처 — 주파수·펄스폭 측정, GTM TIM
serial-communication
•
UART 심화 — FIFO, 오류 핸들링, 인터럽트 기반 송수신
•
SPI 프로토콜 — Master/Slave, CPOL/CPHA, QSPI
•
I2C 프로토콜 — 주소 지정, ACK/NACK, 멀티마스터
adc
•
ADC 기초 — 분해능, 샘플링 레이트, EVADC
•
ADC 변환 모드 — 단일, 연속, 스캔 모드
•
ADC 인터럽트 & DMA — 변환 완료 처리, 자동 수집 패턴
firmware-patterns
•
상태 머신 — FSM 설계, enum + 함수 포인터 테이블
•
링버퍼 — 원형 버퍼 구현, 인터럽트 안전 설계
•
협력형 스케줄러 — 타임 슬롯 기반 직접 구현
Flow Structure
16
nodes
Start Reading →
☆ Star
Embedded C Intermediate — 인터럽트·주변장치·펌웨어 설계 패턴
#embedded-c
#tc37x
#aurix
#interrupt
#peripheral
@devpc
|
2026-04-02 06:39:41
|
GET /api/v1/flows/11?fv=1
Version:
v1 (2026-04-02) (Latest)
1
Views
3
Calls
# Embedded C Intermediate 이 문서 패키지는 임베디드 C 중급 개발자를 위한 학습 자료입니다. 단순한 GPIO/UART 제어를 넘어서, **인터럽트 시스템**, **주변장치 심화**, **펌웨어 설계 패턴**을 다룹니다. 레퍼런스 플랫폼으로 **Infineon AURIX TC37x (TriCore 기반 Aurix 2G 계열)** 을 사용합니다. 개념은 범용적으로 설명하고, TC37x에서 어떻게 구현되는지를 함께 소개합니다. --- ## 대상 독자 - C 언어 기초와 기본적인 MCU 제어 경험이 있는 개발자 - RTOS 없이 Bare-metal 펌웨어를 작성하는 개발자 - AURIX 계열로 입문하려는 엔지니어 --- ## 문서 구성 ``` 00_interrupt-system/ 인터럽트 벡터, ISR 작성, 공유 데이터 보호 01_timers/ 타이머 카운터, PWM 생성, 입력 캡처 02_serial-communication/ UART/SPI/I2C 심화 03_adc/ ADC 변환 모드, 인터럽트·DMA 연동 04_firmware-patterns/ FSM, 링버퍼, 협력형 스케줄러 ``` --- ## TC37x / AURIX 2G 소개 AURIX TC37x는 차량용(Automotive) 안전 MCU입니다. 일반 MCU와 다른 핵심 특징을 짚고 넘어갑니다. ### TriCore 아키텍처 TriCore는 Infineon이 설계한 32비트 CPU 코어로, **DSP + MCU + RISC** 세 가지 특성을 하나의 코어에 통합합니다. ``` +-----------------------------+ | TriCore CPU | | +---------+ +----------+ | | | RISC | | DSP | | | | 범용 연산| | MAC 유닛 | | | +---------+ +----------+ | | +------------------------+ | | | MCU 주변장치 인터페이스| | | +------------------------+ | +-----------------------------+ ``` TC37x는 이 코어를 **최대 3개** 탑재합니다 (TC0 / TC1 / TC2). 멀티코어 구성은 일반 MCU(STM32, AVR 등 단일 코어)와 크게 다른 점입니다. ### 주요 차이점 요약 | 항목 | 일반 MCU (예: STM32) | TC37x (AURIX 2G) | |------|----------------------|------------------| | 코어 수 | 1개 | 최대 3개 (TriCore) | | 인터럽트 라우팅 | NVIC (코어 고정) | SRC 레지스터로 코어 지정 | | 타이머 | TIM / TIMx | STM, GPT12, GTM | | 안전 기능 | 제한적 | ASIL-D, SMU, HSM 내장 | | 개발 환경 | CubeIDE, Keil | AURIX Development Studio (ADS) | | 드라이버 라이브러리 | HAL / LL | iLLD (Infineon Low Level Driver) | ### iLLD란? iLLD (Infineon Low-Level Driver) 는 TC37x 주변장치를 초기화하고 제어하기 위한 Infineon 공식 C 드라이버 라이브러리입니다. HAL과 유사하지만 레지스터 접근이 더 투명하게 설계되어 있습니다. --- ## 학습 순서 권장 ``` 00_interrupt-system ↓ 01_timers ↓ 02_serial-communication ↓ 03_adc ↓ 04_firmware-patterns ``` 각 섹션은 독립적으로 읽을 수 있지만, `00_interrupt-system` 을 먼저 숙지하면 이후 섹션 이해가 훨씬 수월합니다.
16
nodes in this flow
Start Reading →
// COMMENTS
Newest First
ON THIS PAGE
No content selected.