인프런 커뮤니티 질문&답변

suji님의 프로필 이미지
suji

작성한 질문수

FreeRTOS 프로그래밍

정적/동적 Task 생성의 메모리 할당 영역

해결된 질문

작성

·

454

0

안녕하세요.

수업을 듣던 중 정적/동적 Task 생성 시 할당되는 메모리 영역과 관련해 질문 사항이 생겨 글 남깁니다.

태스크와 메모리 파트 강의를 듣고 Task Stack 메모리는 동적/정적 할당이 가능하고, RTOS의 동적 할당은 RTOS 커널에서 지원하는 동적 메모리 할당자 함수를 쓰기 때문에 heap영역이 아닌 bss 영역에서 할당된다. 라고 이해하였습니다.

즉, xTaskCreate() 함수를 사용하면 동적 할당이지만 데이터가 bss 영역에 할당되는 특성이 있다고 생각했었는데, '태스크 스택의 크기를 결정하기' 부분의 강의 끝부분에서 xTaskCreate() 는 heap 영역에 xTaskCreateStatic() 은 bss 영역에서 Task Stack을 쓴다고 말씀하여 기존에 제가 이해했던 부분과 일치하지 않았습니다.

이와 관련해 인터넷에 검색해 보니, freertos.org 사이트에서는 xTaskCreate()를 사용하여 작업을 생성하면 필요한 RAM이 FreeRTOS 힙에 자동으로 할당된다. 라고 적혀있더군요.

xTaskCreate() 함수는 bss 영역에 자동 할당되기도 하고, heap 영역에 자동 할당되기도 한다는 의미인가요?

답변 1

1

홍영기님의 프로필 이미지
홍영기
지식공유자

안녕하세요. suji님!

강좌를 보시다가 궁금한 점이 계셨군요 ^^. 답변드립니다.

우선 질문하신 내용은 과거 유사 질문이 있었네요.

이 글을 참고해보시고 추가 질문 사항 있으시면 다시 댓글 남겨주세요.

오늘도 즐거운 하루되세요 :-)

 

suji님의 프로필 이미지
suji

작성한 질문수

질문하기