1. EEPROM과 Flash EEPROM Emulation의 개념
- EEPROM
- 바이트 또는 워드 단위로 개별 쓰기/삭제 가능
- 자동차 ECU에서 보정값, 학습값, 상태 변수 저장에 주로 사용
- 단점: 일부 MCU에는 EEPROM HW가 없음
- Flash EEPROM Emulation (FEE)
- EEPROM이 없는 디바이스에서 Flash 메모리를 이용해 EEPROM처럼 동작하도록 만든 소프트웨어
- Flash는 보통 섹터 단위로만 erase 가능 → 이를 소프트웨어적으로 추상화
- FEE는 상위 계층에:
- 가상 주소 체계 제공
- erase/program 횟수가 사실상 무제한인 것처럼 보이게 함
- AUTOSAR 계층에서 Fee 모듈이 이를 담당
2. FEE 구조 (Block / Cluster / Sector)
2.1 FEE Block
- 애플리케이션이 사용하는 논리적 EEPROM 블록
- 각 Block은 설정 시 특정 Cluster Group에 매핑됨
2.2 FEE Cluster Group
- EEPROM 에뮬레이션을 위한 물리적 저장 단위 묶음
- 최소 2개 이상의 FEE Cluster로 구성됨
→ 이유: wear leveling, 데이터 이동, garbage collection을 위함
2.3 FEE Cluster
- 하나 이상의 FLS Logical Sector로 구성됨
- 실제 Flash 메모리의 물리적 영역
2.4 FLS Logical Sector
- FLS 드라이버에서 정의한 Flash 섹터
- FEE에서 사용할 수 있는 섹터는 FLS 설정에 따라 제한됨
요약 구조:
Application
└─ FEE Block (논리)
└─ Cluster Group
├─ Cluster 0
│ └─ FLS Logical Sector(s)
└─ Cluster 1
└─ FLS Logical Sector(s)
3. 비동기(Asynchronous) 동작 방식
3.1 API 호출 방식
- Fee_Read, Fee_Write, Fee_Erase 등의 API는:
- 요청 파라미터를 내부 구조체에 저장
- 즉시 리턴 (실제 Flash 작업은 수행하지 않음)
3.2 State Machine 기반 처리
- 실제 Flash 작업은:
- FEE 내부 상태 머신(State Machine) 에 의해 수행
- 한 번에 많은 데이터를 처리하지 않고 작은 단위(chunk) 로 나누어 실행
3.3 MainFunction 호출의 중요성
- 아래 함수들이 주기적으로 호출되어야 함
- Fee_MainFunction()
- Fls_MainFunction()
- 일반적으로:
- OS Task (예: 1ms / 10ms 주기)
- 또는 main loop에서 반복 호출
→ 호출하지 않으면 FEE 작업이 진행되지 않음
4. FLS ↔ FEE 연동 (콜백 설정 필수)
FEE는 Flash 작업의 완료/에러를 FLS 콜백을 통해 감지함.
반드시 필요한 FLS 설정
FlsJobEndNotification = Fee_JobEndNotification;
FlsJobErrorNotification = Fee_JobErrorNotification;
역할
- Fee_JobEndNotification
- Flash 작업 정상 완료 통보
- FEE 상태 머신이 다음 상태로 전이
- Fee_JobErrorNotification
- Flash 작업 실패 통보
- FEE 에러 처리 및 상태 전이
⚠️ 이 콜백이 설정되지 않으면:
- FEE 상태 머신이 멈추거나
- Job이 완료되지 않은 상태로 남음
5. 핵심 요약
- FEE는 Flash를 사용해 EEPROM을 소프트웨어적으로 에뮬레이션
- 데이터는:
- FEE Block → Cluster Group → Cluster → FLS Sector 구조로 관리
- 모든 FEE/FLS 작업은 비동기 + 상태 머신 기반
- Fee_MainFunction() / Fls_MainFunction() 주기 호출 필수
- FLS의 Job Notification 콜백을 반드시 FEE로 연결해야 정상 동작
'IT > IoT | Hardware' 카테고리의 다른 글
| 프로비저닝 - 왜 이런 용어를 쓰는 걸까? (0) | 2026.01.15 |
|---|---|
| DDR PHY, 컨트롤러 역할은? (0) | 2024.04.03 |
| DDR 인터리빙? (0) | 2024.04.03 |
| 전자전기 - SCR 제어 (1) | 2024.01.19 |
| IoT 보안인증 자료 (0) | 2023.07.20 |