본문 바로가기

스택오버플로우2

[F/W] 펌웨어 구현 시 메모리 관리 펌웨어란 하드웨어를 직접 접근하고 제어하는 밀접한 관계를 가지고 동작하는 소프트웨어의 일종이다.그렇기 때문에 일반적인 어플리케이션 소프트웨어와는 다르게 조금 더 신경 써줘야한다고 생각한다. 수정: 스택은 컴파일러가 정해주고 힙은 런타임(프로그램 실행 중 동적으로 바뀜)1 .스택 오버플로우 (Stack Overflow) 예방펌웨어의 크기가 커질수록 또는 최적화해야 할 필요가 있다면, 자신에 시스템에 맞는 스택과 힙의 크기를 결정해야 한다.스택은 메모리 최상단에 위치하여 데이터가 추가될 수록 아래로 커지는 자료구조힙은 반대로 데이터가 추가될 수록 위로 커지는 자료구조스택 여유 공간 확인 (모니터링) : FreeRTOS 테스크를 사용중이라면 각 태스크의 스택 사용량을 확인 할 수 있다. 또는 런타임 시 스택의.. 2024. 6. 25.
[F/W] 메모리 영역 (스택, 힙) 보통은 MCU 제조사에서 제공하는 통합 개발 환경 (IDE)툴에서는 기본 코드의 기본값(Default)으로 되어 있는 스택의 크기와 힙 영역의 크기를 변경하지 않고 사용한다.하지만, 펌웨어의 크기가 커질수록 또는 최적화해야 할 필요가 있다면, 자신의 시스템에 맞는 스택(Stack)과힙(Heap)의 크기를 결정해야한다.1. 메모리복습의 차원에서 메모리는 여러 종류로 나뉠 수 있지만, ROM과 RAM의 차이 정도만 알아도 될 것 같다.ROM의 경우 비휘발성, 전원이 꺼져도 사라지지 않는 데이터가 사라지지 않는 메모리.RAM은 전원이 꺼지면 데이터가 사라지는 메모리이다.그래서 보통 부트로더, 프로그램 코드 데이터는 플래시 메모리에 저장되고, 프로그램 사용시에SRAM을 사용한다.뭐 당연하게도 MCU마다 어떤 메.. 2023. 8. 24.