반응형

embeddedsystem 2

[MCU Flash] 플래시 메모리 데이터 깨짐 원인: Erase-before-Write 시퀀스 누락

내용 요약현상: 비휘발성 플래시 메모리(Non-volatile Flash Memory)에 데이터 저장 후, 읽을 시 깨진 데이터가 읽히는 현상.원인: 기존 데이터가 남아있는 영역에 지우기 시퀀스 없이 Write(Program) 명령을 직접 실행함.해법: 쓰기 명령을 실행하기 전, 저장될 섹터(Sector) 또는 페이지(Page)에 Flash Erase 시퀀스를 선행 호출내장 플래시 메모리 데이터 오염(Data Corruption) 발생 증상임베디드 시스템 개발 중 설정값, 캘리브레이션 데이터, 혹은 사용자 로그를 MCU 내장 또는 외장 플래시 메모리(Flash Memory)에 저장할 때 발생하는 대표적인 버그입니다. 최초 펌웨어 다운로드 이후 첫 번째 쓰기 동작은 정상적으로 수행되지만, 동일한 주소 영역..

[MCU 저전력] Deep Sleep 웨이크업(Wake-up) 직후 클록(HSE/PLL) 안정화 대기 루프 구현

내용요약현상: MCU가 딥 슬립(Deep Sleep)에서 깨어난(Wake-up) 직후, 하드폴트(HardFault_Handler)혹은 비정상적인 동작.원인: 고속 외부 클럭(HSE)이나 PLL이 안정화되기 전에, CPU가 내부 오실레이터(예: HSI)를 사용해 즉시 동작을 재개하기 때문임.해결: 웨이크업 명령(WFI / WFE) 직후, 하드웨어 타임아웃 메커니즘을 포함한 하드웨어 플래그 기반의 방어적 폴링 루프(Polling loop)를 구현해야 함.Deep Sleep Wake-up 직후 시스템 오동작 및 HardFault 발생 증상MCU가 Deep Sleep(Stop/Standby) 모드에서 깨어날 때, 시스템이 무작위로 다운되거나 HardFault, BusFault를 유발하는 현상이 발생합니다.특히 ..

반응형