메모리 할당 2

[C 언어] [Embedded] 메모리 동적 할당에 대해 (2)

오늘은 지난글에 이어 Embedded system에서 메모리 동적할당을 대체하여 사용가능한 기법에 대해 적어보려 한다. 먼저 지난 포스팅에서 말한 동적할당의 리스크는 아래와 같다. 1. 동적할당의 리스크 1. 메모리 할당 실패에 따른 예외처리 - malloc을 이용했을 때 NULL pointer를 반환받았을 경우 2. 디바이스 속도 저하 - malloc에 의한 코드 동작 속도 저하로 잠재적 품질 리스크 발생 3. 메모리 공간 예측 실패 - malloc으로 할당시 관리 테이블로 인해 할당받은 메모리보다 더 많은 점유로 인해 메모리 부족 현상 발생 2. 대체가능한 기법들 위의 리스크를 줄일 수 있는 기법들을 몇가지 소개하려 한다. 이러한 기법들은 내가 실제로 개발하면서 적용해본 것도 있고, 전문 서적 또는 ..

Embedded 2023.01.19

[C 언어] [Embedded] 메모리 동적 할당에 대해 (1)

지난번 Embedded환경에 대한 간략한 설명과 함께 Endian mode와 컴파일러 최적화 오류 등에 대해 알아보았다. 오늘은 Firmware 개발자라면 누구나 쉽게 사용하고 있는 동적할당에 대해 몇가지 적어보려고 한다. 1. 동적할당이란? 먼저 동적할당이라는 개념부터 간단히 설명해보려 한다. 프로그래밍을 하다보면 데이터를 임시로 저장하거나 다른 이벤트의 인수로 데이터를 넘겨야 하는 경우가 있다. 데이터의 크기를 미리 알 수 없는 경우가 대부분이고 여러 조건에 따라 데이터의 크기와 유효범위가 달라질 수 있다. 아래 코드를 보자 (억지로 예제를 만든 것이니 참고만 하길) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #define SIZE 10 int func1(v..

Embedded 2023.01.17
728x90