임베디드 시스템에서 동적 메모리 할당

lovejin0309의 이미지

예전에 "임베디드 시스템에서 동적 메모리를 사용하는 것은 추천하지 않는다. 임베디드용 하드웨어나 OS의 문제점이나 한계로 인해 malloc() 과 free() 가 제대로 동작하지 않을 가능성이 높기 때문이다" 란 글을 본 적이 있었는데 지금 사용하고 있는 시스템도 같은 문제가 생기는 군요.

결국 메모리 낭비를 감수하면서 고정 메모리로 사용하고 있습니다.

freezm7의 이미지

조금 성급한 일반화가 섞인 듯 하네요. 제대로 구현했다면 안 될 이유가 없지 않겠어요?

즐겁게 살아 볼까나~*

Necromancer의 이미지

malloc(), free() 써도 무방합니다. (기계 메뉴얼에 특별히 경고사항이 없는 이상)

다만 이들을 사용하는 횟수를 줄이는 것이 좋습니다.
힙 메모리 관리하기 위해 사용하는 메모리도 있고,
할당/해제 과정에서 속도도 많이 잡아 먹습니다.
(구현 알고리즘에 따라 틀리긴 하지만 속도 빠르게 한다면 메모리 소모 많아지고,
메모리 소모 줄인다면 시간 오래걸리는 알고리즘을 써야 합니다)

일반 컴퓨터라야 메모리가 넘쳐나서 아무렇게나 할당해제 요구해도 되지만,
embedded쪽은 한정된 cpu속도와 메모리를 효과적으로 사용해야 하죠.

대량으로 받은 뒤 프로그램 내에서 직접 관리하는 식으로 사용하시면 될겁니다.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction