inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

FreeRTOS 프로그래밍

스택오버플로우-Assertion

2. stackoverflow 질문입니다..

348

박철수

작성한 질문수 3

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
강사님 강의 잘듣고 있습니다.
 
강의를 따라가다가 질문이 있어 드립니다.
stackoverflow detect 기능에서 config.h의 defien을 2로 변경을 하고 save를 했는데 task.c if문에서 활성화가 안되는건 어떤이유인가요?
 
강의하고는 별도로 언어적인 질문입니다만 질문을 드립니다.
그래서 Putty에서 안나오는건지 아님 detect를 못한건지 확인이 되네요..

임베디드 운영체제 FreeRTOS

답변 1

0

홍영기

박철수님! 안녕하세요:-)

첫번째 질문

말씀하신 부분을 확인해 본 결과

#define configCHECK_FOR_STACK_OVERFLOW 2 으로 설정하였음에도 불구하고, 

tasks.c 파일을 편집기 혹은 디버깅 환경에서 보면 놀랍게도 

configCHECK_FOR_STACK_OVERFLOW 값이 '0'으로 확인됩니다.

 

이에 실제로 코드 실행시에는 어떻게 처리되는 지 확인해보았습니다.

다행히도? 정상적으로 처리됨을 아래와 같은 테스트로 확인할 수 있었습니다.

BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,
const char * const pcName,
const configSTACK_DEPTH_TYPE usStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
TaskHandle_t * const pxCreatedTask )
{
TCB_t *pxNewTCB;
BaseType_t xReturn;

printf("configCHECK_FOR_STACK_OVERFLOW is %d\n", configCHECK_FOR_STACK_OVERFLOW); // 디버깅출력
/* If the stack grows down then allocate the stack then the TCB so the stack
does not grow into the TCB. Likewise if the stack grows up then allocate
the TCB then the stack. */

아마도, 지적하신 부분은 STM32CubeIDE 툴의 자체 버그로 짐작됩니다.

 

두번째 질문

영상에서도 지적한 것처럼 지역변수의 총량에 변화를 줘가면서 테스트해 보시길 추천드립니다

 

0

박철수

답변 감사합니다.. 변경해서 테스트 해보겠습니다..^^

uC/OS-II RTOS 포팅 관련 질문

0

30

2

만약에 포팅을 할때 1년에 한번 잡는 치명적인 문제를 해결하는 코드가 들어갔다고 가정하면

0

91

2

STM32 포팅할 때 STM32 Project가 없음

0

231

2

FreeRTOS 멀티코어 지원안됨?

0

117

2

[소스코드 분석-configUSE_TIME_SLICING] TASK1,2의 우선순위가 동일할 때, configUSE_TIME_SLICING값 변경에 따른 출력 변화

0

108

2

포팅 부탁드립니다!

0

70

1

포팅 부탁드립니다. <NUCLEO-G071RB>

0

78

2

상호배제 후 되지를 않아서 질문드립니다.

0

73

1

수료증 발급 기준 수정 요청

1

88

1

재진입가능여부에 관한 질문

1

84

1

01_TASKMAN프로젝트 디버깅 모드 실패

1

101

2

그러면 malloc/free가 아닌 동적할당자를 써서 메모리를 할당했기떄문에

1

82

2

실행순서

1

87

2

uart 전송중에는 스위칭이 금지되나요?

1

87

2

스택오버플로우 실습 중 stack size 설정 질문

0

95

2

포팅 원합니다.

2

86

2

코루틴 실습질문

1

114

2

TODO 2번 문제

1

152

4

10. 선점형 커널 그림 설명중 우선순위가 반대인 경우에도 Task B가 먼저 수행되나요?

1

102

2

디버거모드에 진입이 안됩니다.

0

191

2

prvExampleTaskHook 함수 호출 부분에 대해 문의드립니다.

0

135

2

보드 STM32H735IG와 강의 호환 여부 문의

1

164

3

[ L152RE ] 원샷 소프트타이머 실행 잘 되시나요?

1

170

2

Deferred Interrupt Processing 샘플 예제 문의 드립니다.

1

124

2